123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464 |
- #include "includes.h"
- int g_iModemVer=0;
- int g_iPocVer=0;
- SUT_POC_STATUS sutPocStatus;
- char g_cGroupName[POC_GROUP_NAME_LEN];
- unsigned long g_ulGroupID;
- int GetAllGroups(char *msg)
- {
- unsigned short num;
- char name[POC_GROUP_NAME_LEN*2+1];
- unsigned long id;
- unsigned short index;
- char *pTemp;
- unsigned char len;
-
-
-
-
-
- if(msg[5]=='1' && msg[6]=='D'){
- if(!uiAssist.status)return 1;
- len = strlen(&msg[29])-2;
- if(len >= POC_GROUP_NAME_LEN*2) len = POC_GROUP_NAME_LEN*2;
- memcpy(name, &msg[29], len);
- name[len]=0;
-
- msg[29]=0;
- num=strtol(&msg[25],&pTemp,16);
-
- msg[25]=0;
- id=strtol(&msg[17],&pTemp,16);
-
- sutPocStatus.AllGroups[sutPocStatus.ListFillIndex].ID=id;
- sutPocStatus.AllGroups[sutPocStatus.ListFillIndex].usernum=num;
- if(name[0]==0)
- {
- sutPocStatus.AllGroups[sutPocStatus.ListFillIndex].name[0]=' ';
- sutPocStatus.AllGroups[sutPocStatus.ListFillIndex].name[1]=0;
- }else
- StrAsciiToHex(name, sutPocStatus.AllGroups[sutPocStatus.ListFillIndex].name);
-
-
-
- if(++sutPocStatus.ListFillIndex==sutPocStatus.ExceptionReadNum)sutPocStatus.ListGetOneFlag=1;
-
- return 1;
- }
- return 0;
- }
- int GetAllVoice(char *msg)
- {
- unsigned short num;
- char name[POC_USER_NAME_LEN*2+1];
- unsigned long id;
- unsigned short index;
- char *pTemp;
- unsigned char len;
-
- if(ModemStrCmp(msg,"+VINFO:")==0){
- if(!uiAssist.status)return 1;
- if(msg[7]=='A')strcpy(sutPocStatus.AllVoice[sutPocStatus.ListFillIndex],&msg[14]);
- else strcpy(sutPocStatus.AllVoice[sutPocStatus.ListFillIndex],"不可用");
-
- if(++sutPocStatus.ListFillIndex==sutPocStatus.ExceptionReadNum)sutPocStatus.ListGetOneFlag=1;
- return 1;
- }
- return 0;
- }
- int GetAllUsers(char *msg)
- {
- unsigned short num;
- char name[POC_USER_NAME_LEN*2+1];
- unsigned long id;
- unsigned short index;
- char *pTemp;
- unsigned char len;
-
-
- if(msg[5]=='1' && msg[6]=='E'){
- if(!uiAssist.status)return 1;
- len = strlen(&msg[25])-2;
- if(len >= POC_USER_NAME_LEN*2) len = POC_USER_NAME_LEN*2;
- memcpy(name, &msg[25], len);
- name[len]=0;
-
- msg[25]=0;
- id=strtol(&msg[17],&pTemp,16);
-
- sutPocStatus.AllUsers[sutPocStatus.ListFillIndex].ID=id;
-
- if(name[0]==0)
- {
- sutPocStatus.AllUsers[sutPocStatus.ListFillIndex].name[0]=' ';
- sutPocStatus.AllUsers[sutPocStatus.ListFillIndex].name[1]=0;
- }else
- StrAsciiToHex(name, sutPocStatus.AllUsers[sutPocStatus.ListFillIndex].name);
-
- if(++sutPocStatus.ListFillIndex==sutPocStatus.ExceptionReadNum)sutPocStatus.ListGetOneFlag=1;
- return 1;
- }
- return 0;
- }
- char PocHandle(char *msg)
- {
- uint8_t temp[4];
- SUTDS ds;
- SUTDL dl;
- char buf[102];
- char *pName;
- unsigned char len,type;
- char pGroup[POC_GROUP_NAME_LEN*2]={0};
- static int Table[POC_GROUP_NAME_LEN*2]={0};
- long l;
- int i;
- static unsigned char getNameFlag=0;
- static char Username[POC_USER_NAME_LEN+1];
- char Groupname[POC_GROUP_NAME_LEN+1];
-
- if(msg[1]=='L' && msg[2]=='S' && msg[3]=='H' && msg[4]=='T' && msg[9]=='E'){
- sutPocStatus.TTS=0;
- if(sutPocStatus.Speaker==0)SpeakerDisable();
- return 1;
- }
-
-
-
-
-
- if(msg[5] == '0' && msg[6] == 'B')
- {
- if(msg[7] == 'F' && msg[8] == 'F')
- {
- SpeakerEnable();
- SetBeep(1000,10);
- }
- return 1;
- }
-
-
-
-
-
-
-
- if(msg[5]=='8' && msg[6]=='B' && msg[7]=='0')
- {
- if(msg[8]=='1')
- {
- enableDataSend();
- sutPocStatus.Mic=1;
- MicEnable();
- sutPocStatus.Speaker=0;
- sutPocStatus.PPTpress=1;
- SpeakerDisable();
- sutPocStatus.Logined=1;
- }else if(msg[8]=='0')
- {
- sutPocStatus.Mic=0;
- sutPocStatus.PPTpress=0;
- MicDisable();
- SpeakerEnable();
- if(newPara.KeySound!=0){
- printf("start beep-----\r\n");
- SetBeep(500,10);
- }
- }
-
- if(msg[9]=='0' && msg[10] == '0')
- {
-
- sutPocStatus.Speaker=0;
-
-
-
- }else if(msg[9]=='0' && msg[10] == '1')
- {
-
-
- enableDataSend();
- LCDBackLight(1);
- LcdOnTimeCt=0;
-
- sutPocStatus.Logined=1;
- sutPocStatus.Speaker=1;
-
-
- }else if(msg[9]=='1' && msg[10]=='3')
- {
-
- sutPocStatus.statusChaned=1;
-
- SpeakerEnable();
- SetBeep(1000,10);
- }
- return 1;
- }
-
-
-
-
-
- if(msg[5]=='8' && msg[6]=='2')
- {
- buf[0] = msg[7];
- buf[1] = msg[8];
- buf[2] = 0;
- type = atoi(buf);
- switch(type)
- {
- case 0:
-
- sutPocStatus.danHunStatus=0;
- sutPocStatus.Logined=0;
- sutGpsInfo.isGpsAuthOk=0;
- snprintf(buf, sizeof(buf),"[msg]");
- if(msg[17] == 'B' && msg[18]== '5' && msg[25] == 'C' && msg[26] == 'A')
- {
- pocTimeOutTime=5;
- sutPocStatus.loginResult=1;
- strcat(buf, "账号信息错误");
- }
- else
- if(msg[17] == 'C' && msg[18]== 'E' && msg[25] == 'C' && msg[26] == '2')
- {
-
- if(sutPocStatus.loginResult != 1)
- sutPocStatus.loginResult=2;
- strcat(buf, "无网络连接");
- }else if(msg[17] == 'C' && msg[18]== 'E' && msg[25] == 'C' && msg[26] == '1'){
- sutPocStatus.loginResult=5;
- strcat(buf, "无法连接");
- }else if(msg[17] == 'C' && msg[18]== '3' && msg[25] == 'B' && msg[26] == '7'){
- sutPocStatus.loginResult=6;
- strcat(buf, "没有服务");
- }
- else strcat(buf, "No login");
- SlwTrace(INF, buf, 1);
- break;
- case 1:
- SlwTrace(INF, "login ing",1);
- break;
- case 2:
- len = strlen(&msg[17])-2;
- if(len >= POC_USER_NAME_LEN) len = POC_USER_NAME_LEN;
- memcpy(Username,&msg[17],len);
- Username[len]=0;
- StrAsciiToHex(Username,sutPocStatus.LocalUser.name);
- msg[17]=0;
- sutPocStatus.LocalUser.ID=strtol(&msg[9],&pName,16);
- SlwTrace(INF, "login ok",1);
- getNameFlag=1;
- sutPocStatus.loginResult=3;
- break;
- case 3:
- SlwTrace(INF, "logout ing",1);
- break;
- }
- return 1;
- }
-
-
- if(msg[5]=='3' && (msg[6]=='D'||msg[6]=='E')){
- sutPocStatus.ListCurOnlineNum=strtol(&msg[13],&pName,16);
- sutPocStatus.ListUpdate=1;
- return 1;
- }
-
-
- if(GetAllGroups(msg))return 1;
- if(GetAllUsers(msg))return 1;
-
-
-
-
-
-
- if(msg[5]=='8' && msg[6]=='6')
- {
-
- sutPocStatus.Logined=1;
- pocTimeOutTime=30;
- if(msg[8] == '0')
- {
- len = strlen(&msg[17])-2;
- if(len >= POC_GROUP_NAME_LEN) len = POC_GROUP_NAME_LEN;
- memcpy(Groupname,&msg[17],len);
- Groupname[len]=0;
- msg[17]=0;
- sutPocStatus.LocalGroup.ID=strtol(&msg[9],&pName,16);
- StrAsciiToHex(Groupname,sutPocStatus.LocalGroup.name);
- if(sutPocStatus.FirstLogined==0)
- {
- if(getNameFlag == 0)
- snprintf(buf, sizeof(buf), "%s",Groupname);
- else
- {
- getNameFlag=0;
- snprintf(buf, sizeof(buf), "%s2CD2D1B5C7C2BD2C%s",Username,Groupname);
- }
- MeSpeak(ENCODE_GBK, buf);
-
- }else
- {
- g_ucEnterGroupFlag=0;
-
- snprintf(buf, sizeof(buf), "BDF8C8EB2C%s",Groupname);
- MeSpeak(ENCODE_GBK, buf);
-
- }
- }
- LcdOnTimeCt=0;
- sutPocStatus.danHunStatus=0;
-
- sutPocStatus.FirstLogined=1;
- return 1;
- }
-
-
-
-
-
- if(msg[5]=='8' && msg[6]=='3' && msg[7]=='0' && msg[8]=='0')
- {
-
-
- ReplaceStrWithN(&msg[17]);
-
- i=strlen(&msg[17]);
- if(i>=POC_USER_NAME_LEN) i=POC_USER_NAME_LEN;
- else i++;
- StrAsciiToHex(&msg[17], sutPocStatus.Callname);
- *(msg+17) = 0;
- sutPocStatus.CallID = strtol(&msg[9],&pName,16);
- msg[17]=0;
- return 1;
- }
-
- if(msg[5]=='8' && msg[6]=='3' && msg[7]=='0' && msg[8]=='1'){
-
- return 1;
- }
-
- if(msg[5]=='9' && msg[6]=='1'){
-
- return 1;
- }
-
- if(msg[5]=='0'&& msg[6]=='E'){
- msg[17]=0;
- StrAsciiToHex(&msg[13], temp);
- ds.Data.ucData.b1=temp[1];
- ds.Data.ucData.b2=temp[2];
- sutPocStatus.UserOnLineNum=ds.Data.usData;
- sutPocStatus.UserNum_Update=1;
- snprintf(buf, sizeof(buf), "oneLine:%d",sutPocStatus.UserOnLineNum);
- SlwTrace(INF, buf, 1);
- }
-
-
- if(msg[5]=='8' && msg[6]=='4')
- {
- MakeStrEndByNewLine(msg);
- MeSpeak(ENCODE_GBK , &msg[9]);
-
- if(memcmp(&msg[9], "C1D9CAB1", 8)==0)
- {
- sutPocStatus.danHunStatus=1;
- }else if(memcmp(&msg[9], "CDCBB3F6", 8)==0)
- {
- sutPocStatus.danHunStatus=0;
- }else if(memcmp(&msg[9], "BAF4BDD0B3C9B9A6", 16)==0)
- {
- sutPocStatus.danHunStatus=1;
- }
- return 1;
- }
-
-
-
- if(msg[5]=='2' && msg[6]=='1'){
- MakeStrEndByNewLine(msg);
- memset(sutPocStatus.AllUsers[sutPocStatus.FillUserIndex].name,0,POC_ALL_USERS_NUM);
- if(msg[21]==0) sutPocStatus.AllUsers[sutPocStatus.FillUserIndex].name[0]=' ';
- else StrAsciiToHex(&msg[21], sutPocStatus.AllUsers[sutPocStatus.FillUserIndex].name);
- msg[21]=0;
- StrAsciiToHex(&msg[13], temp);
- dl.Data.ucData.b4=temp[0];
- dl.Data.ucData.b3=temp[1];
- dl.Data.ucData.b2=temp[2];
- dl.Data.ucData.b1=temp[3];
- sutPocStatus.AllUsers[sutPocStatus.FillUserIndex].ID=dl.Data.ulData;
- sutPocStatus.AllUsers[sutPocStatus.FillUserIndex].status=3;
- sutPocStatus.GetOneUserFlag=1;
- return 1;
- }
-
-
-
-
-
-
-
-
- if(msg[5] == '1' &&
- msg[7] == '0' &&
- (msg[14] == '7' || msg[14] == '8'))
- {
- memcpy(sutPocStatus.switchGroupID,&msg[19], 8);
- MakeStrEndByNewLine(&msg[31]);
- MeSpeak(ENCODE_GBK, &msg[31]);
- return 1;
- }
- }
|