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

📄 cmmcom1.c

📁 2410下面通过MOTO手台录音程序;自己用的
💻 C
📖 第 1 页 / 共 3 页
字号:
#include <vxWorks.h>
#include <ioLib.h>
#include <stdio.h>
#include <string.h>
#include <sockLib.h> 
#include <socket.h>
#include <ioLib.h>
#include <time.h>

#include "fioLib.h"
#include "CmmCom.h"

#include "s3c2410.h"
#include "taskLib.h"
#include "semLib.h"
#include "sysLib.h"
#include "time.h"




#define 	CEM700		0x01
#define 	CCM700		0x02
#define 	EM700		0x03
#define 	M760		0x04
#define 	GM3688		0x05

#define 	CEM700_STATUS_EMPTY		0x01
#define 	CEM700_STATUS_RANGE		0x02
#define 	CEM700_STATUS_USE		0x03
#define 	CEM700_STATUS_ID		0x04

#define 	CCM700_STATUS_EMPTY		0x05
#define 	CCM700_STATUS_RANGE		0x06
#define 	CCM700_STATUS_USE		0x07
#define 	CCM700_STATUS_ID		0x08

#define 	CARRY_STATUS_ON			0x09
#define 	CARRY_STATUS_OFF		0x0a
#define 	START_STATUS_ON			0x0b
#define 	START_STATUS_OFF		0x0c
#define 	PTT_STATUS_ON			0x0d
#define 	PTT_STATUS_OFF			0x0e

#define 	CEM700_POWER_ON 		0x01
#define 	CEM700_GRP_CONNECT  		0x02
#define 	CEM700_GRP_ID  			0x03
#define 	CEM700_GRP_NAME  		0x04
#define 	CEM700_GRP_CALL_IN_ID  		0x05
#define 	CEM700_GRP_USE  		0x06
#define 	CEM700_GRP_RANGE 		0x07
#define	 	CEM700_REMOTE_ID 		0x08
#define 	CEM700_CALL_OUT_START 		0x09
#define	 	CEM700_CALL_IN_END 		0x0A
#define 	CEM700_CALL_OUT_END 		0x0B
#define 	CEM700_POWER_OFF 		0x0C

#define 	CCM700_POWER_ON 		0x11
#define 	CCM700_GRP_CONNECT  		0x12
#define 	CCM700_GRP_ID  			0x13
#define 	CCM700_GRP_NAME  		0x14
#define 	CCM700_GRP_CALL_IN_ID  		0x15
#define 	CCM700_GRP_USE  		0x16
#define 	CCM700_GRP_RANGE 		0x17
#define	 	CCM700_REMOTE_ID 		0x18
#define 	CCM700_CALL_OUT_START 		0x19
#define	 	CCM700_CALL_IN_END 		0x1A
#define 	CCM700_CALL_OUT_END 		0x1B
#define 	CCM700_POWER_OFF 		0x1C

#define 	EM700_POWER_ON 			0x21
#define 	EM700_GRP_CONNECT  		0x22
#define 	EM700_GRP_ID  			0x23
#define 	EM700_GRP_NAME  		0x24
#define 	EM700_GRP_CALL_IN_ID  		0x25
#define 	EM700_GRP_USE  			0x26
#define 	EM700_GRP_RANGE 		0x27
#define	 	EM700_CALL_IN_START 		0x28
#define 	EM700_CALL_OUT_START 		0x29
#define	 	EM700_CALL_IN_END 		0x2A
#define 	EM700_CALL_OUT_END 		0x2B

#define 	M760_POWER_ON 			0x31
#define 	M760_GRP_CONNECT  		0x32
#define 	M760_GRP_ID  			0x33
#define 	M760_GRP_NAME  			0x34
#define 	M760_GRP_CALL_IN_ID  		0x35
#define 	M760_GRP_RANGE 			0x37
#define	 	M760_TIME_END 			0x38
#define 	M760_CALLING 			0x39
#define	 	M760_CALL_END 			0x3A
#define 	M760_TIMING	 		0x3B
#define 	M760_POWER_OFF			0x3C
#define 	M760_GRP_NULL			0x3D
#define 	M760_GRP_NULL1			0x3E
#define 	M760_GRP_NULL2			0x3F

#define 	M760_QUEUED			0x40
#define 	M760_UNOBTAINAbLE		0x41
#define 	M760_SCANNING			0x42
#define 	M760_CALL_FAILED		0x43


