Просмотр исходного кода

解决多语言下查看报警信息崩溃问题

guohui 1 год назад
Родитель
Сommit
77c2bcbbd4
5 измененных файлов с 14 добавлено и 87 удалено
  1. 1 2
      pro/src/appweb_handle.c
  2. 0 1
      pro/src/json_handle.c
  3. 6 81
      pro/src/language_common.h
  4. 7 1
      pro/src/language_hashmap.c
  5. 0 2
      pro/src/sqlite_handle.c

+ 1 - 2
pro/src/appweb_handle.c

@@ -2146,7 +2146,6 @@ static void sensorStatusMonitoring(void* conn)
             memset(_overSensorBackInfoTemp,0,sizeof(_OverSensorBackInfo));
             //基本信息
             _overSensorBackInfoTemp->sensorId = _globalSensorManagerTemp->sensor_id;
-            //strcpy(_overSensorBackInfoTemp->sensorName,language_sensor_name[__globalDeviceManage._globalDevInfo.product.language][(int)_globalSensorManagerTemp->sensor_type]);
             strcpy(_overSensorBackInfoTemp->sensorName,_globalSensorManagerTemp->sensor_name);
             
             _overSensorBackInfoTemp->sensorType = _globalSensorManagerTemp->sensor_type;
@@ -2696,7 +2695,7 @@ static void sensorStatusMonitoring(void* conn)
             memset(_overSensorBackInfoTemp, 0, sizeof(_OverSensorBackInfo));
             // 基本信息
             _overSensorBackInfoTemp->sensorId = _globalSensorMangerSTemp->sensor_id;
-            strcpy(_overSensorBackInfoTemp->sensorName,language_sensor_name[__globalDeviceManage._globalDevInfo.product.language][(int)_globalSensorMangerSTemp->sensor_type]);
+            strcpy(_overSensorBackInfoTemp->sensorName,_globalSensorMangerSTemp->sensor_name);
             
             _overSensorBackInfoTemp->sensorType = _globalSensorMangerSTemp->sensor_type;
             strcpy(_overSensorBackInfoTemp->comSlogan, _globalSensorMangerSTemp->sensor_port_name);

+ 0 - 1
pro/src/json_handle.c

@@ -3116,7 +3116,6 @@ char *ws_sensor_status_ack_to_json(GlobalSensorManger *_globalSensorManger)
             memset(_overSensorBackInfoTemp, 0, sizeof(_OverSensorBackInfo));
             // 基本信息
             _overSensorBackInfoTemp->sensorId = _globalSensorManagerTemp->sensor_id;
-           // strcpy(_overSensorBackInfoTemp->sensorName,language_sensor_name[__globalDeviceManage._globalDevInfo.product.language][(int)_globalSensorManagerTemp->sensor_type]);
             strcpy(_overSensorBackInfoTemp->sensorName,_globalSensorManagerTemp->sensor_name);
 
             _overSensorBackInfoTemp->sensorType = _globalSensorManagerTemp->sensor_type;

+ 6 - 81
pro/src/language_common.h

@@ -5,171 +5,96 @@
 #define LANG_STR_SIZE 64
 
 extern const char language_root_name[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_nick_name[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_user_manage[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_role_manage[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_menu_manage[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_power_monitor[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_power_sts_monitor[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_power_channel_sts_monitor[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_power_switch_sts_monitor[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_power_history_search[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_sensor_monitoring[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_sensor_status_monitoring[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_sensor_history_search[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_Alarm_protection[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_Alarm_System[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_Alarm_Threshold_rule[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_log_information[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_log_Alarm[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_log_operation[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_log_running[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_communication_management[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_net_install[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_RS485_install[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_serve_manage[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_SMTP_install[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_SNMP_install[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_SNMP_TRAP_install[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_MQTT_iot_install[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_NTP_install[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_Timing_install[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_Sequential_setting[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_Group_setting[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_maintenance_equipment[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_Device_restart[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_firmware_upgrade[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_ctrlboard_upgrade[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_back_factor_upgrade[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_Configure_inport_export[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_after_sales_service[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_about_Equipment[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_temperature[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_humidity[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_atmosphere_gas[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_atmosphere_airflow[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_atmosphere_pressure[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_log_Power[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_opera_log_operation[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_run_log_running[LANG_MAX][LANG_STR_SIZE];
 //============================================================================
 extern const char language_alarm_Ch[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_alarm_V[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_alarm_A[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_alarm_W[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_alarm_P[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_alarm_Up[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_alarm_Down[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_alarm_ctrl_Open[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_alarm_ctrl_Close[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_alarm_ctrl_OpenCH[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_alarm_ctrl_CloseCH[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_alarm_ctrl_Alarm[LANG_MAX][LANG_STR_SIZE] ;
-
 extern const char language_alarm_Ctrl_ALL[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_alarm_connect_ERROR[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_alarm_Init_Success[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_alarm_NULL_ERROR[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_alarm_phase_lose[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_alarm_phaseA_lose[LANG_MAX][LANG_STR_SIZE] ;
-
 extern const char language_alarm_phaseB_lose[LANG_MAX][LANG_STR_SIZE] ;
-
 extern const char language_alarm_phaseC_lose[LANG_MAX][LANG_STR_SIZE] ;
-
 extern const char language_alarm_RS485_master[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_alarm_RS485_slave[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_alarm_MAC_changed[LANG_MAX][LANG_STR_SIZE];
 
-extern const char language_Role_Super_Admin[LANG_MAX][LANG_STR_SIZE];
-
-extern const char language_Role_Admin[LANG_MAX][LANG_STR_SIZE];
-
-extern const char language_Role_User[LANG_MAX][LANG_STR_SIZE];
-
 extern const char language_alarm_Type_Power[LANG_MAX][LANG_STR_SIZE] ;
-
 extern const char language_alarm_Type_Sensor[LANG_MAX][LANG_STR_SIZE] ;
-
 extern const char language_alarm_Type_Network[LANG_MAX][LANG_STR_SIZE] ;
-
 extern const char language_alarm[LANG_MAX][LANG_STR_SIZE];
+extern const char language_sensor_leak[LANG_MAX][LANG_STR_SIZE];
+
+
+extern const char language_Role_Super_Admin[LANG_MAX][LANG_STR_SIZE];
+extern const char language_Role_Admin[LANG_MAX][LANG_STR_SIZE];
+extern const char language_Role_User[LANG_MAX][LANG_STR_SIZE];
 extern const char language_exceed[LANG_MAX][LANG_STR_SIZE];
 extern const char language_sensor_smoke[LANG_MAX][LANG_STR_SIZE];
 extern const char language_sensor_access[LANG_MAX][LANG_STR_SIZE];
-
 extern const char* language_sensor_name[LANG_MAX][20];
-
 extern const char language_Operation_Tips_Success[LANG_MAX][LANG_STR_SIZE] ;
 extern const char language_Operation_Tips_Failure[LANG_MAX][LANG_STR_SIZE] ;
 extern const char language_upgrade_invalid[LANG_MAX][LANG_STR_SIZE] ;
 extern const char language_upgrade_busying[LANG_MAX][LANG_STR_SIZE] ;
 extern const char language_upgrade_error[LANG_MAX][LANG_STR_SIZE] ;
-extern const char language_sensor_leak[LANG_MAX][LANG_STR_SIZE];
 
 #endif

+ 7 - 1
pro/src/language_hashmap.c

@@ -155,7 +155,7 @@ void replace_sequences(char *str, HashTable *table) {
 
 int init_hash_table(void)
 {
-    int r,nMaxSize=4;
+    int r,nMaxSize=LANG_ID_MAX;
     int retry=0,step=100,cnt;
     HashTable *table=NULL;
     GlobalDeviceManager *dm=&__globalDeviceManage;
@@ -270,6 +270,12 @@ retry:
     r = insert_Newhash(table,(const char*)language_alarm_MAC_changed[0], language_alarm_MAC_changed, nMaxSize);
     if(r==HASH_REPEAT) goto repeat; else if(r<HASH_REPEAT) goto failed;
 
+    r = insert_Newhash(table,(const char*)language_alarm[0], language_alarm_MAC_changed, nMaxSize);
+    if(r==HASH_REPEAT) goto repeat; else if(r<HASH_REPEAT) goto failed;
+
+    r = insert_Newhash(table,(const char*)language_sensor_leak[0], language_alarm_MAC_changed, nMaxSize);
+    if(r==HASH_REPEAT) goto repeat; else if(r<HASH_REPEAT) goto failed;
+
     dm->alarmTab = table;
 
     log_d("___ hash table init OK, table size: %d\n", table->size);

+ 0 - 2
pro/src/sqlite_handle.c

@@ -2425,8 +2425,6 @@ int dev_get_sensor_manage_info(sqlite3 *db,int product_id,GlobalSensorManger* _g
         _globalSensorMangerTemp->sensor_interface_type = atoi(pResult[i*ncolumn+3]);
 
         strcpy(_globalSensorMangerTemp->sensor_name,pResult[i*ncolumn+4]);
-        //strcpy(_globalSensorMangerTemp->sensor_name,language_sensor_name[__globalDeviceManage._globalDevInfo.product.language][(int)_globalSensorMangerTemp->sensor_type]);
-
         strcpy(_globalSensorMangerTemp->sensor_port_name,pResult[i*ncolumn+5]);
         if( _globalSensorMangerTemp->sensor_interface_type==1)
         {