#include "plt.h" struct station_t STA; int plt_init_ctndb() { int ret = 0; int rc = 0; char buf[128]; sprintf(buf, "../cfg/ctn.db"); if (access(buf, 0) < 0) { log_dbg("%s, access ctn cfg db fail, path:%s", __func__, buf); ret = -1; } else { rc = sqlite3_open(buf, &STA.cfg_db); if (rc == SQLITE_OK) { pthread_mutex_init(&STA.cfg_db_mutex, NULL); } else { ret = -2; } } log_dbg("%s, ret:%d", __func__, ret); return ret; } sqlite3 *plt_get_ctndb() { return STA.cfg_db; } void plt_lock_ctndb() { pthread_mutex_lock(&STA.cfg_db_mutex); } void plt_unlock_ctndb() { pthread_mutex_unlock(&STA.cfg_db_mutex); } int plt_init_projdb() { int ret = 0; int rc = 0; char buf[128]; sprintf(buf, "../cfg/project.db"); if (access(buf, 0) < 0) { log_dbg("%s, access ctn project db fail, path:%s", __func__, buf); ret = -1; } else { rc = sqlite3_open(buf, &STA.proj_db); if (rc == SQLITE_OK) { pthread_mutex_init(&STA.proj_db_mutex, NULL); } else { ret = -2; } } log_dbg("%s, ret:%d", __func__, ret); return ret; } void plt_lock_projdb() { pthread_mutex_lock(&STA.proj_db_mutex); } void plt_unlock_projdb() { pthread_mutex_unlock(&STA.proj_db_mutex); } sqlite3 *plt_get_projdb() { return STA.proj_db; } int plt_init_devdb() { int ret = 0; int rc = 0; char buf[128]; sprintf(buf, "../cfg/dev.db"); if (access(buf, 0) < 0) { log_dbg("%s, access dev db fail, path:%s", __func__, buf); ret = -1; } else { rc = sqlite3_open(buf, &STA.dev_db); if (rc == SQLITE_OK) { pthread_mutex_init(&STA.dev_db_mutex, NULL); } else { ret = -2; } } log_dbg("%s, ret:%d", __func__, ret); return ret; } void plt_lock_devdb() { pthread_mutex_lock(&STA.dev_db_mutex); } void plt_unlock_devdb() { pthread_mutex_unlock(&STA.dev_db_mutex); } sqlite3 *plt_get_devdb() { return STA.dev_db; } extern int VERSION[3]; static char version_string[256]; int plt_init() { syslog(LOG_INFO, "%s, ++", __func__); int ret = 0; time_t t = VERSION[1]; struct tm *p = localtime(&t); sprintf(version_string, "%07x-%d build time: %s", VERSION[0], VERSION[2], asctime(p)); snow_config_t config = { .interface = NULL, .timestamp_path = "./timestamp.out", .allowable_downtime = 2592000000, }; snow_init(&config); syslog(LOG_INFO, "%s, --, ret:%d", __func__, ret); return ret; } /* int plt_init_stp1() { int ret = 0; syslog(LOG_INFO,"%s, ++",__func__); memset(&STA,0,sizeof(struct station_t)); STA.version[0] = VERSION[0]; STA.version[1] = VERSION[1]; STA.version[2] = VERSION[2]; sprintf(version_string, "%d.%d.%d", VERSION[0], VERSION[1], VERSION[2]); if(log_init() != 0){ ret = -1; }else if( shm_init()!=0 ){ ret = -2; }else if( cfg_db_init()!=0 ){ ret = -3; }else if( ctn_init() != 0){ ret = -4; }else if( pcs_init()!=0 ){ ret = -5; }else if( pack_init()!=0 ){ ret = -6; }else if( meter_init()!=0 ){ ret = -7; }else if( ac_init()!=0 ){ ret = -8; }else if( env_init()!=0 ){ ret = -9; }else if( plc_init()!=0 ){ ret = -10; }else if( ups_init()!=0 ){ ret = -11; } syslog(LOG_INFO,"%s, --, ret:%d",__func__,ret); return ret; } */ int plt_init_stp2() { int ret = 0; log_dbg("%s, ++", __func__); if (chan_init() != 0) { ret = -1; } else if (mqtt_init() != 0) { /* mqtt_init() != 0 */ ret = -1; } else if (mac_init() != 0) { ret = -1; } log_dbg("%s, --, ret:%d", __func__, ret); return ret; } int plt_devm_str2nbr(char *szdev_model) { int devm = DEVM_INVALID; if (strcmp(szdev_model, "cess2000") == 0) { devm = DEVM_CESS2000; } else if (strcmp(szdev_model, "ies1000") == 0) { devm = DEVM_IES1000; } else if (strcmp(szdev_model, "catl280a") == 0) { devm = DEVM_CATL280A; } else if (strcmp(szdev_model, "dtsd1352") == 0) { devm = DEVM_DTSD1352; } else if (strcmp(szdev_model, "dlt645") == 0) { devm = DEVM_DLT645; } else if (strcmp(szdev_model, "simatic_s7") == 0) { devm = DEVM_SIMATIC_S7; } else if (strcmp(szdev_model, "mc90hdnc1a") == 0) { devm = DEVM_MC90HDNC1A; } else if (strcmp(szdev_model, "rs_ws_n") == 0) { devm = DEVM_RS_WS_N; } else if (strcmp(szdev_model, "sga500e") == 0) { devm = DEVM_SGA500E; } else if (strcmp(szdev_model, "e3ks") == 0) { devm = DEVM_E3KS; } else if (strcmp(szdev_model, "abb_b23_4") == 0) { devm = DEVM_ABB_B23_4; } else if (strcmp(szdev_model, "kelie") == 0) { devm = DEVM_KL; } else if (strcmp(szdev_model, "it6000") == 0) { devm = DEVM_IT6000; } else if (strcmp(szdev_model, "cell280") == 0) { devm = DEVM_CELL280; } else if (strcmp(szdev_model, "pws1") == 0) { devm = DEVM_PWS1; } else if (strcmp(szdev_model, "n9") == 0) { devm = DEVM_N9; } else if (strcmp(szdev_model, "gt") == 0) { devm = DEVM_GT_BMS; } else if (strcmp(szdev_model, "mc0051gs") == 0) { devm = DEVM_MC0051GS; } else if (strcmp(szdev_model, "rh811ad053f") == 0) { devm = DEVM_RH811AD053F; } else if (strcmp(szdev_model, "sdcs") == 0) { devm = DEVM_SDCS; } else if (strcmp(szdev_model, "cd1f3300") == 0) { devm = DEVM_CD1F3300; } else if (strcmp(szdev_model, "adl200") == 0) { devm = DEVM_ADL200; } else if (strcmp(szdev_model, "zh200") == 0) { devm = DEVM_ZH200; } else if (strcmp(szdev_model, "yf2825") == 0) { devm = DEVM_YF2825; } else if (strcmp(szdev_model, "rs311") == 0) { devm = DEVM_RS311; } else if (strcmp(szdev_model, "cw1310") == 0) { devm = DEVM_CW1310; } else if (strcmp(szdev_model, "zlgmcu") == 0) { devm = DEVM_ZLGMCU_DIDO; } else if (strcmp(szdev_model, "tongfei") == 0) { devm = DEVM_TONGFEI; } else if (strcmp(szdev_model, "evc") == 0) { devm = DEVM_EVC; } else { devm = DEVM_INVALID; } return devm; } char *plt_get_version_string() { return version_string; } static char buf[1024] = {0}; char *plt_get_hostname() { if (strlen(buf) == 0) { if (gethostname(buf, sizeof(buf)) != 0) { strcpy(buf, "unknown"); } } return buf; } int plt_get_devid_prefix(char *buf) { if (buf == NULL) { return -1; } if (sprintf(buf, "%s", plt_get_hostname()) > 0) { return 0; } else { return -1; } }