#define 	M760_STATUS_ID  		0x05
#define 	M760_STATUS_NULL		0x06
#define 	M760_STATUS_NULL1		0x07
#define 	M760_STATUS_NULL2		0x08
#define 	M760_STATUS_CALL  		0x09
#define 	M760_STATUS_NAME 		0x0a
#define 	M760_STATUS_TIME 		0x0b

M700_MESSAGE_CMP g_allmesM700[]=
{
 	{31,CEM700_POWER_ON,
	{0xFF,0x34,0x00,0x1B,0x10,0x28,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
	0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x05},
 	 "power on!"},

	{31,CEM700_POWER_OFF,
	{0xFF,0x34,0x00,0x1B,0x00,0x28,0x00,0x50,0x00,0x6F,0x00,0x77,0x00,0x65,0x00,
	0x72,0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x20,0x00,0x4F,0x00,0x66,0x00,0x66,0x03},
 	 "power off!"},
	
 	{31,CEM700_GRP_CONNECT,
	{0xFF,0x34,0x00,0x1B,0x10,0x28,0x00,0x43,0x00,0x6F,0x00,0x6E,0x00,0x6E,	0x00,
	0x65,0x00,0x63,0x00,0x74,0x00,0x69,0x00,0x6E,0x00,0x67,0x00,0x20,0x00,0x20,0x31},
 	 "connencting"},
 	  
 	{12,CEM700_GRP_ID,
	{0xFF,0x34,0x00,0x1B,0x10,0x28,0x00,0x49,0x00,0x44,0x00,0x3A},
      	"local id:"},   
   
 	{6,CEM700_GRP_NAME,
	{0xFF,0x34,0x00,0x1B,0x10,0x28},
        "local name:"},
        
 	{31,CEM700_GRP_USE,
	{0xFF,0x34,0x00,0x1B,0x00,0x28,0x00,0x47,0x00,0x72,0x00,0x6f,0x00,0x75,0x00,
	0x70,0x00,0x20,0x00,0x49,0x00,0x6e,0x00,0x20,0x00,0x55,0x00,0x73,0x00,0x65,0x58},
      	"group in use"},

 	{12,CEM700_REMOTE_ID,
	{0xFF,0x34,0x00,0x1B,0x00,0x28,0x00,0x49,0x00,0x44,0x00,0x3a},
      	"remote id:"}, 	 
      
 	{31,CEM700_GRP_RANGE,
	{0xFF,0x34,0x00,0x1B,0x00,0x28,0x00,0x52,0x00,0x61,0x00,0x6E,0x00,0x67,0x00,
	0x65,0x00,0x20,0x00,0x31,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0xAB},
      	"range 1"},
      	
 	{31,CCM700_POWER_ON,
	{0xFF,0x34,0x00,0x1B,0x10,0x28,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
	0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x05},
 	 "power on!"},

	{10,CCM700_POWER_OFF,
	{0xFF,0x34,0x00,0x17,0x00,0x28,0x51,0x73,0x67,0x3a,},
 	 "power off!"},
	
 	{16,CCM700_GRP_CONNECT,
	{0xFF,0x34,0x00,0x11,0x00,0x28,0x8b,0xf7,0x7b,0x49,0x5f,0x85,0x8f,0xde,0x63,0xa5,},
 	 "connencting"},
 	  
 	{12,CCM700_GRP_ID,
	{0xFF,0x34,0x00,0x1B,0x10,0x28,0x00,0x49,0x00,0x44,0x00,0x3A},
      	"local id:"},   
   
 	{6,CCM700_GRP_NAME,
	{0xFF,0x34,0x00,0x1B,0x10,0x28},
        "local name:"},
        
 	{19,CCM700_GRP_USE,
	{0xFF,0x34,0x00,0x0f,0x00,0x28,0x6b,0x63,0x57,0x28,0x4f,0x7f,0x75,
	0x28,0x7e,0xc4,0x54,0x7c,0xcb},
      	"group in use"},

 	{12,CCM700_REMOTE_ID,
	{0xFF,0x34,0x00,0x1B,0x00,0x28,0x00,0x49,0x00,0x44,0x00,0x3a},
      	"remote id:"}, 	 
      
 	{31,CCM700_GRP_RANGE,
	{0xFF,0x34,0x00,0x1B,0x00,0x28,0x00,0x52,0x00,0x61,0x00,0x6E,0x00,0x67,0x00,
	0x65,0x00,0x20,0x00,0x31,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0xAB},
      	"range 1"},	
      	
	{7,M760_POWER_ON,
	{0xFF,0x34,0x00,0x03,0x00,0x0e,0xbb},
 	 "power on!"},

	{31,M760_POWER_OFF,
	{0xFF,0x34,0x00,0x03,0x00,0x0f,0xba},
 	 "power off!"},

	{7,M760_GRP_NULL,
	{0xFF,0x34,0x00,0x03,0x00,0x0c,0xbd},
 	 "null"},

 	{9,M760_GRP_NULL1,
	{0xFF,0x34,0x00,0x11,0x00,0x10,0x20,0x20,0x20},
 	 "null1"},

 	{9,M760_GRP_NULL2,
	{0xFF,0x34,0x00,0x13,0x00,0x00,0x20,0x20,0x20},
 	 "null2"},
 	{21,M760_CALLING,
	{0xFF,0x34,0x00,0x11,0x00,0x00,0x43,0x61,0x6c,0x6c,0x69,0x6e,0x67,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x21},
 	 "calling"},
	
	{17,M760_CALL_END,
	{0xFF,0x34,0x00,0x0d,0x00,0x00,0x43,0x61,0x6c,0x6c,0x20,0x45,0x6e,0x64,0x65,0x64,0x43,},
 	 "call end"},

	{4,M760_TIMING,
	{0xFF,0x34,0x00,0x09,0x08},
 	 "timing"},

	{4,M760_TIME_END,
	{0xFF,0x34,0x00,0x0a,0x08},
 	 "time end"},

	{13,M760_QUEUED,
	{0xFF,0x34,0x00,0x09,0x00,0x00,0x51,0x75,0x65,0x75,0x65,0x64,0x5A},
 	 "queued"},

	{19,M760_UNOBTAINAbLE,
	{0xFF,0x34,0x00,0x0f,0x00,0x00,0x55,0x6e,0x6f,0x62,0x74,0x61,0x69,0x6e,0x61,0x62,0x6c,0x65,0xe9},
 	 "unobtianable"},

	{15,M760_SCANNING,
	{0xFF,0x34,0x00,0x0b,0x00,0x00,0x53,0x63,0x61,0x6e,0x6e,0x69,0x6e,0x67,0x90},
 	 "scanning"},	

	{15,M760_CALL_FAILED,
	{0xFF,0x34,0x00,0x0e,0x00,0x00,0x43,0x61,0x6c,0x6c,0x20,0x46,0x61,0x69,0x6c,0x65,0x64,0xdd},
 	 "call failed"}, 


	{3,M760_GRP_NAME,
	{0xFF,0x34,0x00},
 	 "name or id "} 
};

