📄 104sl.h
字号:
/*------------------------------------------------------------------*/
/*模块名称:104.h */
/*模块功能:IEC870-5-104:2000从站 */
/*编写日期:2005年6月 */
/*编写者: dingding */
/*------------------------------------------------------------------*/
#ifndef DF104SL_H
#define DF104SL_H
/*------------------------------------------------------------------*/
/*-------------------------基本内容定义-----------------------------*/
/*------------------------------------------------------------------*/
#define STARTCODE 0x68 //起始码
//链路层
#define S_FRAME 0x01
#define U_FRAME 0x03
#define U_STARTDTACT 0x07
#define U_STARTDTCON 0x0B
#define U_STOPDTACT 0x13
#define U_STOPDTCON 0x23
#define U_TESTFRACT 0x43
#define U_TESTFRCON 0x83
//PTick
#define TICKT0USE 0x0001
#define TICKT1USE 0x0002
#define TICKT2USE 0x0004
#define TICKT3USE 0x0008
/*------------------------------------------------------------------*/
/*-------------------------基本结构定义-----------------------------*/
/*------------------------------------------------------------------*/
struct PTick{
INT8U Flag; //按位使用
INT8U FlagBak;
INT16U TValue0;
INT16U TValue2;
INT16U TValue3;
INT16U TValue1[K];
};
__packed struct PAPCI{
INT8U StartCode;
INT8U Length;
INT16U NS;
INT16U NR;
};
struct LinkInfo
{
//运行参数
enum DLRXDSTATUS RxdStatus; //接收状态
BOOL Connect;
INT16U NR;
INT16U NS;
INT16U PeerNoAckNum;
INT16U RxFrmNum;
BOOL DataType[K];
INT16U IdleTimeCount;
struct PTick Tick;
INT16U RxdHead; //处理数据的头指针
INT16U RxdTail;
INT16U RxdLength;
INT16U FrameHead; //组帧时数据头在发送缓冲区的位置
INT16U TxdHead; //
INT16U TxdTail; //
INT8U RxdBuf[2*APDULEN]; //接收缓冲区
INT8U TxdBuf[2*APDULEN]; //发送缓冲区
//参数输入
INT16U Tick0;
INT16U Tick1;
INT16U Tick2;
INT16U Tick3;
};
/*------------------------------------------------------------------*/
/*----------------------------函数声明------------------------------*/
/*------------------------------------------------------------------*/
BOOL S104InitLink(INT8U Port, struct PortAppInfo* PortCfg);
void S104LinkOnTimer(INT8U Port);
void S104SearchFrame(INT8U Port);
void S104DLSendProc(INT8U Port, INT8U* pData, INT8U Len);
void S104ProcIFrame(INT8U Port);
void S104ProcSFrame(INT8U Port);
void S104ProcUFrame(INT8U Port);
BOOL S104ProcPeerNoAckNum(INT8U Port, INT16U PeerNR);
void S104SendCtrlFrame(INT8U Port, INT8U Type);
void S104BeginTick(INT8U Port, INT8U No);
void S104StopTick(INT8U Port, INT8U No);
void S104StopDT(INT8U Port);
void S104RecMISIData(INT8U Port, BOOL Flag);
void S104SendDataToMISI(INT8U Port);
void S104NetTest(INT8U Port);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -