Message.c 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. #include "includes.h"
  2. SUT_MESS sutMess;
  3. void SMSInit(void)
  4. {
  5. memset((unsigned char *)&sutMess, 0, sizeof(SUT_MESS));
  6. }
  7. void SetGotNewMessage(void)
  8. {
  9. unsigned char type,encode,def1,def2;
  10. type = sutMess.GBKMess1[0];
  11. encode=sutMess.GBKMess1[1];
  12. def1 = sutMess.GBKMess1[2];
  13. def2 = sutMess.GBKMess1[3];
  14. //处理分析消息类型
  15. if(type == 0x30 &&
  16. encode == 0x30 &&
  17. def1 == 0x32 &&
  18. def2 == 0x30)
  19. {//一键报警
  20. sutMess.len -= 4;
  21. sutMess.Update=1;//收到一条消息标记
  22. // sutMess.startCntFlag=1;
  23. // sutMess.skipCnt=0;//从此时开始计数
  24. // sutMess.forcePullGroupOn=0;
  25. SlwTrace(INF,"Start",1);
  26. }else
  27. if(type == 0x01 &&
  28. encode == 0x02)
  29. {//纯TTS播报
  30. sutMess.len -= 4;
  31. sutMess.Update=2;
  32. SlwTrace(INF, "Pure TTS",1);
  33. }else
  34. if(type == 0x20 &&
  35. encode == 0x20 &&
  36. def1 == 0x20 &&
  37. def2 == 0x20)
  38. {//全文本
  39. //此终端不处理
  40. SlwTrace(INF, "not handle",1);
  41. sutMess.len -= 4;
  42. sutMess.Update=0;
  43. }
  44. }
  45. void SMSHandle(void)
  46. {
  47. unsigned char temp1,temp2;
  48. unsigned short i;
  49. char buf[30];
  50. static unsigned char cnt=0;
  51. unsigned char *p;
  52. // if(sutMess.startCntFlag)
  53. // {
  54. // if(++cnt > 80)//如果主频改了,这个值也要改
  55. // {//秒粗计数器
  56. // cnt=0;
  57. // if(++sutMess.skipCnt>20)
  58. // {//时间到了
  59. // sutMess.startCntFlag=0;
  60. // SlwTrace(INF,"Timeout\r\n");
  61. // }
  62. // }
  63. // }
  64. if(sutMess.Update == 1 || sutMess.Update == 2)
  65. {
  66. printf("TTS_LEN:%d\r\n",sutMess.len);
  67. p = sutMess.GBKMess1+4;
  68. for(i=0;i<sutMess.len;i+=4)
  69. {
  70. temp1 = p[i+2];
  71. temp2 = p[i+3];
  72. p[i+2] = p[i];
  73. p[i+3] = p[i+1];
  74. p[i] = temp1;
  75. p[i+1]=temp2;
  76. }
  77. //p[sutMess.len]=0;
  78. MeSpeak(ENCODE_UNICODE, (char *)p,1);
  79. sutMess.Update=0;
  80. }
  81. }