📄 lg_comm-h
字号:
#ifndef __LG_COMM_H_ICL__
#define __LG_COMM_H_ICL__
#define ENQ 0x05
#define EOT 0x04
#define ACK 0x06
#define NAK 0x15
#define CUR_CTRL_ADDR 0x0006
#define CUR_FREQ_ADDR 0x0005
#define MAX_LG_MOTOR_NUM 6
typedef struct
{
int StartDevNo; // 设备号
int DevNum; // 设备数量
int InitOk; // 端口初始化标志
int CommNo; // 所用计算机串口号
HANDLE CommId; // 端口索引
OVERLAPPED Overlapped;
MODE_DEF Mode;
int RevStatus; // 端口接收状态
BUF_DEF RecvBuf; // 端口接收缓冲区
BUF_DEF PollCmd; // 下行命令缓冲区
int CurCmdAddr; // 当前命令地址
int ReadCtrlCnt;
int CurFreq[MAX_LG_MOTOR_NUM]; // 当前设定频率
int CurCtrlMode[MAX_LG_MOTOR_NUM]; // 当前运行控制
int SendCmdFlag; // 下发一命令标志
int SendTimeConst; // 下发命令超时时间常数
int SendTimeCnt; // 下发命令时间计数
int SendCmdAckFlag;
} LG_MOTOR_DEF;
void LgMotorReadConfig( void );
void LgMotorInitCommPort( void );
int LgMotorReadCommPort( char *buf, int len );
int LgMotorWriteCommPort( char *buf, int len );
void LgMotorDataProcess( void );
void LgMotorReadCommData( void );
u_char LgMotorCalCheckSum( u_char *buf, int len );
void LgMotorMakeWriteCmd( int startaddr, char *buf, int len );
void LgMotorSendCmd( void );
void LgMotorTimer( void );
// dir = 1, 正转, dir = 2, 反转
void LgMotorMakeStartCmd( int devidx, int dir );
void LgMotorMakeStopCmd( int devidx );
void LgMotorMakeRstErrorCmd( int devidx );
void LgMotorMakeFreqCmd( int devidx, int freq );
// 检查电机状态,0,停止,1,正转,2,反转
u_char LgCheckMotorStatus( int devidx );
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -