📄 succor.c
字号:
/****************************************************************
** *
** FILE : Succor.C *
** COPYRIGHT : (c) 2001 .Xiamen Yaxon NetWork CO.LTD *
** *
** *
** By : CCH 2002.1.15 *
****************************************************************/
#include "includes.h"
#include "tools.h"
#include "stream.h"
#include "public.h"
#include "timetask.h"
#include "sysframe.h"
#include "sm_list.h"
#include "monitor.h"
#include "gprsdrv.h"
#include "prompt.h"
#include "virphone.h"
#include "handset.h"
#include "succor.h"
#if EN_HANDSET > 0
/*
********************************************************************************
* DEFINE CONFIG PARAMATERS
********************************************************************************
*/
#define SIZE_DPLYBUF 30
#define PERIOD_WAIT SECOND, 8
/*
********************************************************************************
* DEFINE MODULE VARIANT
********************************************************************************
*/
static TMR_TSK *waittmr;
static char dplybuf[SIZE_DPLYBUF];
static void PromptResult(INT8U type, INT8U result)
{
INT8U len;
char *str;
switch (type)
{
case SUCCOR_MEDICAL:
str = "医疗求助";
break;
case SUCCOR_TROUBLE:
str = "故障求助";
break;
case SUCCOR_INFORMATION:
str = "信息求助";
break;
default:
str = 0;
break;
}
len = strlen(str);
memcpy(dplybuf, str, len);
dplybuf[len++] = '\n';
if (result == _SUCCESS) {
strcpy(&dplybuf[len], "发送成功!");
} else {
strcpy(&dplybuf[len], "发送失败!");
}
ActivateStringPrompt(dplybuf);
}
static void Informer_Medical(INT8U result)
{
PromptResult(SUCCOR_MEDICAL, result);
}
static void Informer_Trouble(INT8U result)
{
PromptResult(SUCCOR_TROUBLE, result);
}
static void Informer_Information(INT8U result)
{
PromptResult(SUCCOR_INFORMATION, result);
}
void StartSuccor(INT8U type)
{
INT8U succor, len;
INT16U attrib;
STREAM *wstrm;
void (*informer)(INT8U);
switch (type)
{
case SUCCOR_MEDICAL:
ActivateStringPrompt("正发送医疗求助…");
succor = 0x40;
informer = Informer_Medical;
break;
case SUCCOR_TROUBLE:
ActivateStringPrompt("正发送故障求助…");
succor = 0x43;
informer = Informer_Trouble;
break;
case SUCCOR_INFORMATION:
ActivateStringPrompt("正发送信息求助…");
succor = 0x47;
informer = Informer_Information;
break;
default:
return;
}
if (!PubParaValid(ALARMTEL_)) {
len = 0;
} else {
len = AlarmTel.len;
}
wstrm = GetSYSFrameStream();
ASMSYSFrameHead_MODE2(wstrm, EgCode.egcode, 0x0341);
WriteBYTE_Strm(wstrm, succor);
MovStrmPtr(wstrm, QueryPosition(GetStrmPtr(wstrm)));
attrib = GetServiceAttrib(SER_SUCCOR) | SM_ATTR_COMMON;
if (!SendSYSFrame_MODE2(wstrm, AlarmTel.tel, len, attrib, informer)) {
PromptResult(type, _FAILURE);
} else {
StartTmr(waittmr, PERIOD_WAIT);
}
}
static void WaitTmrProc(void)
{
StopTmr(waittmr);
#if 0
if (!PubParaValid(SUCCORTEL_)) {
ActivateStringPrompt("无法接通求助中心!");
} else {
ActivateVirPhone_DialSuccor(SuccorTel.tellen, SuccorTel.tel);
}
#endif
}
void InitSuccor(void)
{
waittmr = CreateTimer(WaitTmrProc, 0);
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -