123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323 |
- #include "dido.h"
- #include "plt.h"
- struct dido_t dido[DIDO_NBR_MAX + 1];
- static int dido_dbcb_0(void *para, int ncolumn, char **columnvalue, char *columnname[])
- {
- int i;
- struct dbcbparam_t *pcbparam = (struct dbcbparam_t *)para;
- struct dido_t *dev = &dido[1];
- 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(dev->szmodel, columnvalue[i]);
- dev->model = plt_devm_str2nbr(dev->szmodel);
- }
- }
- pcbparam->ret = 0;
- log_dbg("%s, --,ret:%d", __func__, pcbparam->ret);
- return 0;
- }
- int dido_get_model()
- {
- return dido[1].model;
- }
- int dido_init()
- {
- int result;
- char *errmsg = NULL;
- sqlite3 *db = NULL;
- char sql[1024];
- struct dbcbparam_t cbparam;
- int ret = 0;
- int model = 0;
- log_dbg("%s, ++", __func__);
- plt_lock_ctndb();
- db = plt_get_ctndb();
- sprintf(sql, "select * from dido");
- cbparam.nrow = 0;
- result = sqlite3_exec(db, sql, dido_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
- {
- model = dido_get_model();
- if (model == DEVM_ZLGMCU_DIDO)
- {
- dido_zlgmcu_init();
- }
- else
- {
- log_dbg("%s, unknown model:%d", __func__, model);
- ret = -4;
- }
- }
- log_dbg("%s, --, ret:%d", __func__, ret);
- return ret;
- }
- // 0 : ok, all device in stat
- int dido_chk_state_all(int stat)
- {
- int model = dido[1].model;
- if (model == DEVM_ZLGMCU_DIDO)
- {
- return dido_zlgmcu_chk_state_all(stat);
- }
- else
- {
- return -1;
- }
- }
- int dido_send_sm_cmd_all(int cmd)
- {
- int model = dido[1].model;
- if (model == DEVM_ZLGMCU_DIDO)
- {
- return dido_zlgmcu_send_sm_cmd_all(cmd);
- }
- else
- {
- return -1;
- }
- }
- int dido_send_sm_cmd(int idx, int cmd)
- {
- int model = dido[1].model;
- if (model == DEVM_ZLGMCU_DIDO)
- {
- return dido_zlgmcu_send_sm_cmd(idx, cmd);
- }
- else
- {
- return -1;
- }
- }
- int dido_get_comm_st(int idx)
- {
- int model = dido[1].model;
- if (model == DEVM_ZLGMCU_DIDO)
- {
- return dido_zlgmcu_get_comm_st(idx);
- }
- else
- {
- return -1;
- }
- }
- int dido_get_nbr()
- {
- int model = dido[1].model;
- if (model == DEVM_ZLGMCU_DIDO)
- {
- return dido_zlgmcu_get_nbr();
- }
- else
- {
- return -1;
- }
- }
- int dido_get_state(int idx)
- {
- int model = dido[1].model;
- if (model == DEVM_ZLGMCU_DIDO)
- {
- return dido_zlgmcu_get_state(idx);
- }
- else
- {
- return -1;
- }
- }
- char *dido_get_model_str(int idx)
- {
- return dido[idx].szmodel;
- }
- int dido_get_tick(int idx)
- {
- int model = dido[1].model;
- if (model == DEVM_ZLGMCU_DIDO)
- {
- return dido_zlgmcu_get_tick(idx);
- }
- else
- {
- return -1;
- }
- }
- int dido_get_tool_data(char *buf)
- {
- int model = dido[1].model;
- int i = 0;
- char temp_buf[2048];
- if (model == DEVM_ZLGMCU_DIDO)
- {
- sprintf(buf, "" REVERSE " DIDO " NONE " model:%s info:%s\n", dido[1].szmodel, dido[1].szinfo);
- for (i = 1; i <= dido_zlgmcu_get_nbr(); i++)
- {
- memset(temp_buf, 0, sizeof(temp_buf));
- dido_zlgmcu_get_tool_data(i, temp_buf);
- strcat(buf, temp_buf);
- }
- return 0;
- }
- else
- {
- return -1;
- }
- }
- int dido_get_tbmqtt_data(char *buf)
- {
- if (dido[1].model == DEVM_ZLGMCU_DIDO)
- {
- dido_zlgmcu_get_tbmqtt_data(1, buf);
- return 0;
- }
- else
- {
- return -1;
- }
- }
- int dido_get_cloud_data(char *buf)
- {
- if (dido[1].model == DEVM_ZLGMCU_DIDO)
- {
- dido_zlgmcu_get_cloud_data(1, buf);
- return 0;
- }
- else
- {
- return -1;
- }
- }
- int dido_fire_confirm(int idx, int iValue)
- {
- int model = dido[1].model;
- if (model == DEVM_ZLGMCU_DIDO)
- {
- for (int i = 1; i <= dido_zlgmcu_get_nbr(); i++)
- {
- if (dido_zlgmcu_get_comm_st(i) != COMMST_NORMAL)
- {
- dido_zlgmcu_fire_confirm(i, iValue);
- }
- }
- return 0;
- }
- return -1;
- }
- int dido_fan_switch(int idx, int iValue)
- {
- int model = dido[1].model;
- if (model == DEVM_ZLGMCU_DIDO)
- {
- for (int i = 1; i <= dido_zlgmcu_get_nbr(); i++)
- {
- if (dido_zlgmcu_get_comm_st(i) != COMMST_NORMAL)
- {
- dido_zlgmcu_fan_switch(i, iValue);
- }
- }
- return 0;
- }
- return -1;
- }
- int dido_sys_alarm(int idx, int iValue)
- {
- int model = dido[1].model;
- if (model == DEVM_ZLGMCU_DIDO)
- {
- for (int i = 1; i <= dido_zlgmcu_get_nbr(); i++)
- {
- if (dido_zlgmcu_get_comm_st(i) != COMMST_NORMAL)
- {
- dido_zlgmcu_sys_alarm(i, iValue);
- }
- }
- return 0;
- }
- return -1;
- }
- int dido_door_opened()
- {
- return 0; // 暂时关闭门磁
- int model = dido[1].model;
- if (model == DEVM_ZLGMCU_DIDO)
- {
- for (int i = 1; i <= dido_zlgmcu_get_nbr(); i++)
- {
- if (dido_zlgmcu_door_opened(i) > 0)
- return 1;
- }
- }
- return 0;
- }
- int dido_get_modbus_data(int idx,unsigned short* data)
- {
- int model = dido[1].model;
- if (model == DEVM_ZLGMCU_DIDO)
- {
- dido_zlgmcu_get_modbus_data(idx, data);
- }
- else
- {
- data[0] = (unsigned short)model;
- data[1] = (unsigned short)0;
- }
- return 0;
- }
- int dido_fe_spurt()
- {
- int model = dido[1].model;
- if (model == DEVM_ZLGMCU_DIDO)
- {
- for (int i = 1; i <= dido_zlgmcu_get_nbr(); i++)
- {
- if (dido_zlgmcu_fe_spurt(i) != 0)
- return 1;
- }
- }
- return 0;
- }
|