NSUKit 1.4.0
板卡级统一交互接口
载入中...
搜索中...
未找到
icd_parser.h
浏览该文件的文档.
1//
2// Created by 56585 on 2023/8/14.
3//
4
5#ifndef NSUKIT_ICD_PARSER_H
6#define NSUKIT_ICD_PARSER_H
7
8
9#include <fstream>
10#include <cassert>
11#include "base_mw.h"
12
13
14namespace nsukit {
15#define ICD_Uint8 "uint8"
16#define ICD_Int8 "int8"
17#define ICD_Uint16 "uint16"
18#define ICD_Int16 "int16"
19#define ICD_Uint32 "uint32"
20#define ICD_Int32 "int32"
21#define ICD_Float "float"
22#define ICD_Double "double"
23#define ICD_File "file"
24#define ICD_FileLength "filelength"
25#define ICD_ParamFlag_File "__file__"
26#define ICD_ParamFlag_FileLength "__filelength__"
27
28
29 static std::map<std::string, int> TypeSizeMap = {
30 {ICD_Uint8, 1},
31 {ICD_Int8, 1},
32 {ICD_Uint16, 2},
33 {ICD_Int16, 2},
34 {ICD_Uint32, 4},
35 {ICD_Int32, 4},
36 {ICD_Float, 4},
37 {ICD_FileLength, 4},
38 {ICD_Double, 8}
39 };
40
41
48 struct CommandPack {
49 char *bytes = nullptr;
52 };
53
55
56 NSU_DLLEXPORT uint32_t GetFileSize(const std::string &file_path);
57
58 NSU_DLLEXPORT bool StringEndWith(const std::string& str, const std::string& tail);
59
60 NSU_DLLEXPORT bool StringStartWith(const std::string& str, const std::string& head);
61
62
63 class JsonWrapper;
64
66 protected:
68 std::string icdPath{};
70 bool checkFeedback = false;
71
72 nsukitStatus_t EnableParam(nsuCSName_t cname, nsuCharBuf_p buf);
73
74 nsukitStatus_t set_param_by_tname(nsuCSParam_t pname, std::string type, nsuCharBuf_p buf);
75
76 public:
77
78 explicit ICDRegMw(I_BaseCmdUItf *itf);
79
80 ~ICDRegMw();
81
82 nsukitStatus_t config(nsuInitParam_t *param) override;
83
84 CommandPack *FmtCommand(const std::string &cmd_name, const std::string &file_path = "");
85
86 uint8_t get_param(nsuCSParam_t &param_name, uint8_t _default = 0) override;
87
88 int8_t get_param(nsuCSParam_t &param_name, int8_t _default = 0) override;
89
90 uint16_t get_param(nsuCSParam_t &param_name, uint16_t _default = 0) override;
91
92 int16_t get_param(nsuCSParam_t &param_name, int16_t _default = 0) override;
93
94 uint32_t get_param(nsuCSParam_t &param_name, uint32_t _default = 0) override;
95
96 int32_t get_param(nsuCSParam_t &param_name, int32_t _default = 0) override;
97
98 double get_param(nsuCSParam_t &param_name, double _default = 0.) override;
99
100 float get_param(nsuCSParam_t &param_name, float _default = 0.) override;
101
102 std::string get_param(nsuCSParam_t &param_name, std::string _default = "") override;
103
104 nsukitStatus_t set_param(nsuCSParam_t &param_name, const uint8_t &value) override;
105
106 nsukitStatus_t set_param(nsuCSParam_t &param_name, const int8_t &value) override;
107
108 nsukitStatus_t set_param(nsuCSParam_t &param_name, const uint16_t &value) override;
109
110 nsukitStatus_t set_param(nsuCSParam_t &param_name, const int16_t &value) override;
111
112 nsukitStatus_t set_param(nsuCSParam_t &param_name, const uint32_t &value) override;
113
114 nsukitStatus_t set_param(nsuCSParam_t &param_name, const int32_t &value) override;
115
116 nsukitStatus_t set_param(nsuCSParam_t &param_name, const double &value) override;
117
118 nsukitStatus_t set_param(nsuCSParam_t &param_name, const float &value) override;
119
120 nsukitStatus_t set_param(nsuCSParam_t &param_name, const std::string &value) override;
121
122 nsukitStatus_t execute(nsuCSName_t cname) override;
123 };
124}
125
126
127#endif //NSUKIT_ICD_PARSER_H
I_BaseCmdUItf * cs_itf
Definition: icd_parser.h:67
JsonWrapper * icd
Definition: icd_parser.h:69
#define ICD_Double
Definition: icd_parser.h:22
#define ICD_Int32
Definition: icd_parser.h:20
#define ICD_Float
Definition: icd_parser.h:21
#define ICD_Int8
Definition: icd_parser.h:16
#define ICD_Uint32
Definition: icd_parser.h:19
#define ICD_FileLength
Definition: icd_parser.h:24
#define ICD_Int16
Definition: icd_parser.h:18
#define ICD_Uint16
Definition: icd_parser.h:17
#define ICD_Uint8
Definition: icd_parser.h:15
static std::map< std::string, int > TypeSizeMap
Definition: icd_parser.h:29
NSU_DLLEXPORT void DeleteCommandPack(CommandPack *pack)
Definition: icd_parser.cpp:488
NSU_DLLEXPORT bool StringEndWith(const std::string &str, const std::string &tail)
Definition: icd_parser.cpp:470
NSU_DLLEXPORT uint32_t GetFileSize(const std::string &file_path)
Definition: icd_parser.cpp:455
NSU_DLLEXPORT bool StringStartWith(const std::string &str, const std::string &head)
Definition: icd_parser.cpp:480
nsuSize_t recvLen
Definition: icd_parser.h:51
nsuSize_t length
Definition: icd_parser.h:50
nsukitStatus_t
Definition: type.h:53
DLLEXTERN typedef size_t nsuSize_t
Definition: type.h:87
#define NSU_DLLEXPORT
Definition: type.h:18
DLLEXTERN typedef std::string nsuCSParam_t
Definition: type.h:91
DLLEXTERN typedef char * nsuCharBuf_p
Definition: type.h:82
DLLEXTERN typedef std::string nsuCSName_t
Definition: type.h:92