📄 set_a_sys.c
字号:
Para_Store(&gDevicePara);
XTipWndShow(TranslateChar("设置成功"),1);
}
static void fv_SIMLOCK()
{
int selMenu, id = 1;
int tmp;
char tempid[30];
selMenu = gDevicePara.factoryData.Sim_LOCK;
while (id) {
id = XSelectWindow((char**)YNcfgName, MAX_Dis_En_able, selMenu);//,TRUE);
if (id < 0)
break;
selMenu = id;
switch (id)
{
case 0:
memset(gDevicePara.factoryData.CIMI_ID,0,20);
gDevicePara.factoryData.Sim_LOCK=0;
Para_Store(&gDevicePara);
XTipWndShow(TranslateChar("设置成功"),1);
id = 0;
break;
case 1:
tmp = AT_GetIMSI(tempid);
if ((tmp == 0)&&(0<strlen(tempid))) {
strncpy(gDevicePara.factoryData.CIMI_ID,tempid,20);
gDevicePara.factoryData.Sim_LOCK=1;
Para_Store(&gDevicePara);
XTipWndShow(TranslateChar("设置成功"),1);
id = 0;
}
else
{
XTipWndShow(TranslateChar("设置失败"),1);
id = 1;
}
break;
default:
id = 0;
break;
}
}
}
#if 1
static int setClose_Pin(void)
{int ret;
ret=-1;
//---------修改PIN
ret = AT_ChangePwd("5678", "1234");//oldpin, newpin
debug_print_str(DM_RUNINFO, (info_buffer, "AT_ChangePwd1234 0x%x", ret));
if(0!=ret)//showCmdResult(ret);
return ret;
Waiting(1000);
ret = AT_SetPinStatus("1234", 0);
debug_print_str(DM_RUNINFO, (info_buffer, "Pin保护取消 0x%x", ret));
return ret;
}
static int setOpen_Pin(void)
{int ret;
ret=-1;
ret = AT_SetPinStatus("1234", 1);
debug_print_str(DM_RUNINFO, (info_buffer, "开启Pin保护 0x%x", ret));
if(0!=ret)//showCmdResult(ret);
return ret;
Waiting(1000);
//---------修改PIN
ret = AT_ChangePwd("1234", "5678");//oldpin, newpin
debug_print_str(DM_RUNINFO, (info_buffer, "AT_ChangePwd1234 0x%x", ret));
return ret;
}
static void fv_AUTOPIN()
{
int selMenu, id = 1;
selMenu = gDevicePara.factoryData.Auto_PIN;
while (id) {
id = XSelectWindow((char**)YNcfgName, MAX_Dis_En_able, selMenu);//,TRUE);
if (id < 0)
break;
selMenu = id;
switch(id)
{
case 0://禁止auto pin
if(0==gDevicePara.factoryData.Auto_PIN)
{
XTipWndShow(TranslateChar("已经禁用"),1);
id = 0;//已经禁止,直接返回
break;
}
gDevicePara.factoryData.Auto_PIN=0;
Para_Store(&gDevicePara);
XTipWndShow(TranslateChar("设置成功"),1);
if(0==setClose_Pin())
{
XTipWndShow(TranslateChar("PIN设置成功"),1);
id = 0;
break;
}
else
{
XTipWndShow(TranslateChar("PIN设置失败"),1);
}
id=1;
break;
case 1:
if(1==gDevicePara.factoryData.Auto_PIN)
{
XTipWndShow(TranslateChar("已经启用"),1);
id = 0;//已经禁止,直接返回
break;
}
gDevicePara.factoryData.Auto_PIN=1;
Para_Store(&gDevicePara);
XTipWndShow(TranslateChar("设置成功"),1);
if(0==setOpen_Pin())
{
XTipWndShow(TranslateChar("PIN设置成功"),1);
id = 0;
break;
}
else
{
XTipWndShow(TranslateChar("PIN设置失败"),1);
}
id=1;
break;
default:
id = 0;
break;
}
}
}
#endif
#define MAX_Language 5
const static char *LancfgName[]=
{
"中文",
"英文",
"西班牙文",
"葡萄牙文",
"法文",
};
char CheckLanguage(void)
{
return gDevicePara.factoryData.Language;
}
static void fv_LANGUAGE()
{
int selMenu, id = 1;
selMenu = gDevicePara.factoryData.Language;
while (id) {
id = XSelectWindow((char**)LancfgName, MAX_Language, selMenu);//,TRUE);
if (id < 0)
break;
selMenu = id;
if((id>=0)&&(id<MAX_Language))
{
gDevicePara.factoryData.Language=id;
Para_Store(&gDevicePara);
XTipWndShow(TranslateChar("设置成功"),1);
id = 0;
}
else
id = 0;
}
}
#if 1
#if 1
// for logo set
typedef struct {
window_t wnd;
listbox_t lbox;
char *item[20];
int num;
int sel;
} logosel_window_t;
static logosel_window_t *glogoSelectWnd;
static int logoOnDrawMainItem(listbox_t *lb, rect *rc, int num)
{
if (num >= glogoSelectWnd->num)
return -1;
MoveTo(rc->Xmin + 1, rc->Ymax);
if(0<strlen(gDevicePara.factoryData.Logo[num].LogoID))
DrawString((BYTE*)gDevicePara.factoryData.Logo[num].LogoID);
else
DrawString((BYTE*)"------");
//---
MoveTo(rc->Xmin + 1+(6*6), rc->Ymax);
DrawString((BYTE*)":");
//---
MoveTo(rc->Xmin + 1+(6*7), rc->Ymax);
if(0<strlen(gDevicePara.factoryData.Logo[num].LogoName))
DrawString((BYTE*)gDevicePara.factoryData.Logo[num].LogoName);
else
DrawString((BYTE*)"------");
//---
return 0;
}
static int logoselMainProc(XMSG *msg)
{
switch (msg->message) {
case MSG_KEYDOWN:
switch (msg->param1) {
case KEY_UP:
case KEY_DOWN:
XListBoxKeyHandle(&glogoSelectWnd->lbox, msg->param1);
break;
//case KEY_MENU://yu add 1
case KEY_OK:
glogoSelectWnd->sel = XListBoxGetSelect(&glogoSelectWnd->lbox);
XPostQuitMessage(&glogoSelectWnd->wnd);
break;
case KEY_CANCEL:
glogoSelectWnd->sel = -1;
XPostQuitMessage(&glogoSelectWnd->wnd);
break;
}
break;
default:
XDefaultWindowProc(msg);
break;
}
return 0;
}
static int logoXSelectWindow(int num, int defsel)
{
rect area;
XMSG msg;
int ret;
glogoSelectWnd = (logosel_window_t*)malloc(sizeof(logosel_window_t));
if (NULL == glogoSelectWnd)
return -1;
//Translate_xxChar(item;num);
//memcpy(glogoSelectWnd->item, item, num*sizeof(char*));
//memcpy(glogoSelectWnd->item, Translate_xxChar((char**)item,num), num*sizeof(char*));;
glogoSelectWnd->num = num;
SetRect(&area, 0, LCD_ICONEND+1, LCD_WIDTH-1, LCD_HEIGHT-1);
XCreateWindow(NULL, &glogoSelectWnd->wnd, &area, NULL, logoselMainProc, FALSE);
// XCreateWindow(NULL, &glogoSelectWnd->wnd, &area, NULL, selMainProc, saveBack);
XCreateListBox(&glogoSelectWnd->wnd.comp, \
&glogoSelectWnd->lbox, &area, \
num, HZ_MAIN, logoOnDrawMainItem);
glogoSelectWnd->sel = XListBoxSetCurrent(&glogoSelectWnd->lbox, defsel);
XShowComponent(&glogoSelectWnd->wnd.comp);
v_WriteLcdBuff();
glogoSelectWnd->sel = -2;
while (XGetMessage(&msg) != -1)
XDispatchMessage(&msg);
XDestroyWindow(&glogoSelectWnd->wnd);
ret = glogoSelectWnd->sel;
free(glogoSelectWnd);
glogoSelectWnd = NULL;
return ret;
}
#endif
static int Edit_logo(int id)
{
part_logo_t edittmp;
rect area;
int sel;
memcpy(&edittmp,&gDevicePara.factoryData.Logo[id], sizeof(part_logo_t));
logoinputnumber:
SetRect(&area, 10, 12, 102, LCD_HEIGHT-14);//yu SetRect(&area, 10, LCD_ICONEND+2, LCD_WIDTH-10, LCD_HEIGHT-17);
sel = InputLine(&area, TranslateChar("请输入ID"), (BYTE*)edittmp.LogoID, LOGOIDlen-1, INPUT_DIGITAL | INPUT_FIXED);
if (sel < 0)
return -1;
if(0==strlen(edittmp.LogoID))
{
XTipWndShow(TranslateChar("请输入ID"),1);
goto logoinputnumber;
}
logoinputname:
SetRect(&area, 10, 12, 102, LCD_HEIGHT-14);//yuSetRect(&area, 10, LCD_ICONEND+2, LCD_WIDTH-10, LCD_HEIGHT-17);
sel = InputLine(&area, TranslateChar("请输入LOGO"), (BYTE*)edittmp.LogoName, LOGOnamelen-1, INPUT_PINYIN);
if (sel == -1)
return -1;
if (sel == -2)
goto logoinputnumber;
if(0==strlen(edittmp.LogoName))
{
XTipWndShow(TranslateChar("请输入LOGO"),1);
goto logoinputname;
}
memcpy(&gDevicePara.factoryData.Logo[id],&edittmp, sizeof(part_logo_t));
Para_Store(&gDevicePara);
XTipWndShow(TranslateChar("设置成功"),1);
return 0;
}
static void fv_LOGO(void)
{
//rect area;
//char Numberbf[24];
int selMenu, id = 1;
selMenu = 0;
while (id) {
//id = cfgMainWnd(selMenu);// yu 显示所有菜单
id = logoXSelectWindow(LOGOMAX, selMenu);//,TRUE);
if (id < 0)
break;
selMenu = id;
if(id<LOGOMAX)
{//
Edit_logo(id);
id=1;
}
else
{
id=0;
}
}
}
#else
{
rect area;
char Numberbf[24];
/* strcpy(Numberbf,gDevicePara.factoryData.Logo);
//读取记录
SetRect(&area, 10, 12, 102, LCD_HEIGHT-14);
if (0 > InputLine(&area,TranslateChar("输入LOGO"), (BYTE*)Numberbf, 8, INPUT_DIGITAL | INPUT_FIXED))
{return ;
}
//-----------
Numberbf[6]='\0';
strcpy(gDevicePara.factoryData.Logo,Numberbf);
Para_Store(&gDevicePara);
sTipWndShow(TranslateChar("设置成功"));
v_WriteLcdBuff();
Waiting(1000);*/
}
#endif
#if 1
typedef struct {
window_t wnd;
listbox_t lbox;
int num;
int sel;
} sel_Bmpwindow_t;
static sel_Bmpwindow_t *sgBmpSelectWnd;
extern void ShowLogoBmpl(int idex,int DecSet);
static int sOnDrawBmpItem(listbox_t *lb, rect *rc, int num)
{
rect Rect;
if (num >= sgBmpSelectWnd->num)
return -1;
ShowLogoBmpl(num,14);
SetRect(&Rect, 0+1, (LCD_ICONEND+1)+1, LCD_WIDTH-14, LCD_HEIGHT-2);
InvertRect(&Rect);
return 0;
}
static int sselBmpProc(XMSG *msg)
{
switch (msg->message) {
case MSG_KEYDOWN:
switch (msg->param1) {
case KEY_UP:
case KEY_DOWN:
XListBoxKeyHandle(&sgBmpSelectWnd->lbox, msg->param1);
break;
//case KEY_MENU://yu add 1
case KEY_OK:
sgBmpSelectWnd->sel = XListBoxGetSelect(&sgBmpSelectWnd->lbox);
gDevicePara.factoryData.LogoBmp=sgBmpSelectWnd->sel;
Para_Store(&gDevicePara);
XTipWndShow(TranslateChar("设置成功"),1);
XPostQuitMessage(&sgBmpSelectWnd->wnd);
break;
case KEY_CANCEL:
sgBmpSelectWnd->sel = -1;
XPostQuitMessage(&sgBmpSelectWnd->wnd);
break;
}
break;
default:
XDefaultWindowProc(msg);
break;
}
return 0;
}
static int sXSelectBmpWindow(int defsel)
{
rect area;
XMSG msg;
int ret;
int num=5;
sgBmpSelectWnd = (sel_Bmpwindow_t*)malloc(sizeof(sel_Bmpwindow_t));
if (NULL == sgBmpSelectWnd)
return -1;
sgBmpSelectWnd->num = num;
SetRect(&area, 0, LCD_ICONEND+1, LCD_WIDTH-1, LCD_HEIGHT-1);
XCreateWindow(NULL, &sgBmpSelectWnd->wnd, &area, NULL, sselBmpProc, FALSE);
XCreateListBox(&sgBmpSelectWnd->wnd.comp, \
&sgBmpSelectWnd->lbox, &area, \
num, HZ_MAIN*4, sOnDrawBmpItem);
sgBmpSelectWnd->sel = XListBoxSetCurrent(&sgBmpSelectWnd->lbox, defsel);
XShowComponent(&sgBmpSelectWnd->wnd.comp);
v_WriteLcdBuff();
sgBmpSelectWnd->sel = -2;
while (XGetMessage(&msg) != -1)
XDispatchMessage(&msg);
XDestroyWindow(&sgBmpSelectWnd->wnd);
ret = sgBmpSelectWnd->sel;
free(sgBmpSelectWnd);
sgBmpSelectWnd = NULL;
return ret;
}
#endif
void FactorySet(void)
{
//rect area;
//char Numberbf[24];
int selMenu, id = 1;
selMenu = 0;
while (id) {
//id = cfgMainWnd(selMenu);// yu 显示所有菜单
id = XSelectWindow((char**)f_cfgName, MAX_CFG_ITEM_F, selMenu);//,TRUE);
if (id < 0)
break;
selMenu = id;
switch (id) {
case F_SERVE_ID:
fv_SERVE_ID();
id = 1;
break;
case F_SIMLOCK:
fv_SIMLOCK();
id = 1;
break;
case F_AUTOPIN:
fv_AUTOPIN();
id = 1;
break;
case F_LANGUAGE:
fv_LANGUAGE();
id = 1;
break;
case F_LOGO:
fv_LOGO();
id = 1;
break;
case F_BMPLOGO:
sXSelectBmpWindow(gDevicePara.factoryData.LogoBmp);
id =1;
break;
default:
id = 0;
break;
}
}
}
#endif
#if 1
void Clear_SIMLOCK_ServeID(void)
{
memset(gDevicePara.factoryData.Serve_ID,0,8);
memset(gDevicePara.factoryData.CIMI_ID,0,20);
gDevicePara.factoryData.Sim_LOCK=0;//禁止
Para_Store(&gDevicePara);
}
#endif
#if 1
int getSmsLife(void)
{
return gDevicePara.dev.SmsLifetime;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -