📄 alert_main.cpp~
字号:
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 + -