add function

This commit is contained in:
lnk
2025-09-02 14:58:19 +08:00
parent 077c3f45a2
commit 0af8d02bb2
10 changed files with 951 additions and 42 deletions

View File

@@ -98,13 +98,22 @@ public:
double CT2; // 电流变比2
qvvr_event qvvrevent; //暂态事件
//定值list
std::list<float> set_values;
};
//终端台账
class terminal_dev
{
public:
std::string guid; //台账更新回复用
std::string guid; //正在进行的guid
int busytype; //业务类型,使用状态机
int isbusy; //业务进行标志
int busytimecount; //业务进行计时
//内部定值list
std::list<float> internal_values;
std::string terminal_id;
std::string terminal_name;
@@ -442,6 +451,19 @@ void to_json(nlohmann::json& j, const DataArrayItem& d);
void to_json(nlohmann::json& j, const MsgObj& m);
void to_json(nlohmann::json& j, const FullObj& f);
/////////////////////////////////////////////////////////////////////云平台下发指令的解析
struct MsgParsed {
int type; // 指令编号
std::string name; // 文件名/目录名
int cldid; // 测点号
int datatype; // 指令细分
int operate; // 操作读写
std::vector<float> dataArray_f; // 定值写入,严格按照顺序
std::vector<uint16_t> dataArray_us; // 内部定值写入,严格按照顺序
bool ok;
};
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////提供给通讯部分调用的函数
std::vector<DeviceInfo> GenerateDeviceInfoFromLedger(const std::vector<terminal_dev>& terminal_devlist);//接口读取台账后,再调用这个将台账拷贝过来
@@ -472,10 +494,47 @@ bool assign_qvvr_file_list(const std::string& id, ushort nCpuNo, const std::vect
//录波文件下载完成通知接口
bool update_qvvr_file_download(const std::string& filename_with_mac, const std::string& terminal_id);
//上送文件列表接口
bool send_file_list(const std::string &dev_id, const std::vector<tag_dir_info> &FileList);
//提取mac
std::string normalize_mac(const std::string& mac);
std::string get_mac_by_devid(const std::string &devid);
//暂态文件超时检测
void check_and_backup_qvvr_files();
//业务超时检查
void check_device_busy_timeout();
//业务响应
void send_reply_to_cloud(int reply_code, const std::string& dev_id, int type);
//查guid
std::string find_guid_index_from_dev_id(const std::string& dev_id);
//
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
extern int g_front_seg_index;
extern std::string FRONT_IP;
extern std::string FRONT_PATH;
extern std::string WEB_FILEUPLOAD;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 响应码枚举
enum class ResponseCode : int {
OK = 200, // 请求成功
ACCEPTED = 201, // 请求被接受,开始处理
PROCESSING = 202, // 请求被接受,但是未处理完
BAD_REQUEST = 400, // 请求失败
UNAUTHORIZED = 401, // 请求未认证/认证错误(不支持的请求)
REJECTED_BUSY = 402, // 请求被拒绝,在处理同类命令
FORBIDDEN = 403, // 请求被拒绝(未知原因)
NOT_FOUND = 404, // 请求的资源不存在
BUSY = 405, // 当前忙,无法响应
TIMEOUT = 406, // 请求超出了等待时间
INTERNAL_ERROR = 500 // 其他错误
};
#endif