📄 cmmcom1.c
字号:
ioctl(consoleFd1,SIO_HW_OPTS_SET,CS8/*|STOPB|PARENB|PARODD*/);
(void) ioctl (consoleFd1, FIOSETOPTIONS,OPT_RAW);
consoleFd2 = open ("/tyCo/2", O_RDWR, 0);
if(ERROR == consoleFd2)
{
printf("open /tyCo/2 error errno =%d\n",errno);
return;
}
(void) ioctl (consoleFd2, FIOBAUDRATE, 9600);
ioctl(consoleFd2,SIO_HW_OPTS_SET,CS8/*|STOPB|PARENB|PARODD*/);
(void) ioctl (consoleFd2, FIOSETOPTIONS,OPT_RAW);
width = (consoleFd1>consoleFd2)?consoleFd1:consoleFd2;
while(1)
{
if(RCD_RADIO_TYPE==CEM700)
{
FD_ZERO(&CMM_UARTS);
FD_SET(consoleFd1, &CMM_UARTS);
FD_SET(consoleFd2, &CMM_UARTS);
TelnetTimer.tv_sec = 1;
TelnetTimer.tv_usec = 0;
if(select(width+1, &CMM_UARTS, 0, 0,&TelnetTimer)==ERROR)
{
printf("error\n");
}
else
{
if(FD_ISSET(consoleFd2, &CMM_UARTS))
{
bytesRead = read(consoleFd2, &headc, 1);
/*
if(bytesRead == 1)
{
logMsg("%02x\n",headc,0,0,0,0,0);
}*/
}
if(FD_ISSET(consoleFd1, &CMM_UARTS))
{
bytesRead = read(consoleFd1, &bodyc, 1);
if(bytesRead == 1)
{
/*
logMsg("%02x\n",bodyc,0,0,0,0,0);
*/
if(mempos_ptr == 0)
{
if(bodyc == M700_MSG_BODY_HEAD0)
{
message.mesheader.mes_source_id_0 = bodyc;
}
else
{
mempos_ptr=0;
continue;
}
}
if(mempos_ptr == 1)
{
if(bodyc == M700_MSG_BODY_HEAD1)
{
message.mesheader.mes_source_id_1 = bodyc;
}
else
{
mempos_ptr=0;
continue;
}
}
if(mempos_ptr == 2)
{
message.mesheader.mes_source_len_0 = bodyc;
}
if(mempos_ptr == 3)
{
message.mesheader.mes_source_len_1 = bodyc;
mesbodysize = (message.mesheader.mes_source_len_0<<8 |bodyc);
if(mesbodysize>MAX_MESBODY_LEN)
{
mempos_ptr = 0;
continue;
}
}
if((mempos_ptr > 3)&& (mesbodysize > 0))
{
message.messagebody[mesbody_pos++] = bodyc;
mesbodysize--;
}
mempos_ptr++;
if(mempos_ptr>3 &&(0 == mesbodysize))
{
for(i=0;i<mempos_ptr-4;i++)
{
printf("0x%02x,",message.messagebody[i]);
}
printf("\n");
CMM_CEM700_Process(mempos_ptr,&message);
mempos_ptr=0;
mesbody_pos =0;
memset(&message,0,sizeof(message));
}
}
}
}
}
else if(RCD_RADIO_TYPE==CCM700)
{
FD_ZERO(&CMM_UARTS);
FD_SET(consoleFd1, &CMM_UARTS);
FD_SET(consoleFd2, &CMM_UARTS);
TelnetTimer.tv_sec = 1;
TelnetTimer.tv_usec = 0;
if(select(width+1, &CMM_UARTS, 0, 0,&TelnetTimer)==ERROR)
{
printf("error\n");
}
else
{
if(FD_ISSET(consoleFd2, &CMM_UARTS))
{
bytesRead = read(consoleFd2, &headc, 1);
if(bytesRead == 1)
{
logMsg("u2:%02x\n",headc,0,0,0,0,0);
}
}
if(FD_ISSET(consoleFd1, &CMM_UARTS))
{
bytesRead = read(consoleFd1, &bodyc, 1);
if(bytesRead == 1)
{
/* logMsg("U2:%02x\n",bodyc,0,0,0,0,0);*/
if(mempos_ptr == 0)
{
if(bodyc == M700_MSG_BODY_HEAD0)
{
message.mesheader.mes_source_id_0 = bodyc;
}
else
{
mempos_ptr=0;
continue;
}
}
if(mempos_ptr == 1)
{
if(bodyc == M700_MSG_BODY_HEAD1)
{
message.mesheader.mes_source_id_1 = bodyc;
}
else
{
mempos_ptr=0;
continue;
}
}
if(mempos_ptr == 2)
{
message.mesheader.mes_source_len_0 = bodyc;
}
if(mempos_ptr == 3)
{
message.mesheader.mes_source_len_1 = bodyc;
mesbodysize = (message.mesheader.mes_source_len_0<<8 |bodyc);
if(mesbodysize>MAX_MESBODY_LEN)
{
mempos_ptr = 0;
continue;
}
}
if((mempos_ptr > 3)&& (mesbodysize > 0))
{
message.messagebody[mesbody_pos++] = bodyc;
mesbodysize--;
}
mempos_ptr++;
if(mempos_ptr>3 &&(0 == mesbodysize))
{
for(i=0;i<mempos_ptr-4;i++)
{
printf("0x%02x,",message.messagebody[i]);
}
printf("\n");
CMM_CCM700_Process(mempos_ptr,&message);
mempos_ptr=0;
mesbody_pos =0;
memset(&message,0,sizeof(message));
}
}
}
}
}
else if(RCD_RADIO_TYPE==EM700)
{
FD_ZERO(&CMM_UARTS);
FD_SET(consoleFd1, &CMM_UARTS);
FD_SET(consoleFd2, &CMM_UARTS);
TelnetTimer.tv_sec = 1;
TelnetTimer.tv_usec = 0;
if(select(width+1, &CMM_UARTS, 0, 0,&TelnetTimer)==ERROR)
{
printf("error\n");
}
else
{
if(FD_ISSET(consoleFd1, &CMM_UARTS))
{
bytesRead = read(consoleFd1, &headc, 1);
/*
if(bytesRead == 1)
{
logMsg("%02x\n",headc,0,0,0,0,0);
}*/
}
if(FD_ISSET(consoleFd2, &CMM_UARTS))
{
bytesRead = read(consoleFd2, &bodyc, 1);
if(bytesRead == 1)
{
/*
logMsg("%02x\n",bodyc,0,0,0,0,0);
*/
if(mempos_ptr == 0)
{
if(bodyc == M700_MSG_BODY_HEAD0)
{
message.mesheader.mes_source_id_0 = bodyc;
}
else
{
mempos_ptr=0;
continue;
}
}
if(mempos_ptr == 1)
{
if(bodyc == M700_MSG_BODY_HEAD1)
{
message.mesheader.mes_source_id_1 = bodyc;
}
else
{
mempos_ptr=0;
continue;
}
}
if(mempos_ptr == 2)
{
message.mesheader.mes_source_len_0 = bodyc;
}
if(mempos_ptr == 3)
{
message.mesheader.mes_source_len_1 = bodyc;
mesbodysize = (message.mesheader.mes_source_len_0<<8 |bodyc);
if(mesbodysize>MAX_MESBODY_LEN)
{
mempos_ptr = 0;
continue;
}
}
if((mempos_ptr > 3)&& (mesbodysize > 0))
{
message.messagebody[mesbody_pos++] = bodyc;
mesbodysize--;
}
mempos_ptr++;
if(mempos_ptr>3 &&(0 == mesbodysize))
{
for(i=0;i<mempos_ptr-4;i++)
{
printf("0x%02x,",message.messagebody[i]);
}
printf("\n");
CMM_CEM700_Process(mempos_ptr,&message);
mempos_ptr=0;
mesbody_pos =0;
memset(&message,0,sizeof(message));
}
}
}
}
}
else if(RCD_RADIO_TYPE==M760)
{
FD_ZERO(&CMM_UARTS);
FD_SET(consoleFd1, &CMM_UARTS);
FD_SET(consoleFd2, &CMM_UARTS);
TelnetTimer.tv_sec = 1;
TelnetTimer.tv_usec = 0;
if(select(width+1, &CMM_UARTS, 0, 0,&TelnetTimer)==ERROR)
{
printf("error\n");
}
else
{
if(FD_ISSET(consoleFd1, &CMM_UARTS))
{
bytesRead = read(consoleFd1, &headc, 1);
/*
if(bytesRead == 1)
{
logMsg("%02x\n",headc,0,0,0,0,0);
}*/
}
if(FD_ISSET(consoleFd2, &CMM_UARTS))
{
bytesRead = read(consoleFd2, &bodyc, 1);
if(bytesRead == 1)
{
/*
logMsg("%02x\n",bodyc,0,0,0,0,0);
*/
if(mempos_ptr == 0)
{
if(bodyc == M700_MSG_BODY_HEAD0)
{
message.mesheader.mes_source_id_0 = bodyc;
}
else
{
mempos_ptr=0;
continue;
}
}
if(mempos_ptr == 1)
{
if(bodyc == M700_MSG_BODY_HEAD1)
{
message.mesheader.mes_source_id_1 = bodyc;
}
else
{
mempos_ptr=0;
continue;
}
}
if(mempos_ptr == 2)
{
message.mesheader.mes_source_len_0 = bodyc;
}
if(mempos_ptr == 3)
{
message.mesheader.mes_source_len_1 = bodyc;
mesbodysize = bodyc;
if(mesbodysize>MAX_MESBODY_LEN)
{
mempos_ptr = 0;
mesbodysize = 0;
continue;
}
}
if((mempos_ptr > 3)&& (mesbodysize > 0))
{
message.messagebody[mesbody_pos++] = bodyc;
mesbodysize--;
}
mempos_ptr++;
if(mempos_ptr>3 &&(0 == mesbodysize))
{
for(i=0;i<mempos_ptr-4;i++)
{
printf("0x%02x,",message.messagebody[i]);
}
printf("\n");
CMM_M760_Process(mempos_ptr,&message);
mempos_ptr=0;
mesbody_pos =0;
memset(&message,0,sizeof(message));
}
}
}
}
}
else if(RCD_RADIO_TYPE==GM3688)
{
FD_ZERO(&CMM_UARTS);
FD_SET(consoleFd1, &CMM_UARTS);
FD_SET(consoleFd2, &CMM_UARTS);
TelnetTimer.tv_sec = 1;
TelnetTimer.tv_usec = 0;
if(select(width+1, &CMM_UARTS, 0, 0,&TelnetTimer)==ERROR)
{
printf("error\n");
}
else
{
if(FD_ISSET(consoleFd2, &CMM_UARTS))
{
bytesRead = read(consoleFd2, &headc, 1);
/*
if(bytesRead == 1)
{
logMsg("%02x\n",headc,0,0,0,0,0);
}*/
}
if(FD_ISSET(consoleFd1, &CMM_UARTS))
{
bytesRead = read(consoleFd1, &bodyc, 1);
if(bytesRead == 1)
{
/*
logMsg("U1: %02x\n",bodyc,0,0,0,0,0);
*/
if(mempos_ptr == 0)
{
if(bodyc == 0xf6)
{
message.mesheader.mes_source_id_0 = M700_MSG_BODY_HEAD0;
message.mesheader.mes_source_id_1 =M700_MSG_BODY_HEAD1;
message.mesheader.mes_source_len_0=0x00;
message.mesheader.mes_source_len_1 =0x07;
mesbodysize=0x07;
mempos_ptr=3;
}
else
{
mempos_ptr=0;
mesbodysize=0;
continue;
}
}
if((mempos_ptr > 3)&& (mesbodysize > 0))
{
message.messagebody[mesbody_pos++] = bodyc;
mesbodysize--;
}
mempos_ptr++;
if(mempos_ptr>3 &&(0 == mesbodysize))
{
for(i=0;i<mempos_ptr-4;i++)
{
printf("0x%02x,",message.messagebody[i]);
}
printf("\n");
if(message.messagebody[1]==0x10)
{
printf("call in start\n");
}
else
{
printf("call in end\n");
}
mempos_ptr=0;
mesbody_pos =0;
memset(&message,0,sizeof(message));
}
}
}
}
}
}
}
#if 1
/*
int testcominit()
{
consoleFd1 = open ("/tyCo/1", O_RDWR, 0);
if(ERROR == consoleFd1)
{
printf("open /tyCo/1 error errno =%d\n",errno);
return;
}
(void) ioctl (consoleFd1, FIOBAUDRATE, 9600);
(void) ioctl (consoleFd1, FIOSETOPTIONS,
OPT_ECHO | OPT_CRMOD | OPT_TANDEM | OPT_7_BIT);
consoleFd2 = open ("/tyCo/2", O_RDWR, 0);
if(ERROR == consoleFd2)
{
printf("open /tyCo/2 error errno =%d\n",errno);
return;
}
(void) ioctl (consoleFd2, FIOBAUDRATE, 9600);
(void) ioctl (consoleFd1, FIOSETOPTIONS,
OPT_ECHO | OPT_CRMOD | OPT_TANDEM | OPT_7_BIT);
}
*/
void cxp1(void)
{
PTT_PRESS;
}
void cxp2(void)
{
PTT_RELEASE;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -