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

📄 alert_main.cpp~

📁 用linux开发的安防暴警的有关代码
💻 CPP~
📖 第 1 页 / 共 5 页
字号:
		chopwhitespace(op_dev->alert_auto_dial_number4);		strncpy(op_dev->alert_inform_center_para1,wcbo_inform_center_para1->value(),sizeof(op_dev->alert_inform_center_para1)-1);		op_dev->alert_inform_center_para1[sizeof(op_dev->alert_inform_center_para1)-1]='\0';		chopwhitespace(op_dev->alert_inform_center_para1);		strncpy(op_dev->alert_inform_center_para2,wcbo_inform_center_para2->value(),sizeof(op_dev->alert_inform_center_para2)-1);		op_dev->alert_inform_center_para2[sizeof(op_dev->alert_inform_center_para2)-1]='\0';		chopwhitespace(op_dev->alert_inform_center_para2);		if (opt_device_always_mode->value())			op_dev->device_module=ALERT_ALWAYS;		else if (opt_device_inner_mode->value())			op_dev->device_module=ALERT_INNER;		else if (opt_device_out_mode->value())			op_dev->device_module=ALERT_OUT;		op_dev->device_self_alert=ck_device_self_alert->value();		op_dev->device_enable=!ck_device_enable_alert->value();		op_dev->alert_local_enable=ck_device_local->value();		op_dev->alert_auto_dial_enable=ck_device_auto_dial->value();		op_dev->alert_inform_center_enable=ck_device_inform_center->value();		//alert_type number		for (int i=0;i<ALERT_TYPE_NUM;i++)		{			if (!strcmp(ALERT_TYPE[i], cbo_alert_type->value()))			{				op_dev->alert_type=i;				break;			}		}		//device_port number		for (int i=0;i<DEVICE_CNO_NUM;i++)		{			if (!strcmp(DEVICE_CNO[i], cbo_device_port->value()))			{				op_dev->device_cno=i;				break;			}		}		//endure time		for (int i=0;i<ENDURE_TIME_NUM;i++)		{			if (!strcmp(ENDURE_TIME[i], cbo_local_setup_endure_time->value()))			{				op_dev->alert_local_endure_time=i;				break;			}		}		for (int i=0;i<REPEAT_TIME_NUM;i++)		{			if (!strcmp(REPEAT_TIME[i], cbo_auto_dial_times->value()))			{				op_dev->alert_auto_dial_repeat=i;				break;			}		}		for (int i=0;i<REPEAT_TIME_NUM;i++)		{			if (!strcmp(REPEAT_TIME[i], cbo_inform_center_setup_times->value()))			{				op_dev->alert_inform_center_repeat=i;				break;			}		}		for (int i=0;i<INTERVAL_TIME_NUM;i++)		{			if (!strcmp(INTERVAL_TIME[i], cbo_auto_dial_interval_time->value()))			{				op_dev->alert_auto_dial_interval_time=i;				break;			}		}		for (int i=0;i<INTERVAL_TIME_NUM;i++)		{			if (!strcmp(INTERVAL_TIME[i], cbo_inform_center_setup_interval_time->value()))				{				op_dev->alert_inform_center_interval_time=i;				break;					}		}				strncpy(op_dev->alert_auto_dial_sound,cbo_auto_dial_sound->value(),sizeof(op_dev->alert_auto_dial_sound)-1);		op_dev->alert_auto_dial_sound[sizeof(op_dev->alert_auto_dial_sound)-1]='\0';			strncpy(op_dev->alert_local_sound,cbo_local_setup_sound->value(),sizeof(op_dev->alert_local_sound)-1);		op_dev->alert_local_sound[sizeof(op_dev->alert_local_sound)-1]='\0';	}voiddump_core_data_to_var(alert_device_t *item,Var *v){	char buf1[256];	char buf2[256];	WordList	*X;	Var *PREFS_CURRENT_DEVICE = (Var *) NULL;	//删除原有记录	sprintf(buf1,"%d",item->device_id);		sprintf(buf2,"%s/%s/%s","device",buf1,"device_name");		X = v->Get_wordlist ("device");		if (X->Find(buf1) >= 0)	{		v->Get_collection ("device")->Delete (buf1);	}	//重新生成记录	item->device_id=10*item->device_type+item->device_cno;		sprintf(buf1,"%d",item->device_id);		sprintf(buf2,"%s/%s/%s","device",buf1,"device_name");	v->Set_char_tree (buf2,"unnameed");			PREFS_CURRENT_DEVICE=v->Get_collection ("device")->Get_collection(buf1);	//保存常用		buf1[0]='\0';	buf2[0]='\0';	WordList	wd;	char *recent_buf;	wd.Clear();					recent_buf=v->Get_char_tree ("general/recent/recent_local_setup_message");	wd.MakeGeneric (recent_buf,SEP_CHAR);	if ((int)strlen(item->alert_local_txt)&&wd.Find(item->alert_local_txt)<0)	{			wd.Add(item->alert_local_txt);	}	if (wd.Count<10)			wd.Gather (0, buf1, 256,SEP_STR);	else		wd.Gather (wd.Count-10, buf1, 256,SEP_STR);	v->Set_char_tree ("general/recent/recent_local_setup_message",buf1);		wd.Clear();	recent_buf=v->Get_char_tree ("general/recent/recent_auto_dial_tel");	wd.MakeGeneric (recent_buf,SEP_CHAR);	if ((int)strlen(item->alert_auto_dial_number1)&&wd.Find(item->alert_auto_dial_number1)<0)	{			wd.Add(item->alert_auto_dial_number1);	}	if ((int)strlen(item->alert_auto_dial_number2)&&wd.Find(item->alert_auto_dial_number2)<0)	{			wd.Add(item->alert_auto_dial_number2);	}	if ((int)strlen(item->alert_auto_dial_number3)&&wd.Find(item->alert_auto_dial_number3)<0)	{			wd.Add(item->alert_auto_dial_number3);	}	if ((int)strlen(item->alert_auto_dial_number4)&&wd.Find(item->alert_auto_dial_number4)<0)	{			wd.Add(item->alert_auto_dial_number4);	}	if (wd.Count<10)			wd.Gather (0, buf1, 256,SEP_STR);	else		wd.Gather (wd.Count-10, buf1, 256,SEP_STR);	v->Set_char_tree ("general/recent/recent_auto_dial_tel",buf1);		wd.Clear();	recent_buf=v->Get_char_tree ("general/recent/recent_alert_inform_center_para");	wd.MakeGeneric (recent_buf,SEP_CHAR);	if ((int)strlen(item->alert_inform_center_para1)&&wd.Find(item->alert_inform_center_para1)<0)	{			wd.Add(item->alert_inform_center_para1);	}	if ((int)strlen(item->alert_inform_center_para2)&&wd.Find(item->alert_inform_center_para2)<0)	{			wd.Add(item->alert_inform_center_para2);	}	if (wd.Count<10)			wd.Gather (0, buf1, 256,SEP_STR);	else		wd.Gather (wd.Count-10, buf1, 256,SEP_STR);	v->Set_char_tree ("general/recent/recent_alert_inform_center_para",buf1);		PREFS_CURRENT_DEVICE->Set_int ("alert_type",item->alert_type);	PREFS_CURRENT_DEVICE->Set_int ("device_type",item->device_type);	PREFS_CURRENT_DEVICE->Set_char ("device_name",item->device_name);	PREFS_CURRENT_DEVICE->Set_int ("device_CNO",item->device_cno);	PREFS_CURRENT_DEVICE->Set_char ("device_position",item->device_position);		PREFS_CURRENT_DEVICE->Set_int ("device_module",item->device_module);	PREFS_CURRENT_DEVICE->Set_int ("alert_local_enable",item->alert_local_enable);	PREFS_CURRENT_DEVICE->Set_char ("alert_local_sound",item->alert_local_sound);	PREFS_CURRENT_DEVICE->Set_int ("alert_local_endure_time",item->alert_local_endure_time);	PREFS_CURRENT_DEVICE->Set_char ("alert_local_txt",item->alert_local_txt);	PREFS_CURRENT_DEVICE->Set_int ("alert_auto_dial_enable",item->alert_auto_dial_enable);	PREFS_CURRENT_DEVICE->Set_int ("alert_auto_dial_repeat",item->alert_auto_dial_repeat);	PREFS_CURRENT_DEVICE->Set_int ("alert_auto_dial_interval_time",item->alert_auto_dial_interval_time);	PREFS_CURRENT_DEVICE->Set_char ("alert_auto_dial_sound",item->alert_auto_dial_sound);	PREFS_CURRENT_DEVICE->Set_char ("alert_auto_dial_number1",item->alert_auto_dial_number1);	PREFS_CURRENT_DEVICE->Set_char ("alert_auto_dial_number2",item->alert_auto_dial_number2);	PREFS_CURRENT_DEVICE->Set_char ("alert_auto_dial_number3",item->alert_auto_dial_number3);	PREFS_CURRENT_DEVICE->Set_char ("alert_auto_dial_number4",item->alert_auto_dial_number4);	PREFS_CURRENT_DEVICE->Set_int ("alert_inform_center_enable",item->alert_inform_center_enable);	PREFS_CURRENT_DEVICE->Set_int ("alert_inform_center_repeat",item->alert_inform_center_repeat);	PREFS_CURRENT_DEVICE->Set_int ("alert_inform_center_interval_time",item->alert_inform_center_interval_time);	PREFS_CURRENT_DEVICE->Set_char ("alert_inform_center_para1",item->alert_inform_center_para1);	PREFS_CURRENT_DEVICE->Set_char ("alert_inform_center_para2",item->alert_inform_center_para2);}void set_cursor(int stat){	Fl_Color fg = FL_BLACK;	Fl_Color bg = FL_WHITE;	Fl_Cursor cursor;	if (stat)		cursor =(Fl_Cursor)(FL_CURSOR_WAIT);	else		cursor =(Fl_Cursor)(FL_CURSOR_DEFAULT);	fl_cursor(cursor,fg,bg);}void set_button_enable(){	if (PROFILES.dev_current)	{			bt_setup_del->activate();		bt_setup_edit->activate();	}		else	{			bt_setup_del->activate();		bt_setup_edit->activate();	}	}void set_button_disable(){	bt_setup_del->deactivate();	bt_setup_edit->deactivate();}voidinit_password_setup(int user_level){	ipt_password_setup_old_password->value("");	ipt_password_setup_new_password->value("");	ipt_password_setup_password_confirm->value("");	if (user_level==0)	{		password_setup_window->label("超级用户密码设置");		box_password_setup_inform->label("请输入8位密码:");		ipt_password_setup_old_password->maximum_size(8);		ipt_password_setup_new_password->maximum_size(8);		ipt_password_setup_password_confirm->maximum_size(8);	}	else if (user_level==1)	{		password_setup_window->label("普通用户密码设置");		box_password_setup_inform->label("请输入6位密码:");		ipt_password_setup_old_password->maximum_size(6);		ipt_password_setup_new_password->maximum_size(6);		ipt_password_setup_password_confirm->maximum_size(6);	}}/*****************************************************************	int user_class//用户级别   0:root,1:user,2:sos	int mode//初始化模式       0:新建1:修改******************************************************************/voidinit_device_dialog(int user_class,int mode,alert_device_t *op_dev){	if (!local_setup_window)		local_setup_window=(Fl_Window*)	make_local_setup_window();	if (!auto_dial_setup_window)		auto_dial_setup_window=(Fl_Window*)make_auto_dial_setup_window();	if (!inform_center_setup_window)		inform_center_setup_window=(Fl_Window*)make_inform_center_setup_window();	if (!AddAnswerWnd_window)		AddAnswerWnd_window=(Fl_Window *)AddAnswerWnd ();	{			ipt_device_name->value(op_dev->device_name);		ipt_device_position->value(op_dev->device_position);		WordList wd;		char *recent_buf;				wd.Clear();		wcbo_local_setup_message->item.clear();						recent_buf=PREFERENCES.Get_char_tree ("general/recent/recent_local_setup_message");		wd.MakeGeneric (recent_buf,SEP_CHAR);		for (int i=0;i<wd.Count;i++)			wcbo_local_setup_message->item.add(wd.Get(i),i);		if ((int)strlen(op_dev->alert_local_txt) &&wd.Find(op_dev->alert_local_txt)<0)			wcbo_local_setup_message->item.add(op_dev->alert_local_txt);		wcbo_local_setup_message->item.index(wcbo_local_setup_message->item.find(op_dev->alert_local_txt));			wcbo_local_setup_message->value(op_dev->alert_local_txt);		wd.Clear();		wcbo_auto_dial_setup_tel1->item.clear();							recent_buf=PREFERENCES.Get_char_tree ("general/recent/recent_auto_dial_tel");		wd.MakeGeneric (recent_buf,SEP_CHAR);		for (int i=0;i<wd.Count;i++)			wcbo_auto_dial_setup_tel1->item.add(wd.Get(i),i);		if ((int)strlen(op_dev->alert_auto_dial_number1)&& wd.Find(op_dev->alert_auto_dial_number1)<0)			wcbo_auto_dial_setup_tel1->item.add(op_dev->alert_auto_dial_number1);		if ((int)strlen(op_dev->alert_auto_dial_number2)&& wd.Find(op_dev->alert_auto_dial_number2)<0)			wcbo_auto_dial_setup_tel1->item.add(op_dev->alert_auto_dial_number2);		if ((int)strlen(op_dev->alert_auto_dial_number3)&& wd.Find(op_dev->alert_auto_dial_number3)<0)			wcbo_auto_dial_setup_tel1->item.add(op_dev->alert_auto_dial_number3);		if ((int)strlen(op_dev->alert_auto_dial_number4)&& wd.Find(op_dev->alert_auto_dial_number4)<0)			wcbo_auto_dial_setup_tel1->item.add(op_dev->alert_auto_dial_number4);		wcbo_auto_dial_setup_tel1->item.index(wcbo_auto_dial_setup_tel1->item.find(op_dev->alert_auto_dial_number1));			wcbo_auto_dial_setup_tel1->value(op_dev->alert_auto_dial_number1);		wcbo_auto_dial_setup_tel2->item.clear();					for (int i=0;i<wd.Count;i++)			wcbo_auto_dial_setup_tel2->item.add(wd.Get(i),i);		if ((int)strlen(op_dev->alert_auto_dial_number1)&& wd.Find(op_dev->alert_auto_dial_number1)<0)			wcbo_auto_dial_setup_tel2->item.add(op_dev->alert_auto_dial_number1);		if ((int)strlen(op_dev->alert_auto_dial_number2)&&wd.Find(op_dev->alert_auto_dial_number2)<0)			wcbo_auto_dial_setup_tel2->item.add(op_dev->alert_auto_dial_number2);		if ((int)strlen(op_dev->alert_auto_dial_number3)&& wd.Find(op_dev->alert_auto_dial_number3)<0)			wcbo_auto_dial_setup_tel2->item.add(op_dev->alert_auto_dial_number3);		if ((int)strlen(op_dev->alert_auto_dial_number4)&& wd.Find(op_dev->alert_auto_dial_number4)<0)			wcbo_auto_dial_setup_tel2->item.add(op_dev->alert_auto_dial_number4);		wcbo_auto_dial_setup_tel2->item.index(wcbo_auto_dial_setup_tel2->item.find(op_dev->alert_auto_dial_number2));			wcbo_auto_dial_setup_tel2->value(op_dev->alert_auto_dial_number2);		wcbo_auto_dial_setup_tel3->item.clear();			for (int i=0;i<wd.Count;i++)			wcbo_auto_dial_setup_tel3->item.add(wd.Get(i),i);		if ((int)strlen(op_dev->alert_auto_dial_number1)&& wd.Find(op_dev->alert_auto_dial_number1)<0)			wcbo_auto_dial_setup_tel3->item.add(op_dev->alert_auto_dial_number1);		if ((int)strlen(op_dev->alert_auto_dial_number2)&&wd.Find(op_dev->alert_auto_dial_number2)<0)			wcbo_auto_dial_setup_tel3->item.add(op_dev->alert_auto_dial_number2);		if ((int)strlen(op_dev->alert_auto_dial_number3)&& wd.Find(op_dev->alert_auto_dial_number3)<0)			wcbo_auto_dial_setup_tel3->item.add(op_dev->alert_auto_dial_number3);		if ((int)strlen(op_dev->alert_auto_dial_number4)&& wd.Find(op_dev->alert_auto_dial_number4)<0)			wcbo_auto_dial_setup_tel3->item.add(op_dev->alert_auto_dial_number4);		wcbo_auto_dial_setup_tel3->item.index(wcbo_auto_dial_setup_tel3->item.find(op_dev->alert_auto_dial_number3));			wcbo_auto_dial_setup_tel3->value(op_dev->alert_auto_dial_number3);		wcbo_auto_dial_setup_tel4->item.clear();			for (int i=0;i<wd.Count;i++)			wcbo_auto_dial_setup_tel4->item.add(wd.Get(i),i);		if ((int)strlen(op_dev->alert_auto_dial_number1)&& wd.Find(op_dev->alert_auto_dial_number1)<0)			wcbo_auto_dial_setup_tel4->item.add(op_dev->alert_auto_dial_number1);		if ((int)strlen(op_dev->alert_auto_dial_number2)&&wd.Find(op_dev->alert_auto_dial_number2)<0)			wcbo_auto_dial_setup_tel4->item.add(op_dev->alert_auto_dial_number2);		if ((int)strlen(op_dev->alert_auto_dial_number3)&& wd.Find(op_dev->alert_auto_dial_number3)<0)			wcbo_auto_dial_setup_tel4->item.add(op_dev->alert_auto_dial_number3);		if ((int)strlen(op_dev->alert_auto_dial_number4)&& wd.Find(op_dev->alert_auto_dial_number4)<0)			wcbo_auto_dial_setup_tel4->item.add(op_dev->alert_auto_dial_number4);		wcbo_auto_dial_setup_tel4->item.index(wcbo_auto_dial_setup_tel4->item.find(op_dev->alert_auto_dial_number4));			wcbo_auto_dial_setup_tel4->value(op_dev->alert_auto_dial_number4);		wd.Clear();		wcbo_inform_center_para1->item.clear();							recent_buf=PREFERENCES.Get_char_tree ("general/recent/recent_alert_inform_center_para");		wd.MakeGeneric (recent_buf,SEP_CHAR);		for (int i=0;i<wd.Count;i++)			wcbo_inform_center_para1->item.add(wd.Get(i),i);		if ((int)strlen(op_dev->alert_inform_center_para1)&&wd.Find(op_dev->alert_inform_center_para1)<0)			wcbo_inform_center_para1->item.add(op_dev->alert_inform_center_para1);		if ((int)strlen(op_dev->alert_inform_center_para2)&&wd.Find(op_dev->alert_inform_center_para2)<0)			wcbo_inform_center_para1->item.add(op_dev->alert_inform_center_para2);		wcbo_inform_center_para1->item.index(wcbo_inform_center_para1->item.find(op_dev->alert_inform_center_para1));			wcbo_inform_center_para1->value(op_dev->alert_inform_center_para1);		wcbo_inform_center_para2->item.clear();			for (int i=0;i<wd.Count;i++)			wcbo_inform_center_para2->item.add(wd.Get(i),i);		if ((int)strlen(op_dev->alert_inform_center_para1)&&wd.Find(op_dev->alert_inform_center_para1)<0)			wcbo_inform_center_para2->item.add(op_dev->alert_inform_center_para1);		if ((int)strlen(op_dev->alert_inform_center_para2)&&wd.Find(op_dev->alert_inform_center_para2)<0)			wcbo_inform_center_para2->item.add(op_dev->alert_inform_center_para2);		wcbo_inform_center_para2->item.index(wcbo_inform_center_para2->item.find(op_dev->alert_inform_center_para2));			wcbo_inform_center_para2->value(op_dev->alert_inform_center_para2);		opt_device_out_mode->value(0);		opt_device_always_mode->value(0);		opt_device_inner_mode->value(0);		if (op_dev->device_module==ALERT_ALWAYS)		{			opt_device_always_mode->value(1);				//grp_alert_type->activate();			}		else if (op_dev->device_module==ALERT_INNER)		{			opt_device_inner_mode->value(1);						//grp_alert_type->activate();		}		else if (op_dev->device_module==ALERT_OUT)		{			opt_device_out_mode->value(1);			//grp_alert_type->deactivate();		}		ck_device_local->value(0);		ck_device_auto_dial->value(0);		ck_device_inform_center->value(0);		ck_device_enable_alert->value(0);		ck_device_self_alert->value(0);		bt_device_local_setup->deactivate();		bt_device_auto_dial_setup->deactivate();		bt_device_inform_center->deactivate();		if (op_dev->device_self_alert)		{			ck_device_self_alert->value(1);		}		if (!op_dev->device_enable)		{			ck_device_enable_alert->value(1);		}		if (op_dev->alert_local_enable)		{			ck_device_local->value(1);			bt_device_local_setup->activate();		}		if (op_dev->alert_auto_dial_enable)		{				ck_device_auto_dial->value(1);			bt_device_auto_dial_setup->activate();		}			if (op_dev->alert_inform_center_enable)		{					ck_device_inform_center->value(1);			bt_device_inform_center->activate();		}		//alert_type number		cbo_alert_type->item.clear();		for (int i=0;i<ALERT_TYPE_NUM;i++)		{			cbo_alert_type->item.add(ALERT_TYPE[i], i);			}		cbo_alert_type->item.index(op_dev->alert_type);		cbo_alert_type->value(ALERT_TYPE[op_dev->alert_type]);		//device_port number		cbo_device_port->item.clear();		alert_device_t	*temp_device;		int device_type=0;		int index=0;		index=iconbr_setup_list->value();		if (index==WIRE_SETUP)			device_type=DEVICE_WIRE;		else if (index==WIRELESS_SETUP)			device_type=DEVICE_WIRELESS;		else 			printf("Select error\n");		for (int i=0;i<DEVICE_CNO_NUM;i++)		{			for (temp_device=PROFILES.dev_head;temp_device;temp_device=temp_device->next)			{				if ( (temp_device->device_cno==i) && (temp_device->device_type==device_type) )					break;			}			if (!temp_device)			{				cbo_device_port->item.add(DEVICE_CNO[i], i);			}			else if (i==op_dev->device_cno)			{				cbo_device_port->item.add(DEVICE_CNO[i], i);			}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -