env.c 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828
  1. #include "env.h"
  2. #include "plt.h"
  3. struct env_t env[ENV_NBR_MAX + 1];
  4. static int env_dbcb_0(void *para, int ncolumn, char **columnvalue, char *columnname[])
  5. {
  6. int i;
  7. struct dbcbparam_t *pcbparam = (struct dbcbparam_t *)para;
  8. struct env_t *dev = &env[1];
  9. char szmodel_list[128];
  10. char delims[] = ",";
  11. char *result = NULL;
  12. int model;
  13. pcbparam->nrow++;
  14. log_dbg("%s, ++,row:%d, col:%d", __func__, pcbparam->nrow, ncolumn);
  15. for (i = 0; i < ncolumn; i++)
  16. {
  17. if (strcmp("model", columnname[i]) == 0)
  18. {
  19. strcpy(szmodel_list, columnvalue[i]);
  20. result = strtok(szmodel_list, delims);
  21. while (result != NULL)
  22. {
  23. dev->model_nbr++;
  24. model = plt_devm_str2nbr(result);
  25. if (model != DEVM_INVALID)
  26. {
  27. dev->model[dev->model_nbr] = model;
  28. strcpy(dev->szmodel[dev->model_nbr], result);
  29. log_dbg("%s, get env model:%s", __func__, result);
  30. }
  31. else
  32. {
  33. dev->model_nbr--;
  34. log_dbg("%s, get invalid env model:%s", __func__, result);
  35. }
  36. result = strtok(NULL, delims);
  37. }
  38. }
  39. }
  40. pcbparam->ret = 0;
  41. log_dbg("%s, --,ret:%d", __func__, pcbparam->ret);
  42. return 0;
  43. }
  44. // int env_get_model()
  45. //{
  46. // return env[1].model;
  47. // }
  48. int env_get_model_nbr()
  49. {
  50. return env[1].model_nbr;
  51. }
  52. int env_init()
  53. {
  54. int result = 0;
  55. int ret = 0;
  56. int model = 0;
  57. char *errmsg = NULL;
  58. char sql[1024];
  59. struct dbcbparam_t cbparam;
  60. sqlite3 *db = NULL;
  61. int i;
  62. log_dbg("%s, ++", __func__);
  63. plt_lock_ctndb();
  64. db = plt_get_ctndb();
  65. sprintf(sql, "select * from env");
  66. cbparam.nrow = 0;
  67. result = sqlite3_exec(db, sql, env_dbcb_0, (void *)&cbparam, &errmsg);
  68. plt_unlock_ctndb();
  69. if (result != SQLITE_OK)
  70. {
  71. log_dbg("%s, result != SQLITE_OK : %d", __func__, result);
  72. ret = -1;
  73. }
  74. else if (cbparam.ret != 0)
  75. {
  76. log_dbg("%s, cbparam.ret != 0 : %d", __func__, cbparam.ret);
  77. ret = -2;
  78. }
  79. else if (cbparam.nrow != 1)
  80. {
  81. log_dbg("%s, cbparam.nrow != 1 : %d", __func__, cbparam.nrow);
  82. ret = -3;
  83. }
  84. else
  85. {
  86. for (i = 1; i <= env_get_model_nbr(); i++)
  87. {
  88. model = env[1].model[i];
  89. if (model == DEVM_RS_WS_N)
  90. {
  91. rs_ws_n_init();
  92. }
  93. else if (model == DEVM_SGA500E)
  94. {
  95. sga500e_init();
  96. }
  97. else if (model == DEVM_RH811AD053F)
  98. {
  99. rh811ad053f_init();
  100. }
  101. else if (model == DEVM_CD1F3300)
  102. {
  103. cd1f3300_init();
  104. }
  105. else
  106. {
  107. log_dbg("%s, unknown model:%d", __func__, model);
  108. ret = -4;
  109. }
  110. }
  111. }
  112. log_dbg("%s--, ret:%d", __func__, ret);
  113. return ret;
  114. }
  115. // 0 : ok
  116. int env_chk_state_all(int model, int stat)
  117. {
  118. // return 0;
  119. if (model == DEVM_RS_WS_N)
  120. {
  121. return rs_ws_n_chk_stat_all(stat);
  122. }
  123. else if (model == DEVM_SGA500E)
  124. {
  125. return sga500e_chk_stat_all(stat);
  126. }
  127. else if (model == DEVM_RH811AD053F)
  128. {
  129. return rh811ad053f_chk_stat_all(stat);
  130. }
  131. else
  132. {
  133. return -1;
  134. }
  135. }
  136. int env_chk_state_model_all(int stat)
  137. {
  138. int i = 0;
  139. int model = 0;
  140. int ret = 0;
  141. for (i = 1; i <= env_get_model_nbr(); i++)
  142. {
  143. model = env[1].model[i];
  144. if ((model == DEVM_RS_WS_N && rs_ws_n_chk_stat_all(stat) == 0) ||
  145. (model == DEVM_SGA500E && sga500e_chk_stat_all(stat) == 0) ||
  146. (model == DEVM_RH811AD053F && rh811ad053f_chk_stat_all(stat) == 0) ||
  147. (model == DEVM_CD1F3300 && cd1f3300_chk_stat_all(stat) == 0))
  148. {
  149. ret = 0;
  150. }
  151. else
  152. {
  153. ret = -1;
  154. break;
  155. }
  156. }
  157. /// log_dbg("%s, ret:%d", __func__, ret);
  158. return ret;
  159. }
  160. int env_send_sm_cmd_all(int model, int cmd)
  161. {
  162. if (model == DEVM_RS_WS_N)
  163. {
  164. return rs_ws_n_send_sm_cmd_all(cmd);
  165. }
  166. else if (model == DEVM_SGA500E)
  167. {
  168. return sga500e_send_sm_cmd_all(cmd);
  169. }
  170. else if (model == DEVM_RH811AD053F)
  171. {
  172. return rh811ad053f_send_sm_cmd_all(cmd);
  173. }
  174. else
  175. {
  176. return -1;
  177. }
  178. }
  179. int env_send_sm_cmd_model_all(int cmd)
  180. {
  181. int i = 0;
  182. int model = 0;
  183. int ret = 0;
  184. for (i = 1; i <= env_get_model_nbr(); i++)
  185. {
  186. model = env[1].model[i];
  187. if ((model == DEVM_RS_WS_N && rs_ws_n_send_sm_cmd_all(cmd) == 0) ||
  188. (model == DEVM_SGA500E && sga500e_send_sm_cmd_all(cmd) == 0) ||
  189. (model == DEVM_RH811AD053F && rh811ad053f_send_sm_cmd_all(cmd) == 0) ||
  190. (model == DEVM_CD1F3300 && cd1f3300_send_sm_cmd_all(cmd) == 0))
  191. {
  192. ret = 0;
  193. }
  194. else
  195. {
  196. ret = -1;
  197. break;
  198. }
  199. }
  200. return ret;
  201. }
  202. int env_send_sm_cmd(int model, int idx, int cmd)
  203. {
  204. if (model == DEVM_RS_WS_N)
  205. {
  206. return rs_ws_n_send_sm_cmd(idx, cmd);
  207. }
  208. else if (model == DEVM_SGA500E)
  209. {
  210. return sga500e_send_sm_cmd(idx, cmd);
  211. }
  212. else if (model == DEVM_RH811AD053F)
  213. {
  214. return rh811ad053f_send_sm_cmd(idx, cmd);
  215. }
  216. else
  217. {
  218. return -1;
  219. }
  220. }
  221. int env_get_temp(int model, int idx)
  222. {
  223. if (model == DEVM_RS_WS_N)
  224. {
  225. return rs_ws_n_get_temp(idx);
  226. }
  227. if (model == DEVM_RH811AD053F)
  228. {
  229. return rh811ad053f_get_temp(idx);
  230. }
  231. else
  232. {
  233. return -1;
  234. }
  235. }
  236. int env_get_humi(int model, int idx)
  237. {
  238. if (model == DEVM_RS_WS_N)
  239. {
  240. return rs_ws_n_get_humi(idx);
  241. }
  242. if (model == DEVM_RH811AD053F)
  243. {
  244. return rh811ad053f_get_humi(idx);
  245. }
  246. else
  247. {
  248. return -1;
  249. }
  250. }
  251. double env_get_gas_density(int model, int idx)
  252. {
  253. if (model == DEVM_SGA500E)
  254. {
  255. return sga500e_get_density(idx);
  256. }
  257. else
  258. {
  259. return -1;
  260. }
  261. }
  262. int env_get_co_density(int model, int idx)
  263. {
  264. if (model == DEVM_CD1F3300)
  265. {
  266. return cd1f3300_get_co_density(idx);
  267. }
  268. else
  269. {
  270. return -1;
  271. }
  272. }
  273. int env_get_co_threshold(int model, int idx)
  274. {
  275. if (model == DEVM_CD1F3300)
  276. {
  277. return cd1f3300_get_co_threshold(idx);
  278. }
  279. else
  280. {
  281. return -1;
  282. }
  283. }
  284. int env_get_comm_st(int model, int idx)
  285. {
  286. if (model == DEVM_CD1F3300)
  287. {
  288. return cd1f3300_get_comm_st(idx);
  289. }
  290. else if (model == DEVM_RH811AD053F)
  291. {
  292. return rh811ad053f_get_comm_st(idx);
  293. }
  294. return 0;
  295. }
  296. int env_get_nbr(int model)
  297. {
  298. if (model == DEVM_RS_WS_N)
  299. {
  300. return rs_ws_n_get_nbr();
  301. }
  302. else if (model == DEVM_SGA500E)
  303. {
  304. return sga500e_get_nbr();
  305. }
  306. else
  307. {
  308. return -1;
  309. }
  310. }
  311. char *env_get_state_str(int model, int idx)
  312. {
  313. if (model == DEVM_RS_WS_N)
  314. {
  315. return rs_ws_n_get_state_str(idx);
  316. }
  317. else if (model == DEVM_SGA500E)
  318. {
  319. return sga500e_get_state_str(idx);
  320. }
  321. else
  322. {
  323. return NULL;
  324. }
  325. }
  326. int env_get_state(int model, int idx)
  327. {
  328. if (model == DEVM_RS_WS_N)
  329. {
  330. return rs_ws_n_get_state(idx);
  331. }
  332. else if (model == DEVM_SGA500E)
  333. {
  334. return sga500e_get_state(idx);
  335. }
  336. else
  337. {
  338. return -1;
  339. }
  340. }
  341. int env_get_chan_idx(int model, int idx)
  342. {
  343. if (model == DEVM_RS_WS_N)
  344. {
  345. return rs_ws_n_get_chan_idx(idx);
  346. }
  347. else if (model == DEVM_SGA500E)
  348. {
  349. return sga500e_get_chan_idx(idx);
  350. }
  351. else
  352. {
  353. return -1;
  354. }
  355. }
  356. int env_get_tick(int model, int idx)
  357. {
  358. if (model == DEVM_RS_WS_N)
  359. {
  360. return rs_ws_n_get_tick(idx);
  361. }
  362. else if (model == DEVM_SGA500E)
  363. {
  364. return sga500e_get_tick(idx);
  365. }
  366. else
  367. {
  368. return -1;
  369. }
  370. }
  371. char *env_get_comm_state_str(int model, int idx)
  372. {
  373. if (model == DEVM_RS_WS_N)
  374. {
  375. return rs_ws_n_get_comm_state_str(idx);
  376. }
  377. else if (model == DEVM_SGA500E)
  378. {
  379. return sga500e_get_comm_state_str(idx);
  380. }
  381. else
  382. {
  383. return -1;
  384. }
  385. }
  386. int env_get_addr(int model, int idx)
  387. {
  388. if (model == DEVM_RS_WS_N)
  389. {
  390. return rs_ws_n_get_addr(idx);
  391. }
  392. else if (model == DEVM_SGA500E)
  393. {
  394. return sga500e_get_addr(idx);
  395. }
  396. else
  397. {
  398. return -1;
  399. }
  400. }
  401. int env_chk_state(int stat)
  402. {
  403. int i = 0;
  404. int idx = 0;
  405. int ret = 0;
  406. for (i = 1; i <= env[1].model_nbr; i++)
  407. {
  408. if (env[1].model[i] == DEVM_RS_WS_N)
  409. {
  410. for (idx = 1; idx <= rs_ws_n_get_nbr(); idx++)
  411. {
  412. if (rs_ws_n_get_state(idx) != stat)
  413. {
  414. return -1;
  415. }
  416. }
  417. }
  418. else if (env[1].model[i] == DEVM_SGA500E)
  419. {
  420. for (idx = 1; idx <= sga500e_get_nbr(); idx++)
  421. {
  422. if (sga500e_get_state(idx) != stat)
  423. {
  424. return -1;
  425. }
  426. }
  427. }
  428. else if (env[1].model[i] == DEVM_RH811AD053F)
  429. {
  430. for (idx = 1; idx <= rh811ad053f_get_nbr(); idx++)
  431. {
  432. if (rh811ad053f_get_state(idx) != stat)
  433. {
  434. return -1;
  435. }
  436. }
  437. }
  438. else
  439. {
  440. return -1;
  441. }
  442. }
  443. return ret;
  444. }
  445. int env_get_tool_data(char *buf)
  446. {
  447. int i = 0;
  448. int idx = 0;
  449. char temp_buf[2048];
  450. sprintf(buf, "" REVERSE " ENV " NONE " model_nbr:%d\n", env[1].model_nbr);
  451. for (i = 1; i <= env[1].model_nbr; i++)
  452. {
  453. if (env[1].model[i] == DEVM_RS_WS_N)
  454. {
  455. strcat(buf, "rs_ws_n\n");
  456. for (idx = 1; idx <= rs_ws_n_get_nbr(); idx++)
  457. {
  458. memset(temp_buf, 0, sizeof(temp_buf));
  459. rs_ws_n_get_tool_data(idx, temp_buf);
  460. strcat(buf, temp_buf);
  461. }
  462. }
  463. else if (env[1].model[i] == DEVM_SGA500E)
  464. {
  465. strcat(buf, "sga500e\n");
  466. for (idx = 1; idx <= sga500e_get_nbr(); idx++)
  467. {
  468. memset(temp_buf, 0, sizeof(temp_buf));
  469. sga500e_get_tool_data(idx, temp_buf);
  470. strcat(buf, temp_buf);
  471. }
  472. }
  473. else if (env[1].model[i] == DEVM_RH811AD053F)
  474. {
  475. strcat(buf, "rh811ad053f\n");
  476. for (idx = 1; idx <= rh811ad053f_get_nbr(); idx++)
  477. {
  478. memset(temp_buf, 0, sizeof(temp_buf));
  479. rh811ad053f_get_tool_data(idx, temp_buf);
  480. strcat(buf, temp_buf);
  481. }
  482. }
  483. else if (env[1].model[i] == DEVM_CD1F3300)
  484. {
  485. strcat(buf, "cd1f3300\n");
  486. for (idx = 1; idx <= cd1f3300_get_nbr(); idx++)
  487. {
  488. memset(temp_buf, 0, sizeof(temp_buf));
  489. cd1f3300_get_tool_data(idx, temp_buf);
  490. strcat(buf, temp_buf);
  491. }
  492. }
  493. else
  494. {
  495. return -1;
  496. }
  497. }
  498. return 0;
  499. }
  500. int env_get_tbmqtt_data(char *buf)
  501. {
  502. int i = 0;
  503. int idx = 0;
  504. char temp_buf[2048];
  505. for (i = 1; i <= env[1].model_nbr; i++)
  506. {
  507. if (env[1].model[i] == DEVM_RS_WS_N)
  508. {
  509. for (idx = 1; idx <= rs_ws_n_get_nbr(); idx++)
  510. {
  511. if (rs_ws_n_get_comm_st(idx) != COMMST_NORMAL)
  512. {
  513. if (i == env[1].model_nbr && idx == rs_ws_n_get_nbr() && strlen(buf) > 1)
  514. {
  515. buf[strlen(buf) - 1] = 0;
  516. }
  517. continue;
  518. }
  519. memset(temp_buf, 0, sizeof(temp_buf));
  520. rs_ws_n_get_tbmqtt_data(idx, temp_buf);
  521. strcat(buf, temp_buf);
  522. if (i != env[1].model_nbr || idx != rs_ws_n_get_nbr())
  523. {
  524. strcat(buf, ",");
  525. }
  526. }
  527. }
  528. else if (env[1].model[i] == DEVM_SGA500E)
  529. {
  530. for (idx = 1; idx <= sga500e_get_nbr(); idx++)
  531. {
  532. if (sga500e_get_comm_st(idx) != COMMST_NORMAL)
  533. {
  534. if (i == env[1].model_nbr && idx == sga500e_get_nbr() && strlen(buf) > 1)
  535. {
  536. buf[strlen(buf) - 1] = 0;
  537. }
  538. continue;
  539. }
  540. memset(temp_buf, 0, sizeof(temp_buf));
  541. sga500e_get_tbmqtt_data(idx, temp_buf);
  542. strcat(buf, temp_buf);
  543. if (i != env[1].model_nbr || idx != sga500e_get_nbr())
  544. {
  545. strcat(buf, ",");
  546. }
  547. }
  548. }
  549. else if (env[1].model[i] == DEVM_RH811AD053F)
  550. {
  551. for (idx = 1; idx <= rh811ad053f_get_nbr(); idx++)
  552. {
  553. if (rh811ad053f_get_comm_st(idx) != COMMST_NORMAL)
  554. {
  555. if (i == env[1].model_nbr && idx == rh811ad053f_get_nbr() && strlen(buf) > 1)
  556. {
  557. buf[strlen(buf) - 1] = 0;
  558. }
  559. continue;
  560. }
  561. memset(temp_buf, 0, sizeof(temp_buf));
  562. rh811ad053f_get_tbmqtt_data(idx, temp_buf);
  563. strcat(buf, temp_buf);
  564. if (i != env[1].model_nbr || idx != rh811ad053f_get_nbr())
  565. {
  566. strcat(buf, ",");
  567. }
  568. }
  569. }
  570. else if (env[1].model[i] == DEVM_CD1F3300)
  571. {
  572. for (idx = 1; idx <= cd1f3300_get_nbr(); idx++)
  573. {
  574. if (cd1f3300_get_comm_st(idx) != COMMST_NORMAL)
  575. {
  576. if (i == env[1].model_nbr && idx == cd1f3300_get_nbr() && strlen(buf) > 1)
  577. {
  578. buf[strlen(buf) - 1] = 0;
  579. }
  580. continue;
  581. }
  582. memset(temp_buf, 0, sizeof(temp_buf));
  583. cd1f3300_get_tbmqtt_data(idx, temp_buf);
  584. strcat(buf, temp_buf);
  585. if (i != env[1].model_nbr || idx != cd1f3300_get_nbr())
  586. {
  587. strcat(buf, ",");
  588. }
  589. }
  590. }
  591. else
  592. {
  593. if (strlen(buf) > 1)
  594. buf[strlen(buf) - 1] = 0;
  595. return -1;
  596. }
  597. }
  598. return 0;
  599. }
  600. int env_get_cloud_data(int ctn_idx, char *buf)
  601. {
  602. int i = 0;
  603. int idx = 0;
  604. char temp_buf[2048];
  605. for (i = 1; i <= env[1].model_nbr; i++)
  606. {
  607. if (env[1].model[i] == DEVM_RS_WS_N)
  608. {
  609. for (idx = 1; idx <= rs_ws_n_get_nbr(); idx++)
  610. {
  611. if (rs_ws_n_get_comm_st(idx) != COMMST_NORMAL)
  612. {
  613. if (i == env[1].model_nbr && idx == rs_ws_n_get_nbr() && strlen(buf) > 1)
  614. {
  615. buf[strlen(buf) - 1] = 0;
  616. }
  617. continue;
  618. }
  619. memset(temp_buf, 0, sizeof(temp_buf));
  620. rs_ws_n_get_cloud_data(ctn_idx, idx, temp_buf);
  621. strcat(buf, temp_buf);
  622. if (i != env[1].model_nbr || idx != rs_ws_n_get_nbr())
  623. {
  624. strcat(buf, ",");
  625. }
  626. }
  627. }
  628. else if (env[1].model[i] == DEVM_SGA500E)
  629. {
  630. for (idx = 1; idx <= sga500e_get_nbr(); idx++)
  631. {
  632. if (sga500e_get_comm_st(idx) != COMMST_NORMAL)
  633. {
  634. if (i == env[1].model_nbr && idx == sga500e_get_nbr() && strlen(buf) > 1)
  635. {
  636. buf[strlen(buf) - 1] = 0;
  637. }
  638. continue;
  639. }
  640. memset(temp_buf, 0, sizeof(temp_buf));
  641. sga500e_get_cloud_data(ctn_idx, idx, temp_buf);
  642. strcat(buf, temp_buf);
  643. if (i != env[1].model_nbr || idx != sga500e_get_nbr())
  644. {
  645. strcat(buf, ",");
  646. }
  647. }
  648. }
  649. else if (env[1].model[i] == DEVM_RH811AD053F)
  650. {
  651. for (idx = 1; idx <= rh811ad053f_get_nbr(); idx++)
  652. {
  653. if (rh811ad053f_get_comm_st(idx) != COMMST_NORMAL)
  654. {
  655. if (i == env[1].model_nbr && idx == rh811ad053f_get_nbr() && strlen(buf) > 1)
  656. {
  657. buf[strlen(buf) - 1] = 0;
  658. }
  659. continue;
  660. }
  661. memset(temp_buf, 0, sizeof(temp_buf));
  662. rh811ad053f_get_cloud_data(ctn_idx, idx, temp_buf);
  663. strcat(buf, temp_buf);
  664. if (i != env[1].model_nbr || idx != rh811ad053f_get_nbr())
  665. {
  666. strcat(buf, ",");
  667. }
  668. }
  669. }
  670. else if (env[1].model[i] == DEVM_CD1F3300)
  671. {
  672. for (idx = 1; idx <= cd1f3300_get_nbr(); idx++)
  673. {
  674. if (cd1f3300_get_comm_st(idx) != COMMST_NORMAL)
  675. {
  676. if (i == env[1].model_nbr && idx == cd1f3300_get_nbr() && strlen(buf) > 1)
  677. {
  678. buf[strlen(buf) - 1] = 0;
  679. }
  680. continue;
  681. }
  682. memset(temp_buf, 0, sizeof(temp_buf));
  683. cd1f3300_get_cloud_data(ctn_idx, idx, temp_buf);
  684. strcat(buf, temp_buf);
  685. if (i != env[1].model_nbr || idx != cd1f3300_get_nbr())
  686. {
  687. strcat(buf, ",");
  688. }
  689. }
  690. }
  691. else
  692. {
  693. if (strlen(buf) > 1)
  694. buf[strlen(buf) - 1] = 0;
  695. return -1;
  696. }
  697. }
  698. return 0;
  699. }
  700. int env_get_bkds_data(int model, char *buf)
  701. {
  702. char buf_temp[4096];
  703. int i = 0;
  704. if (model == DEVM_RS_WS_N)
  705. {
  706. sprintf(buf, "\"th\":[");
  707. for (i = 1; i <= rs_ws_n_get_nbr(); i++)
  708. {
  709. memset(buf_temp, 0, sizeof(buf_temp));
  710. strcat(buf, "{");
  711. rs_ws_n_get_bkds_data(i, buf_temp);
  712. strcat(buf, buf_temp);
  713. strcat(buf, "}");
  714. if (i < rs_ws_n_get_nbr(DEVM_RS_WS_N))
  715. strcat(buf, ",");
  716. }
  717. strcat(buf, "]");
  718. }
  719. else if (model == DEVM_SGA500E)
  720. {
  721. sprintf(buf, "\"gas\":[");
  722. for (i = 1; i <= sga500e_get_nbr(); i++)
  723. {
  724. memset(buf_temp, 0, sizeof(buf_temp));
  725. strcat(buf, "{");
  726. sga500e_get_bkds_data(i, buf_temp);
  727. strcat(buf, buf_temp);
  728. strcat(buf, "}");
  729. if (i < sga500e_get_nbr())
  730. strcat(buf, ",");
  731. }
  732. strcat(buf, "]");
  733. }
  734. else
  735. {
  736. return -1;
  737. }
  738. return 0;
  739. }
  740. int env_get_init_data(int ctn_idx, char *buf)
  741. {
  742. char temp_buf[4096];
  743. for (int i = 1; i <= env[1].model_nbr; i++)
  744. {
  745. if (env[1].model[i] == DEVM_CD1F3300)
  746. {
  747. for (int idx = 1; idx <= cd1f3300_get_nbr(); idx++)
  748. {
  749. memset(temp_buf, 0, sizeof(temp_buf));
  750. cd1f3300_get_init_data(ctn_idx, idx, temp_buf);
  751. strcat(buf, temp_buf);
  752. if (i != env[1].model_nbr)
  753. {
  754. strcat(buf, ",");
  755. }
  756. }
  757. }
  758. else if (env[1].model[i] == DEVM_RH811AD053F)
  759. {
  760. for (int idx = 1; idx <= rh811ad053f_get_nbr(); idx++)
  761. {
  762. memset(temp_buf, 0, sizeof(temp_buf));
  763. rh811ad053f_get_init_data(ctn_idx, idx, temp_buf);
  764. strcat(buf, temp_buf);
  765. if (i != env[1].model_nbr || idx != rh811ad053f_get_nbr())
  766. {
  767. strcat(buf, ",");
  768. }
  769. }
  770. }
  771. }
  772. return 0;
  773. }
  774. int evn_get_modbus_data(int model, int idx, unsigned short *data)
  775. {
  776. if (model == DEVM_CD1F3300)
  777. {
  778. cd1f3300_get_modbus_data(idx, data);
  779. }
  780. else if (model == DEVM_RH811AD053F)
  781. {
  782. rh811ad053f_get_modbus_data(idx, data);
  783. }
  784. else
  785. {
  786. data[0] = (unsigned short)model;
  787. data[1] = (unsigned short)0;
  788. }
  789. return 0;
  790. }