123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241 |
- #include "includes.h"
- #include "hook.h"
- //////////低功耗控制钩子功能/////////////////////
- unsigned int pwrSaveTick;
- unsigned char sendEnableNow=0;
- ASSIST_DEF uiAssist;
- void enableDataSend(void)
- {
- //此刻可以发GPS数据啦,我们让接下来2秒内可以发心跳或GPS位置包,我们只限制这两个就好了
- uTimerStart(&pwrSaveTick,200);
- sendEnableNow=1;
- SlwTrace(INF, "Send enable",1);
- }
- char isSendDataEnable(void)
- {
- if(hgs_poc_type == POC_XIAN) return 1;//西安POC的话,就一直返回yes,不存在低功耗操作
- if(newPara.pwrMode == 1) return 1;//常规模式就一直返回yes
- if(sendEnableNow==0) return 0;
- else return 1;
- }
- void powerSaveHandle(void)
- {
- if(sendEnableNow==0) return;
- if(uTimerExpired(&pwrSaveTick)==0) return; //未超时返回
- sendEnableNow=0;
- SlwTrace(INF, "Send disable",1);
- }
- void SwitchGroupCtrl(void)
- {
- if(m_GroupSwitch)
- {
- if(++m_GroupSwitchCnt >=5)
- {
- //MeSpeak(ENCODE_GBK, "CDCBB3F6", 0);
- if(sutUIstatus.Status == UIS_STANDBY)
- ShowButton(1,107,"菜单");
- m_GroupSwitch=0;
- SlwTrace(INF, "QuitGroupSel",1);
- }
- }
- }
- void SwitchGroupPre(void)
- {
- //让菜单变成:确定
- ShowButton(1,107,"确定");
- m_GroupSwitch=1;
- m_GroupSwitchCnt=0;
- }
- void SwitchVoicePre(char type)
- {
- char buf[15];
- //GuiDrawRect(29,110,128,126,1);
- GuiClearRect(29,110,90,126);
- if(type)
- {
- if(newPara.VolumLv<10)newPara.VolumLv++;
- }else{
- if(newPara.VolumLv>0){
- newPara.VolumLv--;
- // if(m_VoiceSwitchCnt<=2)GuiFillRect(29+1+newPara.VolumLv*10,110+1,127,126-1,COLOR_WHITE_BACK);
- // printf("newPara.VolumLv===%d\r\n",newPara.VolumLv);
- }
- }
- //GuiFillRect(29,110+1,29+newPara.VolumLv*10-1,126-1,COLOR_BLUE);
- GuiShowBmp(29,110,"volume.bmp");
- snprintf(buf,sizeof(buf),"音量 %d",newPara.VolumLv);
- GuiShowStr(45,110,buf,1,0);
-
- snprintf(buf,sizeof(buf),"AT+CRSL=%d\r\n",newPara.VolumLv*10);
-
- ModemSendAt(buf);
-
- m_VoiceSwitch=1;
- m_VoiceSwitchCnt=0;
- }
- void SwitchVoiceCtrl(void)
- {
- if(m_VoiceSwitch)
- {
- if(++m_VoiceSwitchCnt >=2)
- {
- if(sutUIstatus.Status == UIS_STANDBY){
- //GuiClearRect(29,110,128,126);//GuiDrawRect(29,50+50,128,66+50,1);
- GuiClearRect(29,110,90,126);
- ModifyConfigureFile(0);
- m_VoiceSwitch=0;
- SlwTrace(INF, "QuitVoiceSel",1);
- }
- }
- }
- }
- //开机后的一些控制
- void onStartCtl(void){
- KeyCount();
- SwitchGroupCtrl();
- SwitchVoiceCtrl();
- if(sutUIstatus.Status==UIS_WARN_LCDLIGHT)return;
- if(newPara.lcdParaList[newPara.lcdParaDefaultIndex]>0){
- if(++LcdOnTimeCt>=newPara.lcdParaList[newPara.lcdParaDefaultIndex]){
- LcdOnTimeCt=0;
- if(sutPocStatus.FirstLogined==0){
- LCDBackLight(1);//没登陆过(刚开机),LCD一直亮着//0
- }else LCDBackLight(0);
- }
- }
- }
- //type--向上或向下,machine---0-群组1--成员 2--语音记录
- void UiassistStart(unsigned char type,unsigned char machine)
- {
- uiAssist.type=type;
- uiAssist.machine=machine;
- uiAssist.status=1;
- }
- unsigned char assistResult=0;
- unsigned char getAssistResult(void){
- unsigned char ret;
- ret=assistResult;
- if(assistResult) assistResult=0;
- return ret;
- }
- PT_THREAD (ptUIAssist(struct pt *pt)){
- static timer_t ptTimer;
- PT_BEGIN(pt);
- while(1){
- if(uiAssist.status!=0){
- switch(uiAssist.type){
- case 0: // //刚进入
- switch(uiAssist.machine){
- case 0:
- if(SimpleGroupsInfoScan(1, 1)){//操作完成了
- assistResult=1;
- uiAssist.status=0;
- }
- break;
- case 1:
- if(SimpleUserInfoScan(1,1)){//操作完成了
- assistResult=1;
- uiAssist.status=0;
- }
- break;
-
- case 2:
- if(SimpleVoiceInfoScan(1)){//操作完成了
- assistResult=1;
- uiAssist.status=0;
- }
- break;
- }
- break;
- case 1: //上翻
- switch(uiAssist.machine){
- case 0:
- if(SimpleGroupsInfoScan(0,0)){
- assistResult=1;
- uiAssist.status=0;
- }
- break;
- case 1:
- if(SimpleUserInfoScan(0, 0)){//操作完成了
- assistResult=1;
- uiAssist.status=0;
- }
- break;
- case 2:
- if(SimpleVoiceInfoScan(0)){//操作完成了
- assistResult=1;
- uiAssist.status=0;
- }
-
- break;
-
- }
- break;
- case 2: //下翻
- switch(uiAssist.machine){
- case 0:
- if(SimpleGroupsInfoScan(0,1)){
- assistResult=1;
- uiAssist.status=0;
- }
- break;
-
- case 1:
- if(SimpleUserInfoScan(0, 1)){//操作完成了
- assistResult=1;
- uiAssist.status=0;
- }
- break;
-
- case 2:
- if(SimpleVoiceInfoScan(0)){//操作完成了
- assistResult=1;
- uiAssist.status=0;
- }
-
- break;
- }
- break;
- }
- }
-
- SoSDetected();
-
- PTTimerStart(&pt_timerPool, &ptTimer, 1);
- PT_WAIT_UNTIL(pt, PTTimerIsExpired(&ptTimer));
- }
- PT_END(pt);
- }
|