⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cmmcom1.c

📁 2410下面通过MOTO手台录音程序;自己用的
💻 C
📖 第 1 页 / 共 3 页
字号:
	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 + -