int    	RCD_RADIO_TYPE=0;
int 	M760_IN_OUT_FLAG=0;
int 	b_radio_start=0;


int    	CCM700_CURRENT_STATUS =0;
int    	CCM700_PREVIOUS_STATUS =0;
int    	CEM700_CURRENT_STATUS =0;
int    	CEM700_PREVIOUS_STATUS =0;
int    	M760_CURRENT_STATUS =0;
int    	M760_PREVIOUS_STATUS =0;

int    	GM3688_CARRY_CURRENT_STATUS =0;
int    	GM3688_CARRY_PREVIOUS_STATUS =0;
int    	GM3688_START_CURRENT_STATUS =0;
int    	GM3688_START_PREVIOUS_STATUS =0;
int    	GM3688_PTT_CURRENT_STATUS =0;
int    	GM3688_PTT_PREVIOUS_STATUS =0;


/********************io test****************************************************/

#if 1
int 	tidTaskRunStatus;
int 	tidTaskRecvUart;
int 	tidTaskIoTest;
void 	tRCD_RunStatus();
void 	RCD_IO_init();
int 	RCD_IO_test(void);
void	CMM_UART();
/************************************************************************/

void start(void)
{ 
	printf("system start! \n");
	RCD_RADIO_TYPE=CEM700;

	CEM700_CURRENT_STATUS=CEM700_STATUS_RANGE;
	CEM700_PREVIOUS_STATUS=CEM700_STATUS_RANGE;
	CCM700_CURRENT_STATUS=CCM700_STATUS_RANGE;
	CCM700_PREVIOUS_STATUS=CCM700_STATUS_RANGE;
	M760_PREVIOUS_STATUS=M760_STATUS_NULL;
	M760_CURRENT_STATUS=M760_STATUS_NULL;
    	GM3688_CARRY_CURRENT_STATUS =CARRY_STATUS_ON;
    	GM3688_CARRY_PREVIOUS_STATUS =CARRY_STATUS_ON;
    	GM3688_START_CURRENT_STATUS =START_STATUS_ON;
    	GM3688_START_PREVIOUS_STATUS =START_STATUS_ON;
    	GM3688_PTT_CURRENT_STATUS =PTT_STATUS_OFF;
    	GM3688_PTT_PREVIOUS_STATUS =PTT_STATUS_OFF;
	RCD_IO_init();

    	tidTaskRunStatus = taskSpawn ("tRunStatus", 201, 0, 2000,
                              (FUNCPTR)tRCD_RunStatus,0,0,0,0,0,0,0,0,0,0); 
 	printf("tRunStatus start! \n");

    	tidTaskIoTest = taskSpawn ("tIoTest", 202, 0, 20000,
                              (FUNCPTR)RCD_IO_test,0,0,0,0,0,0,0,0,0,0); 
 	printf("RCD_IO_test start! \n");

 	tidTaskRecvUart =  taskSpawn ("tRecvUart", 200, 0, 20000,
                              (FUNCPTR)CMM_UART,0,0,0,0,0,0,0,0,0,0);
	if(tidTaskRecvUart == ERROR)
		printf("tRecvUart start err! \n");
	else
		printf("tRecvUart start! \n");
	return;   			
}

