QuakeGod
2023-02-22 b6290b94cac76a5634cd90b495b65d91ee92d85e
Inc/KBus.h
@@ -11,7 +11,7 @@
#define __KBUS_H__
typedef unsigned char uchar;
extern int bMaster,bSlave;
extern unsigned char bKBusMaster,bKBusSlave,bKBusRepeater;;
   enum enCMDs
   {
      cmdNone = '0',      //Nothing
@@ -41,25 +41,38 @@
extern unsigned char PacketBuf1[128];
extern unsigned char PacketBuf2[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;
extern unsigned char BufferIn[16];
extern unsigned char BufferOut[16];
extern unsigned char nAddr;
extern unsigned char nStationID;
extern unsigned char nChilds;
extern int ChildStat[16];
extern unsigned char nCurPollId;
extern unsigned char nSeq;
extern volatile int MasterRecved;
extern volatile int MasterRecvOK;
extern volatile int SlaveRecved;
extern unsigned int SendTimeuS;
extern volatile int RecvTimeuS;
extern int DelayuS;
extern int MaxDelayuS;
extern volatile unsigned char KBusMasterRecved;
extern volatile unsigned char KBusMasterRecvOK;
extern volatile unsigned char KBusSlaveRecved;
extern unsigned int KBusSendTimeuS;
extern volatile int KBusRecvTimeuS;
extern int KBusDelayuS;
extern int KBusMaxDelayuS;
extern volatile unsigned int nSlaveTick;
typedef struct tagVerInfo
{
@@ -107,8 +120,7 @@
   unsigned char OutPutCount;
   unsigned char InDWCount;
   unsigned char OutDWCount;
   unsigned char Online;
   unsigned char bOnline;
};
#pragma anon_unions
@@ -143,7 +155,8 @@
      };
   };
} stChnStat;
extern stChnStat ChnStats[8];
extern stChnStat KBusChnStats[8];
typedef struct tagSlaveStat
{
@@ -187,16 +200,16 @@
   evClosed = 4,
};
typedef struct tagPacket
typedef struct tagKBPacket
   {
      unsigned char Sign;      //起始标记
      unsigned char DstHost;   //目标地址
      unsigned char SrcAddr;   //源地址
      unsigned char nCMD;      //命令
      unsigned char nSEQ;      //序列号
      unsigned char PacketLen;   //数据载荷长度   不包括头部5个字节,不包括尾部BCC。
      unsigned char data[1];      //数据载荷,最末尾是BCC,数据长度为0时,实际也有一个数据。
   }stPacket,* pPacket;
      unsigned char Sign;      //起始标记
      unsigned char DstHost;   //目标地址
      unsigned char SrcAddr;   //源地址
      unsigned char nCMD;      //命令
      unsigned char nSEQ;      //序列号
      unsigned char PacketLen;   //数据载荷长度   不包括头部5个字节,不包括尾部BCC。
      unsigned char data[1];      //数据载荷,最末尾是BCC,数据长度为0时,实际也有一个数据。
   }stKBPacket,* pKBPacket;
enum eResult
{   
@@ -205,23 +218,23 @@
   S_TIMEOUT=2
}   ;
unsigned char BCC(void * pData, int nSize);
//
unsigned char KBusBCC(void * pData, int nSize);
//
   /* Make a Packet and return Packet Length */
int MakePacket(pPacket p1,uchar Src, uchar Dst, uchar nType, uchar nSEQ, uchar DataLen, void *pData );
int KBusMakePacket(pKBPacket p1,uchar Src, uchar Dst, uchar nType, uchar nSEQ, uchar DataLen, void *pData );
/*   */
int CheckPacket(pPacket p1,int len1);
int KBusCheckPacket(int nChn, pKBPacket p1, int len1);
/* */
int ParsePacket(pPacket p1, int Len1);
int KBusParsePacket(int nChn, pKBPacket p1, int Len1);
typedef struct tagMachineConfig
{
   int bMaster;
   int bKBusMaster;
   int nAddr;
}stMachineConfig;
/*
int InitMachine(stMachineConfig * pConfig);
int SetConfig(void );
@@ -237,11 +250,10 @@
int WriteData(void);
int GetStat(void);
*/
int KBusRepeaterFunc(int nChn);
int KBusMasterFunc(int nChn);
int KBusSlaveFunc(int nChn);
#endif   /* __KBUS_H__ */