ctn.c 21 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202
  1. #include "ctn.h"
  2. #include "plt.h"
  3. struct ctn_t ctn[CTN_NBR_MAX + 1];
  4. static int ctn_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 ctn_t *dev = &ctn[1];
  9. pcbparam->nrow++;
  10. log_dbg("%s, ++, row:%d, col:%d", __func__, pcbparam->nrow, ncolumn);
  11. for (i = 0; i < ncolumn; i++)
  12. {
  13. if (strcmp("model", columnname[i]) == 0)
  14. {
  15. strcpy(dev->szmodel, columnvalue[i]);
  16. dev->model = plt_devm_str2nbr(dev->szmodel);
  17. }
  18. else if (strcmp("info", columnname[i]) == 0)
  19. {
  20. strcpy(dev->szinfo, columnvalue[i]);
  21. }
  22. else if (strcmp("idx_in_ess", columnname[i]) == 0)
  23. {
  24. dev->idx_in_ess = atoi(columnvalue[i]);
  25. }
  26. else if (strcmp("sn", columnname[i]) == 0)
  27. {
  28. strcpy(dev->szsn, columnvalue[i]);
  29. }
  30. else if (strcmp("projId", columnname[i]) == 0)
  31. {
  32. strcpy(dev->szprojId, columnvalue[i]);
  33. }
  34. }
  35. pcbparam->ret = 0;
  36. log_dbg("%s, --,ret:%d", __func__, pcbparam->ret);
  37. return 0;
  38. }
  39. int ctn_init()
  40. {
  41. int result;
  42. char *errmsg = NULL;
  43. sqlite3 *db = NULL;
  44. char sql[1024];
  45. struct dbcbparam_t cbparam;
  46. int ret = 0;
  47. struct ctn_t *dev = &ctn[1];
  48. int model = -1;
  49. log_dbg("%s, ++", __func__);
  50. plt_lock_ctndb();
  51. db = plt_get_ctndb();
  52. sprintf(sql, "select * from ctn");
  53. cbparam.nrow = 0;
  54. result = sqlite3_exec(db, sql, ctn_dbcb_0, (void *)&cbparam, &errmsg);
  55. plt_unlock_ctndb();
  56. if (result != SQLITE_OK)
  57. {
  58. log_dbg("%s, result != SQLITE_OK : %d, err : %s", __func__, result, errmsg);
  59. ret = -1;
  60. }
  61. else if (cbparam.ret != 0)
  62. {
  63. log_dbg("%s, cbparam.ret != 0 : %d", __func__, cbparam.ret);
  64. ret = -2;
  65. }
  66. else if (cbparam.nrow != 1)
  67. {
  68. log_dbg("%s, cbparam.nrow != 1 : %d", __func__, cbparam.nrow);
  69. ret = -3;
  70. }
  71. plt_lock_projdb();
  72. db = plt_get_projdb();
  73. sprintf(sql, "select * from ctn");
  74. cbparam.nrow = 0;
  75. result = sqlite3_exec(db, sql, ctn_dbcb_0, (void *)&cbparam, &errmsg);
  76. plt_unlock_projdb();
  77. if (result != SQLITE_OK)
  78. {
  79. log_dbg("%s, result != SQLITE_OK : %d", __func__, result);
  80. ret = -1;
  81. }
  82. else if (cbparam.ret != 0)
  83. {
  84. log_dbg("%s, cbparam.ret != 0 : %d", __func__, cbparam.ret);
  85. ret = -2;
  86. }
  87. else if (cbparam.nrow != 1)
  88. {
  89. log_dbg("%s, cbparam.nrow != 1 : %d", __func__, cbparam.nrow);
  90. ret = -3;
  91. }
  92. else
  93. {
  94. model = ctn[1].model;
  95. memset(ctn[1].szsn, 0, SIZEOF_ARRAY(ctn[1].szsn));
  96. sprintf(ctn[1].szsn, "ctn-%d-%s", ctn[1].idx_in_ess, ctn[1].szprojId);
  97. strncpy(ctn[1].szinfo, ctn[1].szsn, SIZEOF_ARRAY(ctn[1].szinfo));
  98. if (model == DEVM_CESS2000)
  99. {
  100. cess2000_init();
  101. }
  102. else if (model == DEVM_CELL280)
  103. {
  104. cell280_init();
  105. }
  106. else if (model == DEVM_ZH200)
  107. {
  108. zh200_init();
  109. }
  110. else
  111. {
  112. log_dbg("%s, unknown model:%d", __func__, model);
  113. ret = -4;
  114. }
  115. }
  116. log_dbg("%s, --, ret:%d", __func__, ret);
  117. return ret;
  118. }
  119. int ctn_send_cmd(int cmd)
  120. {
  121. int model = ctn[1].model;
  122. if (model == DEVM_CESS2000)
  123. {
  124. return cess2000_send_cmd(1, cmd);
  125. }
  126. else if (model == DEVM_CELL280)
  127. {
  128. return cell280_send_cmd(1, cmd);
  129. }
  130. else if (model == DEVM_ZH200)
  131. {
  132. return zh200_send_cmd(1, cmd);
  133. }
  134. else
  135. {
  136. return -1;
  137. }
  138. }
  139. int ctn_set_aps(int val)
  140. {
  141. int model = ctn[1].model;
  142. if (model == DEVM_CESS2000)
  143. {
  144. return cess2000_set_aps(1, val);
  145. }
  146. else if (model == DEVM_CELL280)
  147. {
  148. return cell280_set_aps(1, val);
  149. }
  150. else if (model == DEVM_ZH200)
  151. {
  152. return zh200_set_aps(1, val);
  153. }
  154. else
  155. {
  156. return -1;
  157. }
  158. }
  159. char *ctn_get_sn()
  160. {
  161. return ctn[1].szsn;
  162. }
  163. char *ctn_get_info()
  164. {
  165. return ctn[1].szinfo;
  166. }
  167. char *ctn_get_model_str()
  168. {
  169. return ctn[1].szmodel;
  170. }
  171. int ctn_get_idx_in_ess()
  172. {
  173. return ctn[1].idx_in_ess;
  174. }
  175. int ctn_get_state()
  176. {
  177. int model = ctn[1].model;
  178. if (model == DEVM_CESS2000)
  179. {
  180. return cess2000_get_state(1);
  181. }
  182. else if (model == DEVM_CELL280)
  183. {
  184. return cell280_get_state(1);
  185. }
  186. else if (model == DEVM_ZH200)
  187. {
  188. return zh200_get_state(1);
  189. }
  190. else
  191. {
  192. return -1;
  193. }
  194. }
  195. char *ctn_get_state_str()
  196. {
  197. int model = ctn[1].model;
  198. if (model == DEVM_CESS2000)
  199. {
  200. return cess2000_get_state_str(1);
  201. }
  202. else if (model == DEVM_CELL280)
  203. {
  204. return cell280_get_state_str(1);
  205. }
  206. else if (model == DEVM_ZH200)
  207. {
  208. return zh200_get_state_str(1);
  209. }
  210. else
  211. {
  212. return -1;
  213. }
  214. }
  215. int ctn_get_tick()
  216. {
  217. int model = ctn[1].model;
  218. if (model == DEVM_CESS2000)
  219. {
  220. return cess2000_get_tick(1);
  221. }
  222. else if (model == DEVM_CELL280)
  223. {
  224. return cell280_get_tick(1);
  225. }
  226. else if (model == DEVM_ZH200)
  227. {
  228. return zh200_get_tick(1);
  229. }
  230. else
  231. {
  232. return -1;
  233. }
  234. }
  235. double ctn_get_tick_ave()
  236. {
  237. int model = ctn[1].model;
  238. if (model == DEVM_CESS2000)
  239. {
  240. return cess2000_get_tick_ave(1);
  241. }
  242. else if (model == DEVM_CELL280)
  243. {
  244. return cell280_get_tick_ave(1);
  245. }
  246. else if (model == DEVM_ZH200)
  247. {
  248. return zh200_get_tick_ave(1);
  249. }
  250. else
  251. {
  252. return -1;
  253. }
  254. }
  255. double ctn_get_tick_cur()
  256. {
  257. int model = ctn[1].model;
  258. if (model == DEVM_CESS2000)
  259. {
  260. return cess2000_get_tick_cur(1);
  261. }
  262. else if (model == DEVM_CELL280)
  263. {
  264. return cell280_get_tick_cur(1);
  265. }
  266. else if (model == DEVM_ZH200)
  267. {
  268. return zh200_get_tick_cur(1);
  269. }
  270. else
  271. {
  272. return -1;
  273. }
  274. }
  275. double ctn_get_tick_max()
  276. {
  277. int model = ctn[1].model;
  278. if (model == DEVM_CESS2000)
  279. {
  280. return cess2000_get_tick_max(1);
  281. }
  282. else if (model == DEVM_CELL280)
  283. {
  284. return cell280_get_tick_max(1);
  285. }
  286. else if (model == DEVM_ZH200)
  287. {
  288. return zh200_get_tick_max(1);
  289. }
  290. else
  291. {
  292. return -1;
  293. }
  294. }
  295. int ctn_get_step()
  296. {
  297. int model = ctn[1].model;
  298. if (model == DEVM_CESS2000)
  299. {
  300. return cess2000_get_step(1);
  301. }
  302. else if (model == DEVM_CELL280)
  303. {
  304. return cell280_get_step(1);
  305. }
  306. else if (model == DEVM_ZH200)
  307. {
  308. return zh200_get_step(1);
  309. }
  310. else
  311. {
  312. return -1;
  313. }
  314. }
  315. int ctn_get_ap()
  316. {
  317. int model = ctn[1].model;
  318. if (model == DEVM_CESS2000)
  319. {
  320. return cess2000_get_ap(1);
  321. }
  322. else if (model == DEVM_CELL280)
  323. {
  324. return cell280_get_ap(1);
  325. }
  326. else if (model == DEVM_ZH200)
  327. {
  328. return zh200_get_ap(1);
  329. }
  330. else
  331. {
  332. return -1;
  333. }
  334. }
  335. int ctn_get_aps()
  336. {
  337. int model = ctn[1].model;
  338. if (model == DEVM_CESS2000)
  339. {
  340. return cess2000_get_aps(1);
  341. }
  342. else if (model == DEVM_CELL280)
  343. {
  344. return cell280_get_aps(1);
  345. }
  346. else if (model == DEVM_ZH200)
  347. {
  348. return zh200_get_aps(1);
  349. }
  350. else
  351. {
  352. return -1;
  353. }
  354. }
  355. int ctn_get_chgable()
  356. {
  357. int model = ctn[1].model;
  358. if (model == DEVM_CESS2000)
  359. {
  360. return cess2000_get_chgable(1);
  361. }
  362. else if (model == DEVM_CELL280)
  363. {
  364. return cell280_get_chgable(1);
  365. }
  366. else if (model == DEVM_ZH200)
  367. {
  368. return zh200_get_chgable(1);
  369. }
  370. else
  371. {
  372. return -1;
  373. }
  374. }
  375. int ctn_get_dhgable()
  376. {
  377. int model = ctn[1].model;
  378. if (model == DEVM_CESS2000)
  379. {
  380. return cess2000_get_dhgable(1);
  381. }
  382. else if (model == DEVM_CELL280)
  383. {
  384. return cell280_get_dhgable(1);
  385. }
  386. else if (model == DEVM_ZH200)
  387. {
  388. return zh200_get_dhgable(1);
  389. }
  390. else
  391. {
  392. return -1;
  393. }
  394. }
  395. int ctn_get_last_aps()
  396. {
  397. int model = ctn[1].model;
  398. if (model == DEVM_CESS2000)
  399. {
  400. return cess2000_get_last_aps(1);
  401. }
  402. else if (model == DEVM_CELL280)
  403. {
  404. return cell280_get_last_aps(1);
  405. }
  406. else if (model == DEVM_ZH200)
  407. {
  408. return zh200_get_last_aps(1);
  409. }
  410. else
  411. {
  412. return -1;
  413. }
  414. }
  415. int ctn_get_norm_cap()
  416. {
  417. int model = ctn[1].model;
  418. if (model == DEVM_CESS2000)
  419. {
  420. return cess2000_get_norm_cap(1);
  421. }
  422. else if (model == DEVM_CELL280)
  423. {
  424. return cell280_get_norm_cap(1);
  425. }
  426. else if (model == DEVM_ZH200)
  427. {
  428. return zh200_get_norm_cap(1);
  429. }
  430. else
  431. {
  432. return -1;
  433. }
  434. }
  435. int ctn_get_norm_pow()
  436. {
  437. int model = ctn[1].model;
  438. if (model == DEVM_CESS2000)
  439. {
  440. return cess2000_get_norm_pow(1);
  441. }
  442. else if (model == DEVM_CELL280)
  443. {
  444. return cell280_get_norm_pow(1);
  445. }
  446. else if (model == DEVM_ZH200)
  447. {
  448. return zh200_get_norm_pow(1);
  449. }
  450. else
  451. {
  452. return -1;
  453. }
  454. }
  455. int ctn_get_min_pow()
  456. {
  457. int model = ctn[1].model;
  458. if (model == DEVM_CESS2000)
  459. {
  460. return cess2000_get_min_pow(1);
  461. }
  462. else if (model == DEVM_CELL280)
  463. {
  464. return cell280_get_min_pow(1);
  465. }
  466. else if (model == DEVM_ZH200)
  467. {
  468. return zh200_get_min_pow(1);
  469. }
  470. else
  471. {
  472. return -1;
  473. }
  474. }
  475. double ctn_get_soc()
  476. {
  477. int model = ctn[1].model;
  478. if (model == DEVM_CESS2000)
  479. {
  480. return cess2000_get_soc(1);
  481. }
  482. else if (model == DEVM_CELL280)
  483. {
  484. return cell280_get_soc(1);
  485. }
  486. else if (model == DEVM_ZH200)
  487. {
  488. return zh200_get_soc(1);
  489. }
  490. else
  491. {
  492. return -1;
  493. }
  494. }
  495. double ctn_get_soh()
  496. {
  497. int model = ctn[1].model;
  498. if (model == DEVM_ZH200)
  499. {
  500. return zh200_get_soh(1);
  501. }
  502. else
  503. {
  504. return -1;
  505. }
  506. }
  507. char *ctn_get_err_str()
  508. {
  509. int model = ctn[1].model;
  510. if (model == DEVM_CESS2000)
  511. {
  512. return cess2000_get_err_str(1);
  513. }
  514. else if (model == DEVM_CELL280)
  515. {
  516. return cell280_get_err_str(1);
  517. }
  518. else if (model == DEVM_ZH200)
  519. {
  520. return zh200_get_err_str(1);
  521. }
  522. else
  523. {
  524. return NULL;
  525. }
  526. }
  527. int ctn_get_err()
  528. {
  529. int model = ctn[1].model;
  530. if (model == DEVM_CESS2000)
  531. {
  532. return cess2000_get_err(1);
  533. }
  534. else if (model == DEVM_CELL280)
  535. {
  536. return cell280_get_err(1);
  537. }
  538. else if (model == DEVM_ZH200)
  539. {
  540. return zh200_get_err(1);
  541. }
  542. else
  543. {
  544. return -1;
  545. }
  546. }
  547. int ctn_enable_bsytikchk()
  548. {
  549. int model = ctn[1].model;
  550. if (model == DEVM_CESS2000)
  551. {
  552. return cess2000_enable_bsytikchk(1);
  553. }
  554. else if (model == DEVM_CELL280)
  555. {
  556. return cell280_enable_bsytikchk(1);
  557. }
  558. else if (model == DEVM_ZH200)
  559. {
  560. return zh200_enable_bsytikchk(1);
  561. }
  562. else
  563. {
  564. return -1;
  565. }
  566. }
  567. int ctn_disable_bsytikchk()
  568. {
  569. int model = ctn[1].model;
  570. if (model == DEVM_CESS2000)
  571. {
  572. return cess2000_disable_bsytikchk(1);
  573. }
  574. else if (model == DEVM_CELL280)
  575. {
  576. return cell280_disable_bsytikchk(1);
  577. }
  578. else if (model == DEVM_ZH200)
  579. {
  580. return zh200_disable_bsytikchk(1);
  581. }
  582. else
  583. {
  584. return -1;
  585. }
  586. }
  587. int ctn_get_bsytikchk_en()
  588. {
  589. int model = ctn[1].model;
  590. if (model == DEVM_CESS2000)
  591. {
  592. return cess2000_get_bsytikchk_en(1);
  593. }
  594. else if (model == DEVM_CELL280)
  595. {
  596. return cell280_get_bsytikchk_en(1);
  597. }
  598. else if (model == DEVM_ZH200)
  599. {
  600. return zh200_get_bsytikchk_en(1);
  601. }
  602. else
  603. {
  604. return -1;
  605. }
  606. }
  607. int ctn_get_bsytikchk_from_host()
  608. {
  609. int model = ctn[1].model;
  610. if (model == DEVM_CESS2000)
  611. {
  612. return cess2000_get_bsytikchk_from_host(1);
  613. }
  614. else if (model == DEVM_CELL280)
  615. {
  616. return cell280_get_bsytikchk_from_host(1);
  617. }
  618. else if (model == DEVM_ZH200)
  619. {
  620. return zh200_get_bsytikchk_from_host(1);
  621. }
  622. else
  623. {
  624. return -1;
  625. }
  626. }
  627. int ctn_get_bsytikchk_timeout()
  628. {
  629. int model = ctn[1].model;
  630. if (model == DEVM_CESS2000)
  631. {
  632. return cess2000_get_bsytikchk_timeout(1);
  633. }
  634. else if (model == DEVM_CELL280)
  635. {
  636. return cell280_get_bsytikchk_timeout(1);
  637. }
  638. else if (model == DEVM_ZH200)
  639. {
  640. return zh200_get_bsytikchk_timeout(1);
  641. }
  642. else
  643. {
  644. return -1;
  645. }
  646. }
  647. int ctn_enable_pcs_bsytiksnd()
  648. {
  649. int model = ctn[1].model;
  650. if (model == DEVM_CESS2000)
  651. {
  652. return cess2000_enable_pcs_bsytiksnd(1);
  653. }
  654. else if (model == DEVM_CELL280)
  655. {
  656. return cell280_enable_pcs_bsytiksnd(1);
  657. }
  658. else if (model == DEVM_ZH200)
  659. {
  660. return zh200_enable_pcs_bsytiksnd(1);
  661. }
  662. else
  663. {
  664. return -1;
  665. }
  666. }
  667. int ctn_enable_bms_bsytiksnd()
  668. {
  669. int model = ctn[1].model;
  670. if (model == DEVM_ZH200)
  671. {
  672. return zh200_enable_bms_bsytiksnd(1);
  673. }
  674. else
  675. {
  676. return -1;
  677. }
  678. }
  679. int ctn_disable_pcs_bsytiksnd()
  680. {
  681. int model = ctn[1].model;
  682. if (model == DEVM_CESS2000)
  683. {
  684. return cess2000_disable_pcs_bsytiksnd(1);
  685. }
  686. else if (model == DEVM_CELL280)
  687. {
  688. return cell280_disable_pcs_bsytiksnd(1);
  689. }
  690. else if (model == DEVM_ZH200)
  691. {
  692. return zh200_disable_pcs_bsytiksnd(1);
  693. }
  694. else
  695. {
  696. return -1;
  697. }
  698. }
  699. int ctn_get_pcs_bsytiksnd_en()
  700. {
  701. int model = ctn[1].model;
  702. if (model == DEVM_CESS2000)
  703. {
  704. return cess2000_get_pcs_bsytiksnd_en(1);
  705. }
  706. else if (model == DEVM_CELL280)
  707. {
  708. return cell280_get_pcs_bsytiksnd_en(1);
  709. }
  710. else if (model == DEVM_ZH200)
  711. {
  712. return zh200_get_pcs_bsytiksnd_en(1);
  713. }
  714. else
  715. {
  716. return -1;
  717. }
  718. }
  719. int ctn_set_socd(double val)
  720. {
  721. int model = ctn[1].model;
  722. if (model == DEVM_CESS2000)
  723. {
  724. return cess2000_set_socd(1, val);
  725. }
  726. else if (model == DEVM_CELL280)
  727. {
  728. return cell280_set_socd(1, val);
  729. }
  730. else if (model == DEVM_ZH200)
  731. {
  732. return zh200_set_socd(1, val);
  733. }
  734. else
  735. {
  736. return -1;
  737. }
  738. }
  739. int ctn_set_socc(double val)
  740. {
  741. int model = ctn[1].model;
  742. if (model == DEVM_CESS2000)
  743. {
  744. return cess2000_set_socc(1, val);
  745. }
  746. else if (model == DEVM_CELL280)
  747. {
  748. return cell280_set_socc(1, val);
  749. }
  750. else if (model == DEVM_ZH200)
  751. {
  752. return zh200_set_socc(1, val);
  753. }
  754. else
  755. {
  756. return -1;
  757. }
  758. }
  759. double ctn_get_socd()
  760. {
  761. int model = ctn[1].model;
  762. if (model == DEVM_CESS2000)
  763. {
  764. return cess2000_get_socd(1);
  765. }
  766. else if (model == DEVM_CELL280)
  767. {
  768. return cell280_get_socd(1);
  769. }
  770. else if (model == DEVM_ZH200)
  771. {
  772. return zh200_get_socd(1);
  773. }
  774. else
  775. {
  776. return 100.0;
  777. }
  778. }
  779. double ctn_get_socc()
  780. {
  781. int model = ctn[1].model;
  782. if (model == DEVM_CESS2000)
  783. {
  784. return cess2000_get_socc(1);
  785. }
  786. else if (model == DEVM_CELL280)
  787. {
  788. return cell280_get_socc(1);
  789. }
  790. else if (model == DEVM_ZH200)
  791. {
  792. return zh200_get_socc(1);
  793. }
  794. else
  795. {
  796. return 0.0;
  797. }
  798. }
  799. int ctn_get_cell_otp()
  800. {
  801. int model = ctn[1].model;
  802. if (model == DEVM_CESS2000)
  803. {
  804. return cess2000_get_cell_otp(1);
  805. }
  806. else if (model == DEVM_CELL280)
  807. {
  808. return cell280_get_cell_otp(1);
  809. }
  810. else if (model == DEVM_ZH200)
  811. {
  812. return zh200_get_cell_otp(1);
  813. }
  814. else
  815. {
  816. return -1;
  817. }
  818. }
  819. int ctn_get_cell_utp()
  820. {
  821. int model = ctn[1].model;
  822. if (model == DEVM_CESS2000)
  823. {
  824. return cess2000_get_cell_utp(1);
  825. }
  826. else if (model == DEVM_CELL280)
  827. {
  828. return cell280_get_cell_utp(1);
  829. }
  830. else if (model == DEVM_ZH200)
  831. {
  832. return zh200_get_cell_utp(1);
  833. }
  834. else
  835. {
  836. return -1;
  837. }
  838. }
  839. int ctn_cfg_save_socd()
  840. {
  841. int model = ctn[1].model;
  842. if (model == DEVM_CESS2000)
  843. {
  844. return cess2000_cfg_save_socd(1);
  845. }
  846. else if (model == DEVM_CELL280)
  847. {
  848. return cell280_cfg_save_socd(1);
  849. }
  850. else if (model == DEVM_ZH200)
  851. {
  852. return zh200_cfg_save_socd(1);
  853. }
  854. else
  855. {
  856. return -1;
  857. }
  858. }
  859. int ctn_cfg_save_socc()
  860. {
  861. int model = ctn[1].model;
  862. if (model == DEVM_CESS2000)
  863. {
  864. return cess2000_cfg_save_socc(1);
  865. }
  866. else if (model == DEVM_CELL280)
  867. {
  868. return cell280_cfg_save_socc(1);
  869. }
  870. else if (model == DEVM_ZH200)
  871. {
  872. return zh200_cfg_save_socc(1);
  873. }
  874. else
  875. {
  876. return -1;
  877. }
  878. }
  879. int ctn_get_tool_data(char *buf)
  880. {
  881. int model = ctn[1].model;
  882. char temp_buf[1024 * 10];
  883. sprintf(buf, "" REVERSE " CTN " NONE " model:%s ", ctn[1].szmodel);
  884. if (model == DEVM_CESS2000)
  885. {
  886. memset(temp_buf, 0, sizeof(temp_buf));
  887. cess2000_get_tool_data(1, temp_buf);
  888. strcat(buf, temp_buf);
  889. return 0;
  890. }
  891. else if (model == DEVM_CELL280)
  892. {
  893. memset(temp_buf, 0, sizeof(temp_buf));
  894. cell280_get_tool_data(1, temp_buf);
  895. strcat(buf, temp_buf);
  896. return 0;
  897. }
  898. else if (model == DEVM_ZH200)
  899. {
  900. memset(temp_buf, 0, sizeof(temp_buf));
  901. zh200_get_tool_data(1, temp_buf);
  902. strcat(buf, temp_buf);
  903. return 0;
  904. }
  905. else
  906. {
  907. return -1;
  908. }
  909. }
  910. int ctn_get_cmd()
  911. {
  912. int model = ctn[1].model;
  913. if (model == DEVM_CESS2000)
  914. {
  915. cess2000_get_cmd(1);
  916. return 0;
  917. }
  918. else if (model == DEVM_CELL280)
  919. {
  920. cell280_get_cmd(1);
  921. return 0;
  922. }
  923. else if (model == DEVM_ZH200)
  924. {
  925. zh200_get_cmd(1);
  926. return 0;
  927. }
  928. else
  929. {
  930. return -1;
  931. }
  932. }
  933. unsigned short ctn_get_cmd_param1()
  934. {
  935. int model = ctn[1].model;
  936. if (model == DEVM_CESS2000)
  937. {
  938. cess2000_get_cmd_param1(1);
  939. return 0;
  940. }
  941. else
  942. {
  943. return -1;
  944. }
  945. }
  946. unsigned short ctn_get_cmd_param2()
  947. {
  948. int model = ctn[1].model;
  949. if (model == DEVM_CESS2000)
  950. {
  951. cess2000_get_cmd_param2(1);
  952. return 0;
  953. }
  954. else
  955. {
  956. return -1;
  957. }
  958. }
  959. unsigned short ctn_get_cmd_param3()
  960. {
  961. int model = ctn[1].model;
  962. if (model == DEVM_CESS2000)
  963. {
  964. cess2000_get_cmd_param3(1);
  965. return 0;
  966. }
  967. else
  968. {
  969. return -1;
  970. }
  971. }
  972. unsigned short ctn_get_cmd_param4()
  973. {
  974. int model = ctn[1].model;
  975. if (model == DEVM_CESS2000)
  976. {
  977. cess2000_get_cmd_param4(1);
  978. return 0;
  979. }
  980. else
  981. {
  982. return -1;
  983. }
  984. }
  985. int ctn_set_cmd(int cmd)
  986. {
  987. int model = ctn[1].model;
  988. if (model == DEVM_CESS2000)
  989. {
  990. cess2000_set_cmd(1, cmd);
  991. return 0;
  992. }
  993. else if (model == DEVM_CELL280)
  994. {
  995. cell280_set_cmd(1, cmd);
  996. return 0;
  997. }
  998. else if (model == DEVM_ZH200)
  999. {
  1000. zh200_set_cmd(1, cmd);
  1001. return 0;
  1002. }
  1003. else
  1004. {
  1005. return -1;
  1006. }
  1007. }
  1008. int ctn_set_cmd_param1(unsigned short param)
  1009. {
  1010. int model = ctn[1].model;
  1011. if (model == DEVM_CESS2000)
  1012. {
  1013. cess2000_set_cmd_param1(1, param);
  1014. return 0;
  1015. }
  1016. else
  1017. {
  1018. return -1;
  1019. }
  1020. }
  1021. int ctn_set_cmd_param2(unsigned short param)
  1022. {
  1023. int model = ctn[1].model;
  1024. if (model == DEVM_CESS2000)
  1025. {
  1026. cess2000_set_cmd_param2(1, param);
  1027. return 0;
  1028. }
  1029. else
  1030. {
  1031. return -1;
  1032. }
  1033. }
  1034. int ctn_set_cmd_param3(unsigned short param)
  1035. {
  1036. int model = ctn[1].model;
  1037. if (model == DEVM_CESS2000)
  1038. {
  1039. cess2000_set_cmd_param3(1, param);
  1040. return 0;
  1041. }
  1042. else
  1043. {
  1044. return -1;
  1045. }
  1046. }
  1047. int ctn_set_cmd_param4(unsigned short param)
  1048. {
  1049. int model = ctn[1].model;
  1050. if (model == DEVM_CESS2000)
  1051. {
  1052. cess2000_set_cmd_param4(1, param);
  1053. return 0;
  1054. }
  1055. else
  1056. {
  1057. return -1;
  1058. }
  1059. }
  1060. int ctn_set_bsytikchk_from_host(unsigned char tick)
  1061. {
  1062. int model = ctn[1].model;
  1063. if (model == DEVM_CESS2000)
  1064. {
  1065. cess2000_set_bsytikchk_from_host(1, tick);
  1066. return 0;
  1067. }
  1068. else if (model == DEVM_CELL280)
  1069. {
  1070. cell280_set_bsytikchk_from_host(1, tick);
  1071. return 0;
  1072. }
  1073. else if (model == DEVM_ZH200)
  1074. {
  1075. zh200_set_bsytikchk_from_host(1, tick);
  1076. return 0;
  1077. }
  1078. else
  1079. {
  1080. return -1;
  1081. }
  1082. }
  1083. char *ctn_get_projid()
  1084. {
  1085. return ctn[1].szprojId;
  1086. }
  1087. char *ctn_get_dev_id()
  1088. {
  1089. int model = ctn[1].model;
  1090. if (model == DEVM_ZH200)
  1091. {
  1092. return zh200_get_devid(1);
  1093. }
  1094. else
  1095. {
  1096. return NULL;
  1097. }
  1098. }
  1099. int ctn_get_init_data(int ctn_idx, char *buf)
  1100. {
  1101. int model = ctn[1].model;
  1102. if (model == DEVM_ZH200)
  1103. {
  1104. return zh200_get_init_data(1, buf);
  1105. }
  1106. else
  1107. {
  1108. return NULL;
  1109. }
  1110. }
  1111. int ctn_get_tbmqtt_data(char *buf)
  1112. {
  1113. int model = ctn[1].model;
  1114. if (model == DEVM_ZH200)
  1115. {
  1116. return zh200_get_tbmqtt_data(1, buf);
  1117. }
  1118. else
  1119. {
  1120. return NULL;
  1121. }
  1122. }
  1123. static char buf[1024] = {0};
  1124. char *ctn_get_hostname()
  1125. {
  1126. if (strlen(buf) == 0)
  1127. {
  1128. if (gethostname(buf, sizeof(buf)) != 0)
  1129. {
  1130. strcpy(buf, "unknown");
  1131. }
  1132. }
  1133. return buf;
  1134. }