void end(void)
{ 	
	taskDelete(tidTaskRunStatus);
 	printf("tRunStatus end! \n");
	taskDelete(tidTaskIoTest);
 	printf("RCD_IO_test end! \n");
	taskDelete(tidTaskRecvUart);
	printf("tRecvUart end! \n");
	printf("system end! \n");
	return;   			
}

void tRCD_RunStatus()
{
	int vvv;
    	BOOL bLED_FLASH_FLAG = TRUE;  	

 
    	FOREVER
    	{
        	if( !bLED_FLASH_FLAG )
        	{
           		bLED_FLASH_FLAG = TRUE;			
			LEN_OFF;  
		 				
        	}
        	else
        	{
           		bLED_FLASH_FLAG = FALSE; 		
           		LEN_ON;
		
        	}
        	taskDelay(sysClkRateGet()/2);	
    	}
}

/************************************************************************/
void RCD_IO_init(void)
{
	if(RCD_RADIO_TYPE==GM3688)
	{
		rGPBCON = 0x00000000;
		rGPBCON |= GPBIO_OUT0_CON;	
		rGPBCON &= GPBIO_IN1_CON;
		rGPBCON |= GPBIO_OUT2_CON;
		rGPBCON |= GPBIO_OUT3_CON;
		rGPBCON |= GPBIO_OUT4_CON;
		rGPBCON &= GPBIO_IN5_CON;
		rGPBCON &= GPBIO_IN6_CON;
		rGPBCON |= GPBIO_OUT7_CON;
		rGPBCON |= GPBIO_OUT8_CON;	
			
		START_OFF;/*always set 1,not control*/				
		IO3_OFF;				
		IO2_OFF;				
		IO1_OFF;
		PTT_RELEASE;
		LEN_OFF;
	}
	else
	{
		rGPBCON = 0x00000000;
		rGPBCON |= GPBIO_OUT0_CON;	
		rGPBCON |= GPBIO_OUT1_CON;
		rGPBCON &= GPBIO_IN2_CON;
		rGPBCON |= GPBIO_OUT3_CON;
		rGPBCON |= GPBIO_OUT4_CON;
		rGPBCON &= GPBIO_IN5_CON;
		rGPBCON &= GPBIO_IN6_CON;
		rGPBCON |= GPBIO_OUT7_CON;
		rGPBCON |= GPBIO_OUT8_CON;
		
		RXD_RECV_OFF;
		ON_OFF_OFF;
	
		BUS_INIT_OFF;
		BUS_OFF;
		PTT_RELEASE;
		LEN_OFF;

		BUS_INIT_ON;
		RXD_RECV_ON;
	}

}

