Files
g0b1vetx-board/Board/network/proto.h
T

65 lines
986 B
C

#ifndef _PROTO_H
#define _PROTO_H
#include <stdint.h>
// 上行统一使用M1模式,无确认
// 下行统一使用M2模式一次确认
#define _651_STX 2
#define _651_ETX 3
#define _651_ETB 23
#pragma pack (1)
typedef struct _651_U_Header_t
{
uint16_t Head;
uint8_t CentAddr;
uint8_t DeviAddr[5];
uint16_t Pass;
uint8_t FuncCode;
uint16_t TypeLength;
uint8_t Stx;
} _651_U_Header_t;
typedef struct _651_D_Header_t
{
uint16_t Head;
uint8_t DeviAddr[5];
uint8_t CentAddr;
uint16_t Pass;
uint8_t FuncCode;
uint16_t Type: 4;
uint16_t Length: 12;
uint8_t Stx;
} _651_D_Header_t;
#pragma pack ()
// 打包数据帧
int PacketHeader (uint8_t func, char * data, int length, char * txbuff);
// 均匀时段报
int PakcetTimerUp (int k, char * tx_data);
// 闸门状态自报 闸门开度发生变化时上报
int PacketSluiceUp (int k, char * tx_data);
// 接受到提闸数据时,应答的ACK
int PacketSluiceAck (char* tx_data);
int PacketAnsAck (char * tx_data);
int PacketUpRegist (char * tx_data);
#endif