You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.5 KiB
63 lines
1.5 KiB
#pragma once
|
|
#include <stdint.h>
|
|
|
|
#include "zaf_ecode.h"
|
|
#include "zaf_port.h"
|
|
#include "zaf_regs.hpp"
|
|
|
|
#pragma pack(1)
|
|
|
|
#define VERSION(main, sub, fix) (main << 16 | sub << 8 | fix << 0)
|
|
|
|
#define VERSION_MAIN(v) ((v >> 16) & 0xFF)
|
|
#define VERSION_SUB(v) ((v >> 8) & 0xFF)
|
|
#define VERSION_FIX(v) ((v >> 0) & 0xFF)
|
|
|
|
#define PACKET_HEADER 0x5A5A
|
|
#define PACKET_TAIL 0xA5A5
|
|
|
|
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;
|
|
|
|
typedef enum {
|
|
kzaf_packet_type_cmd = 0,
|
|
kzaf_packet_type_receipt = 1,
|
|
kzaf_packet_type_report = 2,
|
|
kzaf_packet_type_heart = 3,
|
|
} 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";
|
|
}
|
|
}
|