📄 com2process.c
字号:
#define COM2_GLOBALS
#include "Macro.h"
#include "Main.h"
#define M_DELAY 300
#define A_DELAY 40
void Port2Process(void)
{
static unsigned xdata flag1;
static unsigned xdata flag2;
static unsigned xdata flag3;
static unsigned xdata flag4;
static unsigned xdata flag5;
struct Serial_rcv xdata *Com;
static unsigned char xdata hwInit = 0;
/* Yinchuan
static unsigned char xdata CmdBuf1[] ={0x01, 0x54, 0x01, 0x54, 0x01, 0x53, 0x00,
0x02, 0x53, 0x53, 0x31, 0x20, 0x20, 0x20, 0x45, 0x4e, 0x44, 0x0d, 0x0d, 0x0d,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x0d, 0x0d,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x0d, 0x0d,
0x2a, 0x2a, 0x2a, 0x0d, 0x0d, 0x0d,
0x2a, 0x2a, 0x2a, 0x0d, 0x0d, 0x0d,
0x20, 0x20, 0x20, 0x0d, 0x0d, 0x0d,
0x20, 0x20, 0x20, 0x0d, 0x0d, 0x0d,
0x03, 0x03, 0x53, 0x53, 0x31, 0x53, 0x53, 0x31 };
*/
static unsigned char xdata CmdBuf1[] ={0x01, 0x54, 0x01, 0x54, 0x01, 0x53, 0x00,
0x02, 0x24, 0x74, 0x74, 0x20, 0x20, 0x20,
0x53, 0x53, 0x31, 0x20, 0x20, 0x20, 0x20, 0x45, 0x4e, 0x44, 0x0d, 0x0d, 0x0d,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x0d, 0x0d,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x0d, 0x0d,
0x2a, 0x2a, 0x2a, 0x0d, 0x0d, 0x0d,
0x2a, 0x2a, 0x2a, 0x0d, 0x0d, 0x0d,
0x20, 0x20, 0x20, 0x20, 0x0d, 0x0d, 0x0d,
0x20, 0x20, 0x20, 0x20, 0x0d, 0x0d, 0x0d,
0x03, 0x03, 0x53, 0x53, 0x31, 0x53, 0x53, 0x31 };
static unsigned char xdata CmdBuf2[] ={0x59, 0x59, 0x59, 0x59, 0x59, 0x59,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
unsigned char cTmp;
if (!hwInit) {
Port2Data[0] = 0;
Port2Data[1] = 0;
hwInit = 1;
flag1 = 0;
flag2 = 0;
flag3 = 0;
flag4 = 0;
flag5 = 0;
}
if (Port2Cmd[0] != 1) return;
if (Port2Cmd[1] != 8) return;
memcpy(&CmdBuf2[6], &Port2Cmd[2], 8);
memcpy(&CmdBuf1[0x1b], &Port2Cmd[2], 8); // Yinchuan: 0x14
memcpy(&CmdBuf1[0x26], &Port2Cmd[2], 8); // Yinchuan: 0x1f
if (Port2Timer > 36000) Port2Timer = 36000;
if ( (Port2Data[0] != 0) || (Port2Data[1] != 0) ) {
Com->Tail = 0;
Com->Head = 0;
Com->pos = 0;
return;
}
Com = Rcv + 2;
while ( Com->Tail != Com->Head ) {
cTmp = Com->Data[Com->Head++];
Com->Head = Com->Head % sizeof(Com->Data);
if (flag5 == 1) {
Com->Buff[Com->pos++] = cTmp;
Com->pos = Com->pos % sizeof(Com->Buff);
if (Com->pos >= 28) {
// receive ok
Port2Data[0] = 0x1e;
Port2Data[1] = 0x00;
Port2Data[2] = 0x3;
Port2Data[3] = 0x14;
memcpy(&Port2Data[4], &Com->Buff[0], 28);
Com->pos = 0;
flag5 = 0;
flag4 = 0;
flag3 = 0;
flag2 = 0;
flag1 = 0;
Send_To_Port_Buffer(2, CmdBuf2, sizeof(CmdBuf2));
}
}
if (flag1 != 1) flag1 = (cTmp == 13);
if (flag2 != 1) {
flag2 = (cTmp == 13);
flag1 = flag2;
}
if (flag3 != 1) {
flag3 = (cTmp == 13);
flag2 = flag3;
flag1 = flag3;
}
if (flag4 != 1) {
flag4 = (cTmp == 3);
flag3 = flag4;
flag2 = flag4;
flag1 = flag4;
}
if (flag5 != 1) {
flag5 = (cTmp == 14);
flag4 = flag5;
flag3 = flag5;
flag2 = flag5;
flag1 = flag5;
}
continue;
}
if ( (Port2Data[0] != 0) || (Port2Data[1] != 0) ) return;
//
if (Port2Timer > M_DELAY) { // * 100ms
Port2Timer = 0;
Send_To_Port_Buffer(2, CmdBuf1, sizeof(CmdBuf1));
SendStart(2);
Com->pos = 0;
return;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -