123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828 |
- #include "env.h"
- #include "plt.h"
- struct env_t env[ENV_NBR_MAX + 1];
- static int env_dbcb_0(void *para, int ncolumn, char **columnvalue, char *columnname[])
- {
- int i;
- struct dbcbparam_t *pcbparam = (struct dbcbparam_t *)para;
- struct env_t *dev = &env[1];
- char szmodel_list[128];
- char delims[] = ",";
- char *result = NULL;
- int model;
- pcbparam->nrow++;
- log_dbg("%s, ++,row:%d, col:%d", __func__, pcbparam->nrow, ncolumn);
- for (i = 0; i < ncolumn; i++)
- {
- if (strcmp("model", columnname[i]) == 0)
- {
- strcpy(szmodel_list, columnvalue[i]);
- result = strtok(szmodel_list, delims);
- while (result != NULL)
- {
- dev->model_nbr++;
- model = plt_devm_str2nbr(result);
- if (model != DEVM_INVALID)
- {
- dev->model[dev->model_nbr] = model;
- strcpy(dev->szmodel[dev->model_nbr], result);
- log_dbg("%s, get env model:%s", __func__, result);
- }
- else
- {
- dev->model_nbr--;
- log_dbg("%s, get invalid env model:%s", __func__, result);
- }
- result = strtok(NULL, delims);
- }
- }
- }
- pcbparam->ret = 0;
- log_dbg("%s, --,ret:%d", __func__, pcbparam->ret);
- return 0;
- }
- // int env_get_model()
- //{
- // return env[1].model;
- // }
- int env_get_model_nbr()
- {
- return env[1].model_nbr;
- }
- int env_init()
- {
- int result = 0;
- int ret = 0;
- int model = 0;
- char *errmsg = NULL;
- char sql[1024];
- struct dbcbparam_t cbparam;
- sqlite3 *db = NULL;
- int i;
- log_dbg("%s, ++", __func__);
- plt_lock_ctndb();
- db = plt_get_ctndb();
- sprintf(sql, "select * from env");
- cbparam.nrow = 0;
- result = sqlite3_exec(db, sql, env_dbcb_0, (void *)&cbparam, &errmsg);
- plt_unlock_ctndb();
- if (result != SQLITE_OK)
- {
- log_dbg("%s, result != SQLITE_OK : %d", __func__, result);
- ret = -1;
- }
- else if (cbparam.ret != 0)
- {
- log_dbg("%s, cbparam.ret != 0 : %d", __func__, cbparam.ret);
- ret = -2;
- }
- else if (cbparam.nrow != 1)
- {
- log_dbg("%s, cbparam.nrow != 1 : %d", __func__, cbparam.nrow);
- ret = -3;
- }
- else
- {
- for (i = 1; i <= env_get_model_nbr(); i++)
- {
- model = env[1].model[i];
- if (model == DEVM_RS_WS_N)
- {
- rs_ws_n_init();
- }
- else if (model == DEVM_SGA500E)
- {
- sga500e_init();
- }
- else if (model == DEVM_RH811AD053F)
- {
- rh811ad053f_init();
- }
- else if (model == DEVM_CD1F3300)
- {
- cd1f3300_init();
- }
- else
- {
- log_dbg("%s, unknown model:%d", __func__, model);
- ret = -4;
- }
- }
- }
- log_dbg("%s--, ret:%d", __func__, ret);
- return ret;
- }
- // 0 : ok
- int env_chk_state_all(int model, int stat)
- {
- // return 0;
- if (model == DEVM_RS_WS_N)
- {
- return rs_ws_n_chk_stat_all(stat);
- }
- else if (model == DEVM_SGA500E)
- {
- return sga500e_chk_stat_all(stat);
- }
- else if (model == DEVM_RH811AD053F)
- {
- return rh811ad053f_chk_stat_all(stat);
- }
- else
- {
- return -1;
- }
- }
- int env_chk_state_model_all(int stat)
- {
- int i = 0;
- int model = 0;
- int ret = 0;
- for (i = 1; i <= env_get_model_nbr(); i++)
- {
- model = env[1].model[i];
- if ((model == DEVM_RS_WS_N && rs_ws_n_chk_stat_all(stat) == 0) ||
- (model == DEVM_SGA500E && sga500e_chk_stat_all(stat) == 0) ||
- (model == DEVM_RH811AD053F && rh811ad053f_chk_stat_all(stat) == 0) ||
- (model == DEVM_CD1F3300 && cd1f3300_chk_stat_all(stat) == 0))
- {
- ret = 0;
- }
- else
- {
- ret = -1;
- break;
- }
- }
- /// log_dbg("%s, ret:%d", __func__, ret);
- return ret;
- }
- int env_send_sm_cmd_all(int model, int cmd)
- {
- if (model == DEVM_RS_WS_N)
- {
- return rs_ws_n_send_sm_cmd_all(cmd);
- }
- else if (model == DEVM_SGA500E)
- {
- return sga500e_send_sm_cmd_all(cmd);
- }
- else if (model == DEVM_RH811AD053F)
- {
- return rh811ad053f_send_sm_cmd_all(cmd);
- }
- else
- {
- return -1;
- }
- }
- int env_send_sm_cmd_model_all(int cmd)
- {
- int i = 0;
- int model = 0;
- int ret = 0;
- for (i = 1; i <= env_get_model_nbr(); i++)
- {
- model = env[1].model[i];
- if ((model == DEVM_RS_WS_N && rs_ws_n_send_sm_cmd_all(cmd) == 0) ||
- (model == DEVM_SGA500E && sga500e_send_sm_cmd_all(cmd) == 0) ||
- (model == DEVM_RH811AD053F && rh811ad053f_send_sm_cmd_all(cmd) == 0) ||
- (model == DEVM_CD1F3300 && cd1f3300_send_sm_cmd_all(cmd) == 0))
- {
- ret = 0;
- }
- else
- {
- ret = -1;
- break;
- }
- }
- return ret;
- }
- int env_send_sm_cmd(int model, int idx, int cmd)
- {
- if (model == DEVM_RS_WS_N)
- {
- return rs_ws_n_send_sm_cmd(idx, cmd);
- }
- else if (model == DEVM_SGA500E)
- {
- return sga500e_send_sm_cmd(idx, cmd);
- }
- else if (model == DEVM_RH811AD053F)
- {
- return rh811ad053f_send_sm_cmd(idx, cmd);
- }
- else
- {
- return -1;
- }
- }
- int env_get_temp(int model, int idx)
- {
- if (model == DEVM_RS_WS_N)
- {
- return rs_ws_n_get_temp(idx);
- }
- if (model == DEVM_RH811AD053F)
- {
- return rh811ad053f_get_temp(idx);
- }
- else
- {
- return -1;
- }
- }
- int env_get_humi(int model, int idx)
- {
- if (model == DEVM_RS_WS_N)
- {
- return rs_ws_n_get_humi(idx);
- }
- if (model == DEVM_RH811AD053F)
- {
- return rh811ad053f_get_humi(idx);
- }
- else
- {
- return -1;
- }
- }
- double env_get_gas_density(int model, int idx)
- {
- if (model == DEVM_SGA500E)
- {
- return sga500e_get_density(idx);
- }
- else
- {
- return -1;
- }
- }
- int env_get_co_density(int model, int idx)
- {
- if (model == DEVM_CD1F3300)
- {
- return cd1f3300_get_co_density(idx);
- }
- else
- {
- return -1;
- }
- }
- int env_get_co_threshold(int model, int idx)
- {
- if (model == DEVM_CD1F3300)
- {
- return cd1f3300_get_co_threshold(idx);
- }
- else
- {
- return -1;
- }
- }
- int env_get_comm_st(int model, int idx)
- {
- if (model == DEVM_CD1F3300)
- {
- return cd1f3300_get_comm_st(idx);
- }
- else if (model == DEVM_RH811AD053F)
- {
- return rh811ad053f_get_comm_st(idx);
- }
- return 0;
- }
- int env_get_nbr(int model)
- {
- if (model == DEVM_RS_WS_N)
- {
- return rs_ws_n_get_nbr();
- }
- else if (model == DEVM_SGA500E)
- {
- return sga500e_get_nbr();
- }
- else
- {
- return -1;
- }
- }
- char *env_get_state_str(int model, int idx)
- {
- if (model == DEVM_RS_WS_N)
- {
- return rs_ws_n_get_state_str(idx);
- }
- else if (model == DEVM_SGA500E)
- {
- return sga500e_get_state_str(idx);
- }
- else
- {
- return NULL;
- }
- }
- int env_get_state(int model, int idx)
- {
- if (model == DEVM_RS_WS_N)
- {
- return rs_ws_n_get_state(idx);
- }
- else if (model == DEVM_SGA500E)
- {
- return sga500e_get_state(idx);
- }
- else
- {
- return -1;
- }
- }
- int env_get_chan_idx(int model, int idx)
- {
- if (model == DEVM_RS_WS_N)
- {
- return rs_ws_n_get_chan_idx(idx);
- }
- else if (model == DEVM_SGA500E)
- {
- return sga500e_get_chan_idx(idx);
- }
- else
- {
- return -1;
- }
- }
- int env_get_tick(int model, int idx)
- {
- if (model == DEVM_RS_WS_N)
- {
- return rs_ws_n_get_tick(idx);
- }
- else if (model == DEVM_SGA500E)
- {
- return sga500e_get_tick(idx);
- }
- else
- {
- return -1;
- }
- }
- char *env_get_comm_state_str(int model, int idx)
- {
- if (model == DEVM_RS_WS_N)
- {
- return rs_ws_n_get_comm_state_str(idx);
- }
- else if (model == DEVM_SGA500E)
- {
- return sga500e_get_comm_state_str(idx);
- }
- else
- {
- return -1;
- }
- }
- int env_get_addr(int model, int idx)
- {
- if (model == DEVM_RS_WS_N)
- {
- return rs_ws_n_get_addr(idx);
- }
- else if (model == DEVM_SGA500E)
- {
- return sga500e_get_addr(idx);
- }
- else
- {
- return -1;
- }
- }
- int env_chk_state(int stat)
- {
- int i = 0;
- int idx = 0;
- int ret = 0;
- for (i = 1; i <= env[1].model_nbr; i++)
- {
- if (env[1].model[i] == DEVM_RS_WS_N)
- {
- for (idx = 1; idx <= rs_ws_n_get_nbr(); idx++)
- {
- if (rs_ws_n_get_state(idx) != stat)
- {
- return -1;
- }
- }
- }
- else if (env[1].model[i] == DEVM_SGA500E)
- {
- for (idx = 1; idx <= sga500e_get_nbr(); idx++)
- {
- if (sga500e_get_state(idx) != stat)
- {
- return -1;
- }
- }
- }
- else if (env[1].model[i] == DEVM_RH811AD053F)
- {
- for (idx = 1; idx <= rh811ad053f_get_nbr(); idx++)
- {
- if (rh811ad053f_get_state(idx) != stat)
- {
- return -1;
- }
- }
- }
- else
- {
- return -1;
- }
- }
- return ret;
- }
- int env_get_tool_data(char *buf)
- {
- int i = 0;
- int idx = 0;
- char temp_buf[2048];
- sprintf(buf, "" REVERSE " ENV " NONE " model_nbr:%d\n", env[1].model_nbr);
- for (i = 1; i <= env[1].model_nbr; i++)
- {
- if (env[1].model[i] == DEVM_RS_WS_N)
- {
- strcat(buf, "rs_ws_n\n");
- for (idx = 1; idx <= rs_ws_n_get_nbr(); idx++)
- {
- memset(temp_buf, 0, sizeof(temp_buf));
- rs_ws_n_get_tool_data(idx, temp_buf);
- strcat(buf, temp_buf);
- }
- }
- else if (env[1].model[i] == DEVM_SGA500E)
- {
- strcat(buf, "sga500e\n");
- for (idx = 1; idx <= sga500e_get_nbr(); idx++)
- {
- memset(temp_buf, 0, sizeof(temp_buf));
- sga500e_get_tool_data(idx, temp_buf);
- strcat(buf, temp_buf);
- }
- }
- else if (env[1].model[i] == DEVM_RH811AD053F)
- {
- strcat(buf, "rh811ad053f\n");
- for (idx = 1; idx <= rh811ad053f_get_nbr(); idx++)
- {
- memset(temp_buf, 0, sizeof(temp_buf));
- rh811ad053f_get_tool_data(idx, temp_buf);
- strcat(buf, temp_buf);
- }
- }
- else if (env[1].model[i] == DEVM_CD1F3300)
- {
- strcat(buf, "cd1f3300\n");
- for (idx = 1; idx <= cd1f3300_get_nbr(); idx++)
- {
- memset(temp_buf, 0, sizeof(temp_buf));
- cd1f3300_get_tool_data(idx, temp_buf);
- strcat(buf, temp_buf);
- }
- }
- else
- {
- return -1;
- }
- }
- return 0;
- }
- int env_get_tbmqtt_data(char *buf)
- {
- int i = 0;
- int idx = 0;
- char temp_buf[2048];
- for (i = 1; i <= env[1].model_nbr; i++)
- {
- if (env[1].model[i] == DEVM_RS_WS_N)
- {
- for (idx = 1; idx <= rs_ws_n_get_nbr(); idx++)
- {
- if (rs_ws_n_get_comm_st(idx) != COMMST_NORMAL)
- {
- if (i == env[1].model_nbr && idx == rs_ws_n_get_nbr() && strlen(buf) > 1)
- {
- buf[strlen(buf) - 1] = 0;
- }
- continue;
- }
- memset(temp_buf, 0, sizeof(temp_buf));
- rs_ws_n_get_tbmqtt_data(idx, temp_buf);
- strcat(buf, temp_buf);
- if (i != env[1].model_nbr || idx != rs_ws_n_get_nbr())
- {
- strcat(buf, ",");
- }
- }
- }
- else if (env[1].model[i] == DEVM_SGA500E)
- {
- for (idx = 1; idx <= sga500e_get_nbr(); idx++)
- {
- if (sga500e_get_comm_st(idx) != COMMST_NORMAL)
- {
- if (i == env[1].model_nbr && idx == sga500e_get_nbr() && strlen(buf) > 1)
- {
- buf[strlen(buf) - 1] = 0;
- }
- continue;
- }
- memset(temp_buf, 0, sizeof(temp_buf));
- sga500e_get_tbmqtt_data(idx, temp_buf);
- strcat(buf, temp_buf);
- if (i != env[1].model_nbr || idx != sga500e_get_nbr())
- {
- strcat(buf, ",");
- }
- }
- }
- else if (env[1].model[i] == DEVM_RH811AD053F)
- {
- for (idx = 1; idx <= rh811ad053f_get_nbr(); idx++)
- {
- if (rh811ad053f_get_comm_st(idx) != COMMST_NORMAL)
- {
- if (i == env[1].model_nbr && idx == rh811ad053f_get_nbr() && strlen(buf) > 1)
- {
- buf[strlen(buf) - 1] = 0;
- }
- continue;
- }
- memset(temp_buf, 0, sizeof(temp_buf));
- rh811ad053f_get_tbmqtt_data(idx, temp_buf);
- strcat(buf, temp_buf);
- if (i != env[1].model_nbr || idx != rh811ad053f_get_nbr())
- {
- strcat(buf, ",");
- }
- }
- }
- else if (env[1].model[i] == DEVM_CD1F3300)
- {
- for (idx = 1; idx <= cd1f3300_get_nbr(); idx++)
- {
- if (cd1f3300_get_comm_st(idx) != COMMST_NORMAL)
- {
- if (i == env[1].model_nbr && idx == cd1f3300_get_nbr() && strlen(buf) > 1)
- {
- buf[strlen(buf) - 1] = 0;
- }
- continue;
- }
- memset(temp_buf, 0, sizeof(temp_buf));
- cd1f3300_get_tbmqtt_data(idx, temp_buf);
- strcat(buf, temp_buf);
- if (i != env[1].model_nbr || idx != cd1f3300_get_nbr())
- {
- strcat(buf, ",");
- }
- }
- }
- else
- {
- if (strlen(buf) > 1)
- buf[strlen(buf) - 1] = 0;
- return -1;
- }
- }
- return 0;
- }
- int env_get_cloud_data(int ctn_idx, char *buf)
- {
- int i = 0;
- int idx = 0;
- char temp_buf[2048];
- for (i = 1; i <= env[1].model_nbr; i++)
- {
- if (env[1].model[i] == DEVM_RS_WS_N)
- {
- for (idx = 1; idx <= rs_ws_n_get_nbr(); idx++)
- {
- if (rs_ws_n_get_comm_st(idx) != COMMST_NORMAL)
- {
- if (i == env[1].model_nbr && idx == rs_ws_n_get_nbr() && strlen(buf) > 1)
- {
- buf[strlen(buf) - 1] = 0;
- }
- continue;
- }
- memset(temp_buf, 0, sizeof(temp_buf));
- rs_ws_n_get_cloud_data(ctn_idx, idx, temp_buf);
- strcat(buf, temp_buf);
- if (i != env[1].model_nbr || idx != rs_ws_n_get_nbr())
- {
- strcat(buf, ",");
- }
- }
- }
- else if (env[1].model[i] == DEVM_SGA500E)
- {
- for (idx = 1; idx <= sga500e_get_nbr(); idx++)
- {
- if (sga500e_get_comm_st(idx) != COMMST_NORMAL)
- {
- if (i == env[1].model_nbr && idx == sga500e_get_nbr() && strlen(buf) > 1)
- {
- buf[strlen(buf) - 1] = 0;
- }
- continue;
- }
- memset(temp_buf, 0, sizeof(temp_buf));
- sga500e_get_cloud_data(ctn_idx, idx, temp_buf);
- strcat(buf, temp_buf);
- if (i != env[1].model_nbr || idx != sga500e_get_nbr())
- {
- strcat(buf, ",");
- }
- }
- }
- else if (env[1].model[i] == DEVM_RH811AD053F)
- {
- for (idx = 1; idx <= rh811ad053f_get_nbr(); idx++)
- {
- if (rh811ad053f_get_comm_st(idx) != COMMST_NORMAL)
- {
- if (i == env[1].model_nbr && idx == rh811ad053f_get_nbr() && strlen(buf) > 1)
- {
- buf[strlen(buf) - 1] = 0;
- }
- continue;
- }
- memset(temp_buf, 0, sizeof(temp_buf));
- rh811ad053f_get_cloud_data(ctn_idx, idx, temp_buf);
- strcat(buf, temp_buf);
- if (i != env[1].model_nbr || idx != rh811ad053f_get_nbr())
- {
- strcat(buf, ",");
- }
- }
- }
- else if (env[1].model[i] == DEVM_CD1F3300)
- {
- for (idx = 1; idx <= cd1f3300_get_nbr(); idx++)
- {
- if (cd1f3300_get_comm_st(idx) != COMMST_NORMAL)
- {
- if (i == env[1].model_nbr && idx == cd1f3300_get_nbr() && strlen(buf) > 1)
- {
- buf[strlen(buf) - 1] = 0;
- }
- continue;
- }
- memset(temp_buf, 0, sizeof(temp_buf));
- cd1f3300_get_cloud_data(ctn_idx, idx, temp_buf);
- strcat(buf, temp_buf);
- if (i != env[1].model_nbr || idx != cd1f3300_get_nbr())
- {
- strcat(buf, ",");
- }
- }
- }
- else
- {
- if (strlen(buf) > 1)
- buf[strlen(buf) - 1] = 0;
- return -1;
- }
- }
- return 0;
- }
- int env_get_bkds_data(int model, char *buf)
- {
- char buf_temp[4096];
- int i = 0;
- if (model == DEVM_RS_WS_N)
- {
- sprintf(buf, "\"th\":[");
- for (i = 1; i <= rs_ws_n_get_nbr(); i++)
- {
- memset(buf_temp, 0, sizeof(buf_temp));
- strcat(buf, "{");
- rs_ws_n_get_bkds_data(i, buf_temp);
- strcat(buf, buf_temp);
- strcat(buf, "}");
- if (i < rs_ws_n_get_nbr(DEVM_RS_WS_N))
- strcat(buf, ",");
- }
- strcat(buf, "]");
- }
- else if (model == DEVM_SGA500E)
- {
- sprintf(buf, "\"gas\":[");
- for (i = 1; i <= sga500e_get_nbr(); i++)
- {
- memset(buf_temp, 0, sizeof(buf_temp));
- strcat(buf, "{");
- sga500e_get_bkds_data(i, buf_temp);
- strcat(buf, buf_temp);
- strcat(buf, "}");
- if (i < sga500e_get_nbr())
- strcat(buf, ",");
- }
- strcat(buf, "]");
- }
- else
- {
- return -1;
- }
- return 0;
- }
- int env_get_init_data(int ctn_idx, char *buf)
- {
- char temp_buf[4096];
- for (int i = 1; i <= env[1].model_nbr; i++)
- {
- if (env[1].model[i] == DEVM_CD1F3300)
- {
- for (int idx = 1; idx <= cd1f3300_get_nbr(); idx++)
- {
- memset(temp_buf, 0, sizeof(temp_buf));
- cd1f3300_get_init_data(ctn_idx, idx, temp_buf);
- strcat(buf, temp_buf);
- if (i != env[1].model_nbr)
- {
- strcat(buf, ",");
- }
- }
- }
- else if (env[1].model[i] == DEVM_RH811AD053F)
- {
- for (int idx = 1; idx <= rh811ad053f_get_nbr(); idx++)
- {
- memset(temp_buf, 0, sizeof(temp_buf));
- rh811ad053f_get_init_data(ctn_idx, idx, temp_buf);
- strcat(buf, temp_buf);
- if (i != env[1].model_nbr || idx != rh811ad053f_get_nbr())
- {
- strcat(buf, ",");
- }
- }
- }
- }
- return 0;
- }
- int evn_get_modbus_data(int model, int idx, unsigned short *data)
- {
- if (model == DEVM_CD1F3300)
- {
- cd1f3300_get_modbus_data(idx, data);
- }
- else if (model == DEVM_RH811AD053F)
- {
- rh811ad053f_get_modbus_data(idx, data);
- }
- else
- {
- data[0] = (unsigned short)model;
- data[1] = (unsigned short)0;
- }
- return 0;
- }
|