⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 set_a_sys.c

📁 本程序是使用CDMA450模块开发的一个无线公话完整程序
💻 C
📖 第 1 页 / 共 2 页
字号:
		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 + -