plt.c 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385
  1. #include "plt.h"
  2. struct station_t STA;
  3. int plt_init_ctndb()
  4. {
  5. int ret = 0;
  6. int rc = 0;
  7. char buf[128];
  8. sprintf(buf, "../cfg/ctn.db");
  9. if (access(buf, 0) < 0)
  10. {
  11. log_dbg("%s, access ctn cfg db fail, path:%s", __func__, buf);
  12. ret = -1;
  13. }
  14. else
  15. {
  16. rc = sqlite3_open(buf, &STA.cfg_db);
  17. if (rc == SQLITE_OK)
  18. {
  19. pthread_mutex_init(&STA.cfg_db_mutex, NULL);
  20. }
  21. else
  22. {
  23. ret = -2;
  24. }
  25. }
  26. log_dbg("%s, ret:%d", __func__, ret);
  27. return ret;
  28. }
  29. sqlite3 *plt_get_ctndb()
  30. {
  31. return STA.cfg_db;
  32. }
  33. void plt_lock_ctndb()
  34. {
  35. pthread_mutex_lock(&STA.cfg_db_mutex);
  36. }
  37. void plt_unlock_ctndb()
  38. {
  39. pthread_mutex_unlock(&STA.cfg_db_mutex);
  40. }
  41. int plt_init_projdb()
  42. {
  43. int ret = 0;
  44. int rc = 0;
  45. char buf[128];
  46. sprintf(buf, "../cfg/project.db");
  47. if (access(buf, 0) < 0)
  48. {
  49. log_dbg("%s, access ctn project db fail, path:%s", __func__, buf);
  50. ret = -1;
  51. }
  52. else
  53. {
  54. rc = sqlite3_open(buf, &STA.proj_db);
  55. if (rc == SQLITE_OK)
  56. {
  57. pthread_mutex_init(&STA.proj_db_mutex, NULL);
  58. }
  59. else
  60. {
  61. ret = -2;
  62. }
  63. }
  64. log_dbg("%s, ret:%d", __func__, ret);
  65. return ret;
  66. }
  67. void plt_lock_projdb()
  68. {
  69. pthread_mutex_lock(&STA.proj_db_mutex);
  70. }
  71. void plt_unlock_projdb()
  72. {
  73. pthread_mutex_unlock(&STA.proj_db_mutex);
  74. }
  75. sqlite3 *plt_get_projdb()
  76. {
  77. return STA.proj_db;
  78. }
  79. int plt_init_devdb()
  80. {
  81. int ret = 0;
  82. int rc = 0;
  83. char buf[128];
  84. sprintf(buf, "../cfg/dev.db");
  85. if (access(buf, 0) < 0)
  86. {
  87. log_dbg("%s, access dev db fail, path:%s", __func__, buf);
  88. ret = -1;
  89. }
  90. else
  91. {
  92. rc = sqlite3_open(buf, &STA.dev_db);
  93. if (rc == SQLITE_OK)
  94. {
  95. pthread_mutex_init(&STA.dev_db_mutex, NULL);
  96. }
  97. else
  98. {
  99. ret = -2;
  100. }
  101. }
  102. log_dbg("%s, ret:%d", __func__, ret);
  103. return ret;
  104. }
  105. void plt_lock_devdb()
  106. {
  107. pthread_mutex_lock(&STA.dev_db_mutex);
  108. }
  109. void plt_unlock_devdb()
  110. {
  111. pthread_mutex_unlock(&STA.dev_db_mutex);
  112. }
  113. sqlite3 *plt_get_devdb()
  114. {
  115. return STA.dev_db;
  116. }
  117. extern int VERSION[3];
  118. static char version_string[256];
  119. int plt_init()
  120. {
  121. syslog(LOG_INFO, "%s, ++", __func__);
  122. int ret = 0;
  123. time_t t = VERSION[1];
  124. struct tm *p = localtime(&t);
  125. sprintf(version_string, "%07x-%d build time: %s", VERSION[0], VERSION[2], asctime(p));
  126. snow_config_t config = {
  127. .interface = NULL,
  128. .timestamp_path = "./timestamp.out",
  129. .allowable_downtime = 2592000000,
  130. };
  131. snow_init(&config);
  132. syslog(LOG_INFO, "%s, --, ret:%d", __func__, ret);
  133. return ret;
  134. }
  135. /*
  136. int plt_init_stp1()
  137. {
  138. int ret = 0;
  139. syslog(LOG_INFO,"%s, ++",__func__);
  140. memset(&STA,0,sizeof(struct station_t));
  141. STA.version[0] = VERSION[0];
  142. STA.version[1] = VERSION[1];
  143. STA.version[2] = VERSION[2];
  144. sprintf(version_string, "%d.%d.%d", VERSION[0], VERSION[1], VERSION[2]);
  145. if(log_init() != 0){
  146. ret = -1;
  147. }else if( shm_init()!=0 ){
  148. ret = -2;
  149. }else if( cfg_db_init()!=0 ){
  150. ret = -3;
  151. }else if( ctn_init() != 0){
  152. ret = -4;
  153. }else if( pcs_init()!=0 ){
  154. ret = -5;
  155. }else if( pack_init()!=0 ){
  156. ret = -6;
  157. }else if( meter_init()!=0 ){
  158. ret = -7;
  159. }else if( ac_init()!=0 ){
  160. ret = -8;
  161. }else if( env_init()!=0 ){
  162. ret = -9;
  163. }else if( plc_init()!=0 ){
  164. ret = -10;
  165. }else if( ups_init()!=0 ){
  166. ret = -11;
  167. }
  168. syslog(LOG_INFO,"%s, --, ret:%d",__func__,ret);
  169. return ret;
  170. }
  171. */
  172. int plt_init_stp2()
  173. {
  174. int ret = 0;
  175. log_dbg("%s, ++", __func__);
  176. if (chan_init() != 0)
  177. {
  178. ret = -1;
  179. }
  180. else if (mqtt_init() != 0)
  181. { /* mqtt_init() != 0 */
  182. ret = -1;
  183. }
  184. else if (mac_init() != 0)
  185. {
  186. ret = -1;
  187. }
  188. log_dbg("%s, --, ret:%d", __func__, ret);
  189. return ret;
  190. }
  191. int plt_devm_str2nbr(char *szdev_model)
  192. {
  193. int devm = DEVM_INVALID;
  194. if (strcmp(szdev_model, "cess2000") == 0)
  195. {
  196. devm = DEVM_CESS2000;
  197. }
  198. else if (strcmp(szdev_model, "ies1000") == 0)
  199. {
  200. devm = DEVM_IES1000;
  201. }
  202. else if (strcmp(szdev_model, "catl280a") == 0)
  203. {
  204. devm = DEVM_CATL280A;
  205. }
  206. else if (strcmp(szdev_model, "dtsd1352") == 0)
  207. {
  208. devm = DEVM_DTSD1352;
  209. }
  210. else if (strcmp(szdev_model, "dlt645") == 0)
  211. {
  212. devm = DEVM_DLT645;
  213. }
  214. else if (strcmp(szdev_model, "simatic_s7") == 0)
  215. {
  216. devm = DEVM_SIMATIC_S7;
  217. }
  218. else if (strcmp(szdev_model, "mc90hdnc1a") == 0)
  219. {
  220. devm = DEVM_MC90HDNC1A;
  221. }
  222. else if (strcmp(szdev_model, "rs_ws_n") == 0)
  223. {
  224. devm = DEVM_RS_WS_N;
  225. }
  226. else if (strcmp(szdev_model, "sga500e") == 0)
  227. {
  228. devm = DEVM_SGA500E;
  229. }
  230. else if (strcmp(szdev_model, "e3ks") == 0)
  231. {
  232. devm = DEVM_E3KS;
  233. }
  234. else if (strcmp(szdev_model, "abb_b23_4") == 0)
  235. {
  236. devm = DEVM_ABB_B23_4;
  237. }
  238. else if (strcmp(szdev_model, "kelie") == 0)
  239. {
  240. devm = DEVM_KL;
  241. }
  242. else if (strcmp(szdev_model, "it6000") == 0)
  243. {
  244. devm = DEVM_IT6000;
  245. }
  246. else if (strcmp(szdev_model, "cell280") == 0)
  247. {
  248. devm = DEVM_CELL280;
  249. }
  250. else if (strcmp(szdev_model, "pws1") == 0)
  251. {
  252. devm = DEVM_PWS1;
  253. }
  254. else if (strcmp(szdev_model, "n9") == 0)
  255. {
  256. devm = DEVM_N9;
  257. }
  258. else if (strcmp(szdev_model, "gt") == 0)
  259. {
  260. devm = DEVM_GT_BMS;
  261. }
  262. else if (strcmp(szdev_model, "mc0051gs") == 0)
  263. {
  264. devm = DEVM_MC0051GS;
  265. }
  266. else if (strcmp(szdev_model, "rh811ad053f") == 0)
  267. {
  268. devm = DEVM_RH811AD053F;
  269. }
  270. else if (strcmp(szdev_model, "sdcs") == 0)
  271. {
  272. devm = DEVM_SDCS;
  273. }
  274. else if (strcmp(szdev_model, "cd1f3300") == 0)
  275. {
  276. devm = DEVM_CD1F3300;
  277. }
  278. else if (strcmp(szdev_model, "adl200") == 0)
  279. {
  280. devm = DEVM_ADL200;
  281. }
  282. else if (strcmp(szdev_model, "zh200") == 0)
  283. {
  284. devm = DEVM_ZH200;
  285. }
  286. else if (strcmp(szdev_model, "yf2825") == 0)
  287. {
  288. devm = DEVM_YF2825;
  289. }
  290. else if (strcmp(szdev_model, "rs311") == 0)
  291. {
  292. devm = DEVM_RS311;
  293. }
  294. else if (strcmp(szdev_model, "cw1310") == 0)
  295. {
  296. devm = DEVM_CW1310;
  297. }
  298. else if (strcmp(szdev_model, "zlgmcu") == 0)
  299. {
  300. devm = DEVM_ZLGMCU_DIDO;
  301. }
  302. else if (strcmp(szdev_model, "tongfei") == 0)
  303. {
  304. devm = DEVM_TONGFEI;
  305. }
  306. else if (strcmp(szdev_model, "evc") == 0)
  307. {
  308. devm = DEVM_EVC;
  309. }
  310. else
  311. {
  312. devm = DEVM_INVALID;
  313. }
  314. return devm;
  315. }
  316. char *plt_get_version_string()
  317. {
  318. return version_string;
  319. }
  320. static char buf[1024] = {0};
  321. char *plt_get_hostname()
  322. {
  323. if (strlen(buf) == 0)
  324. {
  325. if (gethostname(buf, sizeof(buf)) != 0)
  326. {
  327. strcpy(buf, "unknown");
  328. }
  329. }
  330. return buf;
  331. }
  332. int plt_get_devid_prefix(char *buf)
  333. {
  334. if (buf == NULL)
  335. {
  336. return -1;
  337. }
  338. if (sprintf(buf, "%s", plt_get_hostname()) > 0)
  339. {
  340. return 0;
  341. }
  342. else
  343. {
  344. return -1;
  345. }
  346. }