| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- #include "includes.h"
- SUT_MESS sutMess;
- void SMSInit(void)
- {
- memset((unsigned char *)&sutMess, 0, sizeof(SUT_MESS));
- }
- void SetGotNewMessage(void)
- {
- unsigned char type,encode,def1,def2;
-
- type = sutMess.GBKMess1[0];
- encode=sutMess.GBKMess1[1];
- def1 = sutMess.GBKMess1[2];
- def2 = sutMess.GBKMess1[3];
- //处理分析消息类型
- if(type == 0x30 &&
- encode == 0x30 &&
- def1 == 0x32 &&
- def2 == 0x30)
- {//一键报警
- sutMess.len -= 4;
- sutMess.Update=1;//收到一条消息标记
- // sutMess.startCntFlag=1;
- // sutMess.skipCnt=0;//从此时开始计数
- // sutMess.forcePullGroupOn=0;
- SlwTrace(INF,"Start",1);
- }else
- if(type == 0x01 &&
- encode == 0x02)
- {//纯TTS播报
- sutMess.len -= 4;
- sutMess.Update=2;
- SlwTrace(INF, "Pure TTS",1);
- }else
- if(type == 0x20 &&
- encode == 0x20 &&
- def1 == 0x20 &&
- def2 == 0x20)
- {//全文本
- //此终端不处理
- SlwTrace(INF, "not handle",1);
- sutMess.len -= 4;
- sutMess.Update=0;
- }
- }
- void SMSHandle(void)
- {
- unsigned char temp1,temp2;
- unsigned short i;
- char buf[30];
- static unsigned char cnt=0;
- unsigned char *p;
-
- // if(sutMess.startCntFlag)
- // {
- // if(++cnt > 80)//如果主频改了,这个值也要改
- // {//秒粗计数器
- // cnt=0;
- // if(++sutMess.skipCnt>20)
- // {//时间到了
- // sutMess.startCntFlag=0;
- // SlwTrace(INF,"Timeout\r\n");
- // }
- // }
- // }
- if(sutMess.Update == 1 || sutMess.Update == 2)
- {
- printf("TTS_LEN:%d\r\n",sutMess.len);
- p = sutMess.GBKMess1+4;
- for(i=0;i<sutMess.len;i+=4)
- {
- temp1 = p[i+2];
- temp2 = p[i+3];
- p[i+2] = p[i];
- p[i+3] = p[i+1];
- p[i] = temp1;
- p[i+1]=temp2;
- }
- //p[sutMess.len]=0;
- MeSpeak(ENCODE_UNICODE, (char *)p,1);
- sutMess.Update=0;
- }
- }
|