void Set_Gm3688_Channel(int number)
{
	if(RCD_RADIO_TYPE==GM3688)
	{
  	if(number<7)
  	{
  		switch (number)
  		{
  			case 0: 
			IO1_ON;
			IO2_ON;
			IO3_ON;
			break;
			case 1: 
			IO1_OFF;
			IO2_ON;
			IO3_ON;
			break;
			case 2: 
			IO1_ON;
			IO2_OFF;
			IO3_ON;
			break;
			case 3: 
			IO1_OFF;
			IO2_OFF;
			IO3_ON;
			break;
			case 4: 
			IO1_ON;
			IO2_ON;
			IO3_OFF;
			break;
			case 5: 
			IO1_OFF;
			IO2_ON;
			IO3_OFF;
			break;
			case 6:
			IO1_ON;
			IO2_OFF;
			IO3_OFF;
			break;
			default:
			break;
  		}
			
  	}
	else
	{
		IO1_OFF;
		IO2_OFF;
		IO3_OFF;			
	} 
	} 	
}

/************************************************************************/
int RCD_IO_test(void)
{
	
	unsigned int temp=0;;
	while(1)
	{ 
		if(RCD_RADIO_TYPE==GM3688)
		{
			temp = rGPBDAT;
			if(temp&GPBIO_IN1_DATA)
			{
				
				if((GM3688_PTT_CURRENT_STATUS==PTT_STATUS_OFF)&&
				(GM3688_PTT_PREVIOUS_STATUS==PTT_STATUS_OFF))
				{
					logMsg("GM3688 Radio is Call out start.\n",0,0,0,0,0,0);
				}
				GM3688_PTT_PREVIOUS_STATUS =GM3688_PTT_CURRENT_STATUS;
				GM3688_PTT_CURRENT_STATUS =PTT_STATUS_ON;
			}
			else
			{
				if((GM3688_PTT_CURRENT_STATUS==PTT_STATUS_OFF)&&
				(GM3688_PTT_PREVIOUS_STATUS==PTT_STATUS_ON))
				{
					logMsg("GM3688 Radio is Call out end.\n",0,0,0,0,0,0);
				}
				GM3688_PTT_PREVIOUS_STATUS =GM3688_PTT_CURRENT_STATUS;
				GM3688_PTT_CURRENT_STATUS =PTT_STATUS_OFF;
						
			}
			if(temp&GPBIO_IN5_DATA)
			{
				
				if((GM3688_CARRY_CURRENT_STATUS==CARRY_STATUS_OFF)&&
				(GM3688_CARRY_PREVIOUS_STATUS==CARRY_STATUS_OFF))
				{
					logMsg("GM3688 Radio is Call in start.\n",0,0,0,0,0,0);
				}
				GM3688_CARRY_PREVIOUS_STATUS =GM3688_CARRY_CURRENT_STATUS;
				GM3688_CARRY_CURRENT_STATUS =CARRY_STATUS_ON;
			}
			else
			{
				if((GM3688_CARRY_CURRENT_STATUS==CARRY_STATUS_OFF)&&
				(GM3688_CARRY_PREVIOUS_STATUS==CARRY_STATUS_ON))
				{
					logMsg("GM3688 Radio is Call in end.\n",0,0,0,0,0,0);
				}
				GM3688_CARRY_PREVIOUS_STATUS =GM3688_CARRY_CURRENT_STATUS;
				GM3688_CARRY_CURRENT_STATUS =CARRY_STATUS_OFF;
						
			}	

			if(temp&GPBIO_IN6_DATA)
			{
				if((GM3688_START_CURRENT_STATUS==START_STATUS_OFF)&&
				(GM3688_START_PREVIOUS_STATUS==START_STATUS_OFF))
				{
					logMsg("GM3688 Radio  is power on\n",0,0,0,0,0,0);
				}
					GM3688_START_PREVIOUS_STATUS =GM3688_START_CURRENT_STATUS;
				GM3688_START_CURRENT_STATUS =START_STATUS_ON;
			}	
			else
			{
				if((GM3688_START_CURRENT_STATUS==START_STATUS_OFF)&&
				(GM3688_START_PREVIOUS_STATUS==START_STATUS_ON))
				{
					logMsg("GM3688 Radio  is power off\n",0,0,0,0,0,0);
				}
				GM3688_START_PREVIOUS_STATUS =GM3688_START_CURRENT_STATUS;
				GM3688_START_CURRENT_STATUS =START_STATUS_OFF;
			}	
		}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -