📄 cmmcom1.c
字号:
#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 + -