commit
a9a017d6c9
6 changed files with 155 additions and 0 deletions
-
26zaf_ecode.c
-
12zaf_ecode.h
-
5zaf_port.h
-
2zaf_protocol.c
-
73zaf_protocol.h
-
37zaf_regs.hpp
@ -0,0 +1,26 @@ |
|||||
|
#include "zaf_ecode.h" |
||||
|
|
||||
|
const char* zaf_error_code_2_str(zaf_error_code_t ecode) { |
||||
|
switch (ecode) { |
||||
|
case kxs_ec_success: |
||||
|
return "success"; |
||||
|
case kxs_ec_overtime: |
||||
|
return "overtime"; |
||||
|
case kxs_ec_socket_fail: |
||||
|
return "socket fail"; |
||||
|
case kxs_ec_bind_fail: |
||||
|
return "bind fail"; |
||||
|
case kxs_ec_send_fail: |
||||
|
return "send fail"; |
||||
|
case kxs_ec_receive_fail: |
||||
|
return "receive fail"; |
||||
|
case kxs_ec_setsockopt_rx_timeout_fail: |
||||
|
return "setsockopt rx timeout fail"; |
||||
|
case kxs_ec_lose_connect: |
||||
|
return "lose connect"; |
||||
|
case kxs_ec_param_error: |
||||
|
return "param error"; |
||||
|
default: |
||||
|
return "unknown error"; |
||||
|
} |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
#pragma once |
||||
|
typedef enum { |
||||
|
kxs_ec_success = 0, |
||||
|
kxs_ec_overtime = 1, |
||||
|
kxs_ec_socket_fail = 2, |
||||
|
kxs_ec_bind_fail = 3, |
||||
|
kxs_ec_send_fail = 4, |
||||
|
kxs_ec_receive_fail = 5, |
||||
|
kxs_ec_setsockopt_rx_timeout_fail = 6, |
||||
|
kxs_ec_lose_connect = 7, |
||||
|
kxs_ec_param_error = 8, |
||||
|
} zaf_error_code_t; |
@ -0,0 +1,5 @@ |
|||||
|
#pragma once |
||||
|
#include <stdint.h> |
||||
|
|
||||
|
#define ZAF_SERVICE_DEVICE_PORT 20000 // 设备 端端口 |
||||
|
#define ZAF_SERVICE_PC_PORT 20001 // pc 端端口 |
@ -0,0 +1,2 @@ |
|||||
|
#include "zaf_protocol.h" |
||||
|
|
@ -0,0 +1,73 @@ |
|||||
|
#pragma once |
||||
|
#include <stdint.h> |
||||
|
|
||||
|
#include "zaf_ecode.h" |
||||
|
#include "zaf_port.h" |
||||
|
#include "zaf_regs.hpp" |
||||
|
|
||||
|
#pragma pack(1) |
||||
|
|
||||
|
/******************************************************************************* |
||||
|
* 繫痰寧즈관 * |
||||
|
*******************************************************************************/ |
||||
|
|
||||
|
#define PACKET_HEADER 0x5A5A |
||||
|
#define PACKET_TAIL 0xA5A5 |
||||
|
|
||||
|
/** |
||||
|
* |
||||
|
* 葵累관롸槨: |
||||
|
* 관庫(2Byte) 관잚謹(2Byte) Index(2Byte) 寧즈(2Byte) ndata(2byte) data[...] 뵨叫駱(1Byte) 관棺(2Byte) |
||||
|
* |
||||
|
*/ |
||||
|
|
||||
|
typedef struct { |
||||
|
uint16_t packet_header; |
||||
|
uint16_t packet_type; // zaf_protocol_packet_type_t |
||||
|
uint16_t index; // |
||||
|
uint16_t cmd; // zaf_protocol_cmd_t |
||||
|
uint16_t ndata; // |
||||
|
uint32_t data[]; // first is always checksum |
||||
|
} zaf_packet_header_t; |
||||
|
#pragma pack() |
||||
|
|
||||
|
/** |
||||
|
* @brief CMD |
||||
|
*/ |
||||
|
typedef enum { |
||||
|
kzaf_cmd_none = 0, |
||||
|
kzaf_cmd_reg_read = 1, |
||||
|
kzaf_cmd_reg_write = 2, |
||||
|
kzaf_cmd_reg_read_regs = 3, |
||||
|
kzaf_cmd_generator_new_mac = 4, |
||||
|
kzaf_cmd_factory_reset = 5, |
||||
|
kzaf_cmd_reboot = 6, |
||||
|
kzaf_cmd_storage_cfg = 7, |
||||
|
} zaf_protocol_cmd_t; |
||||
|
|
||||
|
/** |
||||
|
* @brief 관잚謹 |
||||
|
*/ |
||||
|
typedef enum { |
||||
|
kzaf_packet_type_cmd = 0, |
||||
|
kzaf_packet_type_receipt = 1, |
||||
|
kzaf_packet_type_report = 2, |
||||
|
} zaf_protocol_packet_type_t; |
||||
|
|
||||
|
/******************************************************************************* |
||||
|
* 撚蛟쭉서철앨 * |
||||
|
*******************************************************************************/ |
||||
|
typedef enum { |
||||
|
obtaining_ip_mode_type_static = 0, |
||||
|
obtaining_ip_mode_type_dhcp = 1, |
||||
|
} obtaining_ip_mode_t; |
||||
|
static inline const char* obtaining_ip_mode_to_string(obtaining_ip_mode_t mode) { |
||||
|
switch (mode) { |
||||
|
case obtaining_ip_mode_type_static: |
||||
|
return "static"; |
||||
|
case obtaining_ip_mode_type_dhcp: |
||||
|
return "dhcp"; |
||||
|
default: |
||||
|
return "unknown"; |
||||
|
} |
||||
|
} |
@ -0,0 +1,37 @@ |
|||||
|
#pragma once
|
||||
|
#define REGADD__STM32_COMMON (0x0010)
|
||||
|
#define REGADD__STM32_BUSINESS (0x0020)
|
||||
|
#define REGADD__FPGA_START (0x0100)
|
||||
|
|
||||
|
typedef enum { |
||||
|
/**
|
||||
|
* @brief |
||||
|
* REG 0(16) 设备信息基础寄存器 |
||||
|
*/ |
||||
|
kreg_software_version = 0, |
||||
|
kreg_manufacturer0 = 1, |
||||
|
kreg_manufacturer1 = 2, |
||||
|
kreg_product_type_id = 3, |
||||
|
kreg_sn_id0 = 4, |
||||
|
kreg_sn_id1 = 5, |
||||
|
kreg_sn_id2 = 6, |
||||
|
kreg_mac0 = 7, |
||||
|
kreg_mac1 = 8, |
||||
|
|
||||
|
/**
|
||||
|
* @brief |
||||
|
* REG 16(32) STM32配置寄存器0 |
||||
|
*/ |
||||
|
kreg_stm32_obtaining_ip_mode = REGADD__STM32_COMMON + 0, |
||||
|
kreg_stm32_ip = REGADD__STM32_COMMON + 1, |
||||
|
kreg_stm32_gw = REGADD__STM32_COMMON + 2, |
||||
|
kreg_stm32_netmask = REGADD__STM32_COMMON + 3, |
||||
|
kreg_stm32_config0 = REGADD__STM32_COMMON + 4, // bit0: timecode report enable, bit1: camera sync report enable
|
||||
|
|
||||
|
kreg_stm32_action0 = REGADD__STM32_COMMON + 14, // action reg
|
||||
|
kreg_stm32_action_val0 = REGADD__STM32_COMMON + 15, // action val reg
|
||||
|
|
||||
|
kreg_stm32_temperature = REGADD__STM32_BUSINESS + 0, |
||||
|
kreg_stm32_fan0_error_flag = REGADD__STM32_BUSINESS + 1, |
||||
|
|
||||
|
} RegAdd_t; |
Write
Preview
Loading…
Cancel
Save
Reference in new issue