| | |
| | | #ifndef __KBUSDEFINE_H__ |
| | | #define __KBUSDEFINE_H__ |
| | | |
| | | #define KBUS_VER (0x104) |
| | | |
| | | //#define SYN_PREFIX 1 |
| | | |
| | | typedef unsigned char uchar; |
| | | |
| | | enum enKBusStationType |
| | | { |
| | | KBNone = 0, |
| | | KBusMaster = 1, |
| | | KBusSlave = 2, |
| | | KBusRepeater = 3, |
| | | }; |
| | | |
| | | // diagnosis |
| | | enum enKBusStats |
| | | { |
| | | KBusStatIdel, |
| | | KBusStatConfig, |
| | | KBusStatRunning, |
| | | KBusStatError, |
| | | }; |
| | | |
| | | enum enCMDs |
| | | { |
| | | cmdNone = '0', //Nothing |
| | | cmdPing = '1', //Ping |
| | | cmdPingReply = '2', //PingReply |
| | | cmdRead = '3', //Read |
| | | cmdReadReply = '4', //ReadReply |
| | | cmdWrite = '5', //Write |
| | | cmdWriteReply = '6', //WriteReply |
| | | cmdGetVersion = '7', //GetVersion |
| | | cmdVerInfo = '8', //VersionReply |
| | | |
| | | cmdExChgData='A', //ExChangeData, = Wirte + Read |
| | | cmdExChgDataReply, //ExchangeData Reply |
| | | |
| | | cmdSyncRead='a', //SyncRead |
| | | cmdSyncWrite, //SyncWrite |
| | | cmdSequenRead, //Sequence Read |
| | | cmdSyncTime, //SyncTime |
| | | }; |
| | | |
| | | enum { |
| | | SYN = 0x55, |
| | | StartSign='%', |
| | | EndSign=0x0D, |
| | | MaxPacketLength=128, |
| | | }; |
| | | |
| | | typedef struct tagKBusRunStat |
| | | { |
| | | unsigned char bMaster; |
| | | unsigned char nStationID; |
| | | unsigned char nChildren; |
| | | unsigned char nCurPollId; |
| | | unsigned char nSeq; |
| | | |
| | | unsigned char bMasterRecved; |
| | | unsigned char bMasterRecvOK; |
| | | unsigned char bSlaveRecved; |
| | | unsigned int nSendTimeuS; |
| | | |
| | | }stKBusRunStat , * pstKBusRunStat; |
| | | |
| | | typedef struct tagVerInfo |
| | | { |
| | | unsigned char nMainVer; |
| | | unsigned char nSubVer; |
| | | }stVerInfo; |
| | | |
| | | typedef struct tagMasterStat |
| | | { |
| | | unsigned int CycleTime; |
| | | } stMasterStat; |
| | | |
| | | typedef struct tagClientInfo |
| | | { |
| | | unsigned short ClientType; |
| | | unsigned short ClientVer; |
| | | // stVerInfo ClientVer; |
| | | unsigned char InBitCount; |
| | | unsigned char OutBitCount; |
| | | unsigned char AICount; |
| | | unsigned char AIBits; |
| | | unsigned char AQCount; |
| | | unsigned char AQbits; |
| | | unsigned char InDWCount; |
| | | unsigned char OutDWCount; |
| | | unsigned char bOnline; |
| | | }stClientInfo; |
| | | |
| | | |
| | | typedef struct tagClientCfg |
| | | { |
| | | unsigned char nGroup; |
| | | unsigned char Addr; |
| | | unsigned char InStartAddrBit; |
| | | unsigned char OutStartAddrBit; |
| | | unsigned char InAWStartAddrByte; |
| | | unsigned char OutAWStartAddrByte; |
| | | unsigned char InDWStartAddrByte; |
| | | unsigned char OutDWStartAddrByte; |
| | | unsigned int KeepOut; //Keep Output when comm err; |
| | | }stClientCfg; |
| | | |
| | | typedef struct ServerStatus |
| | | { |
| | | unsigned char Addr; |
| | | unsigned char Status; |
| | | unsigned short Input[16]; |
| | | unsigned short DT[128]; |
| | | unsigned short output[16]; |
| | | |
| | | }stServerStatus,*pServerStatus; |
| | | |
| | | typedef struct tagMachineState |
| | | { |
| | | unsigned char Addr; |
| | | unsigned char state; |
| | | unsigned char InStartAddrBit; |
| | | unsigned char OutStartAddrBit; |
| | | unsigned char InDWStartAddrByte; |
| | | unsigned char OutDWStartAddrByte; |
| | | }ClientState; |
| | | |
| | | |
| | | |
| | | #pragma anon_unions |
| | | typedef struct tagChnStat |
| | | { |
| | | unsigned int Stat; |
| | | unsigned int SendPackets; |
| | | unsigned int RecvPackets; |
| | | unsigned int LastSentTimeuS; |
| | | unsigned int LostPackets; |
| | | unsigned int CtnLstPkts; |
| | | unsigned int MaxCtnLstPkts; |
| | | unsigned int NotPkgErr; |
| | | unsigned int PkgLenErr; |
| | | unsigned int BCCErr; |
| | | unsigned int TimeOutErr; |
| | | unsigned int Delay; |
| | | unsigned int MaxDelay; |
| | | unsigned int SendTimeInterval; |
| | | union |
| | | { |
| | | unsigned int ClientDatas[10]; |
| | | struct { |
| | | unsigned int ClientRecvPkts; // |
| | | unsigned int ClientSendPkts; // |
| | | unsigned int ClientNotPktErr; // |
| | | unsigned int ClientMisIdPkts; // |
| | | // unsigned int ClientNoEndErr; // |
| | | unsigned int ClientPkgLenErr; // |
| | | unsigned int ClientBccErr; // |
| | | unsigned int ClientTimeOutErr; // |
| | | }; |
| | | }; |
| | | } stChnStat; |
| | | |
| | | |
| | | typedef struct tagSlaveStat |
| | | { |
| | | unsigned int nSlaveTick; |
| | | } stSlaveStat; |
| | | |
| | | typedef struct ServerClientListElement |
| | | { |
| | | unsigned char Addr; |
| | | unsigned char Status; |
| | | unsigned char Father; |
| | | unsigned char Childs; |
| | | |
| | | } stServerClientListElement; |
| | | |
| | | typedef struct ServerClientList |
| | | { |
| | | unsigned char Addr; |
| | | }stServerClientList,*pServerClientList; |
| | | |
| | | typedef struct tagMachineConfig |
| | | { |
| | | int bKBusMaster; |
| | | int nAddr; |
| | | }stMachineConfig; |
| | | |
| | | /* |
| | | typedef struct ClientStatus |
| | | { |
| | | unsigned char Addr; |
| | | unsigned char Status; |
| | | unsigned char Father; |
| | | unsigned char Childs; |
| | | unsigned short Input[16]; |
| | | unsigned short DT[128]; |
| | | unsigned short output[16]; |
| | | |
| | | }stChnStatus,*pClientStatus; |
| | | */ |
| | | |
| | | typedef struct tagStatusDef |
| | | { |
| | | unsigned char nSeq:2; //序列号 |
| | | unsigned char :2; |
| | | unsigned char nErr1:1; |
| | | unsigned char nErr2:1; |
| | | }stStatus; |
| | | |
| | | typedef union tagUnStatusDef |
| | | { |
| | | unsigned char nStatus; |
| | | stStatus; |
| | | }unStatus; |
| | | |
| | | typedef struct tagKBPacket |
| | | { |
| | | unsigned char Sign; //起始标记 |
| | | unsigned char DstHost; //目标地址 |
| | | unsigned char SrcAddr; //源地址 |
| | | unsigned char nCMD; //命令 |
| | | union{ |
| | | unsigned char nStatus; //状态+序列号 |
| | | struct{ |
| | | unsigned char nSeq:2; //序列号 |
| | | unsigned char :2; |
| | | unsigned char nErr1:1; |
| | | unsigned char nErr2:1; |
| | | |
| | | }; |
| | | }; |
| | | unsigned char DataLen; //数据载荷长度 不包括头部5个字节,不包括尾部BCC。 |
| | | unsigned char data[1]; //数据载荷,最末尾是BCC,数据长度为0时,实际也有一个数据。 |
| | | }stKBPacket,* pKBPacket; |
| | | |
| | | typedef struct tagKBInfoBlockV1 |
| | | { |
| | | unsigned short nDeviceType; |
| | | unsigned short nProgVer; |
| | | |
| | | unsigned char InBitCount; |
| | | unsigned char OutBitCount; |
| | | |
| | | unsigned char AICount; |
| | | unsigned char AIBits; |
| | | unsigned char AQCount; |
| | | unsigned char AQbits; |
| | | |
| | | unsigned char InDWCount; |
| | | unsigned char OutDWCount; |
| | | |
| | | }stKBInfoBlockV1, *pKBInfoBlockV1; |
| | | |
| | | |
| | | /* |
| | | typedef struct tagKBPacketV10 |
| | | { |
| | | unsigned char Sign; //起始标记 |
| | | unsigned char DstHost; //目标地址 |
| | | unsigned char SrcAddr; //源地址 |
| | | unsigned char nCMD; //命令 |
| | | union{ |
| | | unsigned char nStatus; //状态+序列号 |
| | | struct{ |
| | | unsigned char nSeq:2; //序列号 |
| | | unsigned char :2; |
| | | unsigned char nErr1:1; |
| | | unsigned char nErr2:1; |
| | | |
| | | }; |
| | | }; |
| | | unsigned char DataLen; //数据载荷长度 不包括头部5个字节,不包括尾部BCC。 |
| | | unsigned char data[1]; //数据载荷,最末尾是BCC,数据长度为0时,实际也有一个数据。 |
| | | }stKBPacketV10,* pKBPacketV10; |
| | | |
| | | typedef struct tagKBPacketV20 |
| | | { |
| | | unsigned char Sign; //起始标记 |
| | | unsigned char DstHost; //目标地址 |
| | | unsigned char SrcAddr; //源地址 |
| | | unsigned char nCMD; //命令 |
| | | union{ |
| | | unsigned char nStatus; //状态+序列号 |
| | | struct{ |
| | | unsigned char nSeq:2; //序列号 |
| | | unsigned char :2; |
| | | unsigned char nErr1:1; |
| | | unsigned char nErr2:1; |
| | | |
| | | }; |
| | | }; |
| | | unsigned char DataLen; //数据载荷长度 不包括头部5个字节,不包括尾部BCC。 |
| | | unsigned char data[1]; //数据载荷,最末尾是BCC,数据长度为0时,实际也有一个数据。 |
| | | }stKBPacketV20,* pKBPacketV20; |
| | | */ |
| | | typedef void *(*CBFuncDef) (void*, void *, int); //callback func ,prama s is void *,void *,int; return void *; |
| | | |
| | | enum eResult |
| | | { |
| | | S_OK =0, |
| | | S_ERR=1, |
| | | S_TIMEOUT=2 |
| | | |
| | | } ; |
| | | |
| | | enum enumCallBackEvent |
| | | { |
| | | evNone = 0, |
| | | evCreate = 1, |
| | | evConnected = 2, |
| | | evDisConnected = 3, |
| | | evClosed = 4, |
| | | }; |
| | | |
| | | |
| | | #endif /* __KBUSDEFINE_H__ */ |