PocTask.h 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. /********************************************************************************
  2. * File Name: Poc.h
  3. * Function Describe: Header file for Poc.c
  4. * Explain:
  5. * Writer: ShiLiangWen
  6. * Date: 2015-7-10
  7. 0 : 表示自己无法讲话;
  8. 1 : 表示自己可以中断讲话人的讲话,可以进行强插讲话;
  9. *******************************************************************************/
  10. #ifndef __POC_H
  11. #define __POC_H
  12. /***********************************************************************************/
  13. #include <rtl.h>
  14. //#define POC_TASK_STK_SIZE 1024/8
  15. extern OS_TID idPocTask;
  16. //extern U64 stkPocTask[POC_TASK_STK_SIZE];
  17. extern int g_iModemVer;
  18. extern int g_iPocVer;
  19. #define POC_USER_ID_LEN 9 //8+1 9
  20. #define POC_GROUP_ID_LEN 9 //8+1
  21. #define POC_USER_ONLINE_LIST_LEN 300
  22. #define POC_USER_NAME_LEN 36//24 //用户名长度
  23. #define POC_GROUP_NAME_LEN 36//24 //群组名长度
  24. #define POC_ALL_USERS_NUM 5//只需要装与显示时一页的数LIST_ROW就够了,采用动态更新方式
  25. #define POC_ALL_GROUPS_NUM 100 //本机所属的所有群组的个数
  26. typedef struct{
  27. unsigned long ID;
  28. char status;//0 离线 1--在线(不在此群组) 2--在线(在此群组)
  29. char name[POC_USER_NAME_LEN];
  30. }SUT_POC_USER;
  31. typedef struct{
  32. unsigned long ID;
  33. unsigned short usernum;//组内成员个数
  34. char name[POC_GROUP_NAME_LEN];
  35. }SUT_POC_GROUP;
  36. typedef struct{
  37. unsigned char Logined;//POC登陆状态 0--未登录 1--已登陆
  38. unsigned char FirstLogined;//首次登陆标志 0--未登陆 1--第一次已登陆
  39. unsigned char Speaker; //远程说话标志 1有人说 0无人说
  40. unsigned char TTS; //TTS播报标志 1有播报 0无播报
  41. unsigned char Mic; //Mic 0--关闭 1--打开
  42. unsigned char ModemPowerOn;//1--模块已上电 0--模块未上电
  43. unsigned char PPTpress;//PPT
  44. unsigned char CSQ99Ct;
  45. unsigned char ModemInactiveCt;//当模块启动后,每秒加1,收到模块AT则清零,当加到一定数值仍不清零则重启模块及UART。
  46. unsigned short PocLostCt;//当模块首次登陆系统后,如果再离线开始计数,每秒加1,直到模块再次登陆POC系统才清零,当加到一定数值仍不清零则重启模块及UART
  47. unsigned short UserOnLineNum;//组内在线成员个数
  48. unsigned short UserOnLineIndex;
  49. //以下用于存储本机用户ID和用户名,本机所处的群组ID和群组明
  50. SUT_POC_USER LocalUser;
  51. SUT_POC_GROUP LocalGroup;
  52. //以下是当前群组所有成员
  53. unsigned short handleIndex;
  54. unsigned char GetOneUserFlag;
  55. unsigned char FillUserIndex;
  56. unsigned char UserNum_Update;
  57. unsigned char GroupNum_Update;
  58. int GroupsNum;
  59. char Callname[POC_USER_NAME_LEN+4];
  60. unsigned long CallID;
  61. SUT_POC_USER AllUsers[POC_ALL_USERS_NUM];
  62. SUT_POC_GROUP AllGroups[POC_ALL_GROUPS_NUM];
  63. char switchGroupID[8];
  64. ///////////以下用于无网络连接播报部分
  65. unsigned char reportTimeCnt1;
  66. unsigned char reportTimeCnt2;
  67. unsigned char report1Lock;
  68. unsigned char danHunStatus;//0 未单呼状态,1 单呼状态
  69. unsigned char statusChaned;//用来修复当低优先级用户一直在讲话,不释放,然后被抢麦,
  70. //只要抢麦者释放话语权后,低优先级用户显示出群组名字,再
  71. //被抢麦,都会显示有问题。第二次以后都会。
  72. unsigned char modemRstFlag;
  73. unsigned char SOS_Flag;
  74. unsigned char loginResult;//登陆状态 0未登陆 1账号信息错误 2无网络连接 3 登陆成功 4 请插卡
  75. }SUT_POC_STATUS;
  76. extern SUT_POC_STATUS sutPocStatus;
  77. //---------------------------------------------------------------------------------
  78. #define POC_CMD_PPT_START "AT+POC=0B0000\r\n" //开始讲话,按下PTT键
  79. #define POC_CMD_PPT_STOP "AT+POC=0C0000\r\n" //结束讲话,松开PTT键
  80. #define POC_CMD_UP "AT+POC=10000007\r\n" //选组上键
  81. #define POC_CMD_DOWN "AT+POC=10000008\r\n" //选组下键
  82. __task void PocTask(void);
  83. char PocHandle(char *msg);
  84. int GBKTostr(char *src,char *dec,short maxlen);
  85. extern char g_cGroupName[];
  86. extern unsigned long g_ulGroupID;
  87. extern unsigned char g_ucSelect;
  88. /************************************************************************************/
  89. #endif
  90. /************************************************************************************/