📄 main.h
字号:
//--------------------------------------------------------------------------
// FileName : main.H
// Description: main function
// DateTime : CopyRight2005-07-06 Create
// Author : jztx-liuweiming
// Version : TxCmsPrj Ver1.0
//--------------------------------------------------------------------------
#ifndef __MAIN_H__
#define __MAIN_H__
/////////////////////////////////////////////////////////////////////
unsigned char xdata *p7132; //Point of 7132 (Double Ram Device)
#define ADDR_7132_ZERO 0x9000 //7132 Point Zero Address
/////////////////////////////////////////////////////////////////////
#define FLAG_ERR_CRC_ORDER 0x77 //Flag => error: Psd Recv Order Data Crc
#define FLAG_ERR_CRC_RTU 0x88 //Flag => error: Psd Recv RTU Data Crc
#define FLAG_ERR_TIMEOUT 0x99 //Flag => error: Psd Waiting for 185 ack Timeout
#define FLAG_OK_DATA 0x55 //Flag => OK : 104/PSD Write Data To 7132
#define FLAG_OK_ACK 0xAA //Flag => OK : 104/PSD Already Get Data form 7132
/////////////////////////////////////////////////////////////////////
#define POS_ADDR 0 //MODBUS Head_Addr
#define POS_FUNC 1 //MODBUS Head_Func
#define POS_TDH 2 //MODBUS Head_TongDaoID
#define POS_NULL 3 //MODBUS Head_NotUse
#define POS_LEN_H 4 //MODBUS Head_Len_Hi
#define POS_LEN_L 5 //MODBUS Head_Len_Lo
// POS_DATA //MODBUS Data
// POS_CRC_H //MODBUS Head_CRC_Hi
// POS_CRC_l //MODBUS Head_CRC_Lo
#define HEAD_LEN 8 //MODBUS Len = HEAD_LEN + DataLen
/////////////////////////////////////////////////////////////////////
#define COMM1_RECV_DATA 0x000F //7132 Comm1RecvFromPc104 Data Addr
#define COMM1_RECV_CTRL 0x0000 //7132 Comm1RecvFromPc104 Ctrl Addr
#define COMM1_SEND_DATA 0x010F //7132 Comm1SendToPc104 Data Addr
#define COMM1_SEND_CTRL 0x0100 //7132 Comm1SendToPc104 Ctrl Addr
#define COMM2_RECV_DATA 0x040F //7132 Comm2RecvFromPc104 Data Addr
#define COMM2_RECV_CTRL 0x0400 //7132 Comm2RecvFromPc104 Ctrl Addr
#define COMM2_SEND_DATA 0x050F //7132 Comm2SendToPc104 Data Addr
#define COMM2_SEND_CTRL 0x0500 //7132 Comm2SendToPc104 Ctrl Addr
/////////////////////////////////////////////////////////////////////
#define MAX_RECV_CNT 5 //Max Recv TimeOut = 5ms
#define MAX_STAT_CNT 2000 //Max Stat TimeOut = 2s
#define MAX_RECV_SUIT 10 //Max Recv Recycle Array Size
#define MAX_RECV_BUFF 767 //Max Recv Buffer Size
#define MAX_SEND_BUFF 256 //Max Send Buffer Size
xdata struct tagSendBuff
{
unsigned int Len; //SendBuffer Lengtn
unsigned char Buff[MAX_SEND_BUFF];//SendBuffer
}Comm1Send, Comm2Send;
unsigned int nComm1Send_Idx = 0; //Comm1Send Index
unsigned int nComm2Send_Idx = 0; //Comm2Send Index
xdata struct tagRecvBuff
{
unsigned int Len; //RecvBuffer Lengtn
unsigned char Buff[MAX_RECV_BUFF];//RecvBuffer
}Comm1Recv[MAX_RECV_SUIT], Comm2Recv[MAX_RECV_SUIT];
enum FLAG { RECV_READY = 0, //0 (Modbus) Recv Free
RECV_ONEBYTE, //1 (Modbus) Recv OneByte
RECV_COUNT, //2 (Modbus) Recv Timer0 begin Count
RECV_TIMEOUT }; //3 (Modbus) Recv Over (MAX_RECV_CNT) ms
enum FLAG Comm1Recv_Flag = RECV_READY;//(Modbus) Comm1Recv Control Flag
enum FLAG Comm2Recv_Flag = RECV_READY;//(Modbus) Comm2Recv Control Flag
unsigned int nComm1Recv_Bgn = 0; //Comm1 Recv Recycle Array Begin Pos
unsigned int nComm1Recv_End = 0; //Comm1 Recv Recycle Array End Pos
unsigned int nComm2Recv_Bgn = 0; //Comm2 Recv Recycle Array Begin Pos
unsigned int nComm2Recv_End = 0; //Comm2 Recv Recycle Array End Pos
unsigned int nComm1Recv_Cnt = 0; //(Modbus) Comm1 Recv Timer0 Cnt
unsigned int nComm2Recv_Cnt = 0; //(Modbus) Comm2 Recv Timer0 Cnt
unsigned int nComm1Stat_Cnt = 0; //Comm1 (485) Ack Timer0 Cnt
unsigned int nComm2Stat_Cnt = 0; //Comm2 (485) Ack Timer0 Cnt
struct tagRecvCtrl
{
unsigned char Flag0; //0 Write/Read Control 0
unsigned char Flag1; //1 Write/Read Control 1
unsigned char Len_H; //2 Length High
unsigned char Len_L; //3 Length Low
unsigned char TDH; //4 ID of TongDao
unsigned char Kin_Bgn; //5 Kin Bgn Address
unsigned char Kin_End; //6 Kin End Address
unsigned char Kout_Bgn; //7 Kout Bgn Address
unsigned char Kout_End; //8 Kout End Address
unsigned char Kshow_Bgn; //9 Kshow Bgn Address
unsigned char Kshow_End; //10 Kshow End Address
unsigned char Kong[4]; //11~14 NotUse
}*pComm1RecvCtrl, *pComm2RecvCtrl;
struct tagSendCtrl
{
unsigned char Flag0; //0 Write/Read Control 0
unsigned char Flag1; //1 Write/Read Control 1
unsigned char Len_H; //2 Length High
unsigned char Len_L; //3 Length Low
unsigned char TDH; //4 ID of TongDao
unsigned char Kong[10]; //5~14 NotUse
}*pComm1SendCtrl, *pComm2SendCtrl;
/////////////////////////////////////////////////////////////////////
enum STATE { READY = 0, //0 comm device is free
WAITING, //1 comm device is waiting for 485 ack
TIMEOUT, //2 comm device wait timeout
SUCCESS }; //3 comm communication success
enum STATE Comm1State = READY; //Comm1 State Control
enum STATE Comm2State = READY; //Comm2 State Control
/////////////////////////////////////////////////////////////////////
#endif /*__MAIN_H__*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -