Files
microser/mms/db_interface.h

229 lines
7.9 KiB
C
Raw Normal View History

2025-01-16 16:17:01 +08:00
/**
* @file: $RCSfile: db_interface.h,v $
* @brief: $IEC 61850 Protocol
*
* @version: $Revision: 1.12 $
* @date: $Date: 2019/01/12 08:44:26 $
* @author: $Author: lizhongming $
* @state: $State: Exp $
*
* @latest: $Id: db_interface.h,v 1.12 2019/01/12 08:44:26 lizhongming Exp $
*
*/
#ifndef DB_INTERFACE_7ew2327hyhy0923r_H
#define DB_INTERFACE_7ew2327hyhy0923r_H
#include "apr_time.h"
#include <stdbool.h>//lnk20241022
#define LOG_IDX (0)
#define RPT_IDX (1)
///////////////////////////////////////////////////////////////////////////////
#define INVALID_DEV_IDX -1
#define STAT_DATA_BASE_NODE_ID 100
#define THREE_SECS_DATA_BASE_NODE_ID 200
#define SOE_COMTRADE_BASE_NODE_ID 300
#define HIS_DATA_BASE_NODE_ID 400
#define NEW_HIS_DATA_BASE_NODE_ID 500
#define RECALL_HIS_DATA_BASE_NODE_ID 600
#define RECALL_ALL_DATA_BASE_NODE_ID 700
#define REPORT_TYPE_STAT 1
#define REPORT_TYPE_REAL 2
#define REPORT_TYPE_SOE 4
#define REPORT_TYPE_EVENT 8
#define SHOULD_DO_NOTHING 0
#define SHOULD_REGISTER 1
#define SHOULD_UNREGISTER 2
///////////////////////////////////////////////////////////////////////////////
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
extern char* OSS_ENDPOINT;
extern char* ACCESS_KEY_ID;
extern char* ACCESS_KEY_SECRET;
extern char* BUCKET_NAME;
extern char* POSTGRES_SCHEMA;
extern char* POSTGRES_TABLEPREFIX;
void GetSM4Code(unsigned char* pSerise,char* pKey,char* output);
void MyGetSM4Code(char* input,unsigned char* szKey,char* output);
void try_start_kafka_thread();
void try_start_mqconsumer_thread();//lnk20241216
//0. json<6F><6E><EFBFBD>ɿ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
int json_block_create_start( char voltage_level[],char monid_char[],int flicker_flag, char temcode[],int line_id);
//1. json<6F><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EABAAF>
int json_block_create_time(char monid_char[], long long Time, int flicker_flag);
//1.5 json<6F><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>flag<61><67><EFBFBD><EFBFBD>
int json_block_create_flag(char monid_char[], int flag, int flicker_flag);
//2. json<6F><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻص<DDBB><D8B5><EFBFBD><EFBFBD><EFBFBD>
int json_block_create_data(char monid_char[], char* mms_str , double v, int flicker_flag);
//3. json<6F><6E><EFBFBD>ɽ<EFBFBD><C9BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int json_block_create_end(char monid_char[], int flicker_flag); //CZY 2023-08-17 <20><><EFBFBD><EFBFBD>
//int json_block_create_end(int MonitorId,int devkind);//CZY 2023-08-17 <20><><EFBFBD><EFBFBD>
//zw 2024-01-31 <20><><EFBFBD><EFBFBD>ģʽ<C4A3>Ż<EFBFBD>
void add_mvl_type_ctrl(char doname[], int ctrl);
int sel_mvl_type_ctrl_flag(char doname[]);
void del_mvl_type_ctrl();
//<2F><><EFBFBD><EFBFBD>ģʽ<C4A3>Ż<EFBFBD> end
#ifndef DB_INTERFACE_H
#define DB_INTERFACE_H
// ǰ<><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD> LD_info_t
typedef struct LD_info_t LD_info_t;
int urcbRealDataHasReceived(int dev_index, LD_info_t* LD_info, long long Time); //lnk20241223
#endif
//void set_log_LineID(int id);
//void set_rpt_LineID(int id);
//void set_log_TimeID(apr_time_t time);
//void set_rpt_TimeID(apr_time_t time);
//void set_log_QualityFlag(int QualityFlag);
//void set_rpt_QualityFlag(int QualityFlag);
int is_rpt_Time_exact_hour() ;
apr_status_t app_get_private_config(const char *myfilename);
void parse_log_switch_ini(unsigned int* error,unsigned int* warn,unsigned int* info);
int parse_device_cfg_json_test();
int parse_line_cfg_pg_test();
int parse_device_cfg_json();
int parse_device_cfg_pg();
int parse_line_cfg_pg();
void init_config();
int init_ping_telnet();
int GetServerIndexFromDB();
int parse_device_cfg();
int parse_line_cfg();
int parse_rpt_log_ini();
int parse_json_cfg();
void clear_all_LD_real_soe_report_shoud_register();
void add_comm_log(char* log_str);
void prcess_monitor_comm_2_json(int monitor_id,int status,long long tm);
void clear_old_comtrade_files();
int process_login_verify();
//////////////////////////////WW 20230819<31><39><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int OTLConnect(); //OTL<54><4C><EFBFBD><EFBFBD>Oracle<6C><65><EFBFBD>ݿ<EFBFBD>
int OTLDisconnect(); //OTL<54>Ͽ<EFBFBD>Oracle<6C><65><EFBFBD>ݿ<EFBFBD>
int OTLState(); //OTL<54><4C><EFBFBD><EFBFBD>Oracle<6C><65><EFBFBD>ݿ<EFBFBD>״̬
int OTLDbconnected();
int write_to_db(const char* sqlstm); //<2F><><EFBFBD>ݿ<EFBFBD>д<EFBFBD><D0B4>
int OTLTestSelect();//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD>ȡ
void TestToken();
void TestBodyPost();//WW <20><><EFBFBD><EFBFBD>qt post
void TestSMSPost();//WW <20><><EFBFBD><EFBFBD>qt post
void TestJson(char* szJson);
void TestOSS();//WW <20><><EFBFBD><EFBFBD>
void PutOSS(char* File_Name, char* data); //zw<7A>޸<EFBFBD> 2023-9-7 <20><><EFBFBD><EFBFBD>oss<73>ļ<EFBFBD>
void GetOSS(char* File_Name, char* savepath); //zw<7A>޸<EFBFBD> 2023-9-7 <20><>ȡoss<73>ļ<EFBFBD>
void DelOSS(char* File_Name);
void delete_object_new(char* File_Name);
void coutTest();//CZY 2023-09-11 test
void TestOBS();//WW 20230921 <20><><EFBFBD>Ի<EFBFBD>Ϊ<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD>
void OBSFile(char* localpath, char* cloudpath,const char* code);
void OBSFile_del(char* cloudpath, const char* code);
void DataHub_Send_Datahub(char* topic, char* data);//datahubͨѶ
void Nacos_GetParam(char* postgres_uid, char* postgres_pwd, char* web_clientid, char* web_clientsecret);//nacos
void Nacos_GetParam_Ptr(const char* code, char** ptr);
void Read_Nacos_Param_Postgres(char** database_ip, char** database_port, char** postgres_database, char** postgres_username, char** postgres_password, char** postgres_schema, char** postgres_dnsname, char** postgres_tableprefix);
void Read_Nacos_Param_Kafka(char** broker_list, char** topic_stat, char** topic_pst, char** topic_plt, char** topic_event, char** topic_alarm, char** topic_sng, char** protocol, char** mechanisms, char** service_name, char** principal, char** domain_name);
void Read_Nacos_Param_Web(char** client_id, char** client_secret, char** token_url, char** device_url, char** grant_type);
void Read_Nacos_Param_Flag(int* file_flag, int* send_flag, int* front_inst, char** front_ip);
void Read_Nacos_Param_Recall(int* recall_len, int* recall_sta, int* recall_daily);
void Read_Nacos_Param_Uds(char** uds_upload_url, char** uds_download_url, char** uds_delete_url);//nacos<6F><73>ȡuds<64><73><EFBFBD><EFBFBD>
int WebAPI_Uds_Upload(char* strUrl, char* loacl_path, char* uuid,char* filename);
void WebAPI_Uds_Download(char* strUrl, char* uuid, char* local_path,char* filename);
int base64_decode(const char* indata, int inlen, char* outdata, long* outlen);
int testbase64();
/////////////////////////////WW end
//////////////////////////////WW 20230822<32><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD>WebSocket<65>߳<EFBFBD>
void try_start_sql_thread(); //<2F><><EFBFBD><EFBFBD>Sqlִ<6C><D6B4><EFBFBD>߳<EFBFBD>
void try_start_socket_thread(); //<2F><><EFBFBD><EFBFBD>Web Socket<65>߳<EFBFBD>
void try_start_ontimer_thread();//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>߳<EFBFBD>s
/////////////////////////////WW end
//lnk20241029<32><39><EFBFBD><EFBFBD>http<74>߳<EFBFBD>////////////////////////////////////////
void try_start_web_http_thread(); //<2F><><EFBFBD><EFBFBD>Webhttp<74>߳<EFBFBD>
void try_start_http_thread(); //<2F><><EFBFBD><EFBFBD>http<74>߳<EFBFBD>
int try_start_mqtest_thread(int argc, char *argv[]); //20241202
//////////////////////////////////////////////////////////////////////
int OTL_Select_xmlModel(); //xmlģ<6C><C4A3><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD>ȡ
void OTL_Select_recall(char* time, char* id);
int OTL_Select_DecideRecall(char* time, char* id);//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
char* getoneday(int num);
void deletechar(char* day);
void CreateRecallXml();
void DeletcRecallXml();
/*lnk10-11*////////////////////////////////////////////////////////////////////////
void rocketmq_test();
void rocketmq_test_300(int mpnum,int front_index);
void curltest();
void SOEFileWeb_test();
void qvvr_test();
void integrity_test();
void comflag_test();
int parse_device_web_test_ext();
int parse_device_web_test_dev();
int parse_line_web_test();
int parse_model_web_test();
int parse_intact_web_test_read();
int parse_device_web_test_front_read();
int parse_device_web_test_front_write();
int parse_device_cfg_web();
//int parse_line_cfg_web();
int parse_model_cfg_web();
void SOEFileWeb(char* localpath,char* cloudpath,char* wavepath);
void OTL_Select_recall_web(char* time, char* id);
int OTL_Select_DecideRecall_web(char* time, char* id);
bool CheckPG_To_Recall_web(long long start, long long end, char* Monitorid);
//////////////////////////////////////////////////////////////////////////////////////
/*int parse_database_delete(const std::vector<std::string>& codes);
int parse_commerror_write(const std::vector<std::string>& codes);
int parse_commstatus_write(const std::vector<std::string>& codes);
int parse_match_write(const std::vector<std::string>& codes);
int parse_dataintegrity_write(const std::vector<std::string>& codes);
int parse_rationality_write(const std::vector<std::string>& codes);*/
#ifdef __cplusplus
}
#endif
#endif //DB_INTERFACE_7ew2327hyhy0923r_H