23 #include "PrfThermometer.h" 27 #include "PlatformDep.h" 28 #include "rapidjson/rapidjson.h" 29 #include "rapidjson/document.h" 30 #include "rapidjson/istreamwrapper.h" 31 #include "rapidjson/stringbuffer.h" 32 #include "rapidjson/prettywriter.h" 83 int parseBinary(uint8_t* to,
const std::string& from,
int maxlen);
95 std::istringstream istr(from);
96 if (istr >> std::hex >> val) {
100 THROW_EX(std::logic_error,
"Unexpected format: " << PAR(from));
121 void encodeBinary(std::string& to,
const uint8_t* from,
int len);
126 void encodeTimestamp(std::string& to, std::chrono::time_point<std::chrono::system_clock> from);
180 explicit PrfRawJson(
const rapidjson::Value& val);
186 explicit PrfRawJson(
const DpaMessage& dpaMessage);
192 std::string encodeResponse(
const std::string& errStr)
override;
197 std::string encodeAsyncRequest(
const std::string& errStr);
221 std::string encodeResponse(
const std::string& errStr)
override;
247 std::string encodeResponse(
const std::string& errStr)
override;
261 explicit PrfFrcJson(
const rapidjson::Value& val);
267 std::string encodeResponse(
const std::string& errStr)
override;
269 bool m_predefinedFrcCommand =
false;
270 std::string m_userData;
284 explicit PrfIoJson(
const rapidjson::Value& val);
290 std::string encodeResponse(
const std::string& errStr)
override;
308 explicit PrfOsJson(
const rapidjson::Value& val);
314 std::string encodeResponse(
const std::string& errStr)
override;
323 template <
typename L>
346 int ls = L::getLedState();
348 v.SetString((ls ?
"on" :
"off"),
m_doc.GetAllocator());
349 m_doc.AddMember(
"led_state", v,
m_doc.GetAllocator());
379 const std::string&
getName()
const override {
return m_name; }
382 std::string parseCategory(
const std::string& request)
override;
383 std::unique_ptr<DpaTask> parseRequest(
const std::string& request)
override;
384 std::string parseConfig(
const std::string& request)
override;
385 std::string encodeConfig(
const std::string& request,
const std::string& response)
override;
386 std::string getLastError()
const override;
387 std::string encodeAsyncAsDpaRaw(
const DpaMessage& dpaMessage)
const override;
391 std::string m_lastError;
std::string m_msgid
Definition: JsonSerializer.h:152
Parse/encode JSON message holding DpaRaw.
Definition: JsonSerializer.h:175
void encodeTimestamp(std::string &to, std::chrono::time_point< std::chrono::system_clock > from)
Encode timestamp.
Definition: JsonSerializer.cpp:161
std::string m_response_ts
Definition: JsonSerializer.h:156
const std::string & getName() const override
returns instance name
Definition: JsonSerializer.h:379
virtual ~PrfRawJson()
Definition: JsonSerializer.h:187
bool m_has_timeout
Definition: JsonSerializer.h:133
PrfLedJson< PrfLedR > PrfLedRJson
Type for embedded Red LED.
Definition: JsonSerializer.h:362
void parseHexaNum(T &to, const std::string &from)
Parse templated ordinary type T encoded hexa.
Definition: JsonSerializer.h:92
virtual ~PrfOsJson()
Definition: JsonSerializer.h:309
Parse/encode JSON message holding PrfFrcJson.
Definition: JsonSerializer.h:256
bool m_has_confirmation
Definition: JsonSerializer.h:139
virtual ~PrfLedJson()
Definition: JsonSerializer.h:333
std::string m_rdataJ
Definition: JsonSerializer.h:162
bool m_has_ctype
various flags to store presence of members of DPA request to be used in DPA response ...
Definition: JsonSerializer.h:129
int parseBinary(uint8_t *to, const std::string &from, int maxlen)
Parse binary data encoded hexa.
Definition: JsonSerializer.cpp:100
bool m_has_response_ts
Definition: JsonSerializer.h:138
bool m_has_msgid
Definition: JsonSerializer.h:134
bool m_has_cmd
Definition: JsonSerializer.h:141
Parse/encode JSON message holding PrfThermometer.
Definition: JsonSerializer.h:236
bool m_has_confirmation_ts
Definition: JsonSerializer.h:140
bool m_dotNotation
Definition: JsonSerializer.h:167
bool m_has_dpaval
Definition: JsonSerializer.h:144
rapidjson::Document m_doc
Definition: JsonSerializer.h:165
ISerializer interface.
Definition: ISerializer.h:31
bool m_has_hwpid
Definition: JsonSerializer.h:132
bool m_has_response
Definition: JsonSerializer.h:137
virtual ~PrfFrcJson()
Definition: JsonSerializer.h:262
std::string m_confirmationJ
Definition: JsonSerializer.h:157
Implements common features of JsonDpaMessage.
Definition: JsonSerializer.h:41
Object factory to create DpaTask objects from incoming messages.
Definition: JsonSerializer.h:368
virtual ~PrfRawHdpJson()
Definition: JsonSerializer.h:216
Parse/encode JSON message holding PrfLed.
Definition: JsonSerializer.h:324
std::string m_dpavalJ
Definition: JsonSerializer.h:163
Parse/encode JSON message holding PrfIoJson.
Definition: JsonSerializer.h:279
std::string m_confirmation_ts
Definition: JsonSerializer.h:158
PrfLedJson(const rapidjson::Value &val)
parametric constructor
Definition: JsonSerializer.h:329
std::string m_nadr
Definition: JsonSerializer.h:149
static const std::string PRF_NAME
Definition: JsonSerializer.h:211
void addResponseJsonPrio1Params(const DpaTask &dpaTask)
Encode begining members of JSON.
Definition: JsonSerializer.cpp:222
std::string m_request_ts
Definition: JsonSerializer.h:154
bool m_has_request_ts
Definition: JsonSerializer.h:136
std::string m_rcodeJ
Definition: JsonSerializer.h:161
void encodeHexaNum(std::string &to, uint8_t from)
Encode uint_8 to hexa string.
Definition: JsonSerializer.cpp:123
Parse/encode JSON message holding PrfOsJson.
Definition: JsonSerializer.h:303
Definition: JsonSerializer.h:206
std::string m_type
Definition: JsonSerializer.h:148
virtual ~PrfIoJson()
Definition: JsonSerializer.h:285
void encodeBinary(std::string &to, const uint8_t *from, int len)
Encode binary data to hexa string.
Definition: JsonSerializer.cpp:139
bool m_has_rdata
Definition: JsonSerializer.h:143
PrfLedJson< PrfLedG > PrfLedGJson
Type for embedded Green LED.
Definition: JsonSerializer.h:359
std::string encodeResponseJsonFinal(const DpaTask &dpaTask)
Encode final members of JSON and return it.
Definition: JsonSerializer.cpp:278
Create object based on data representation.
Definition: ObjectFactory.h:33
std::string m_cmdJ
Definition: JsonSerializer.h:159
bool m_has_rcode
Definition: JsonSerializer.h:142
std::string m_ctype
various flags to store members of DPA request to be used in DPA response
Definition: JsonSerializer.h:147
virtual ~PrfThermometerJson()
Definition: JsonSerializer.h:242
std::string encodeResponse(const std::string &errStr) override
DpaTask overriden method.
Definition: JsonSerializer.h:339
std::string m_requestJ
Definition: JsonSerializer.h:153
bool m_has_type
Definition: JsonSerializer.h:130
std::string m_hwpid
Definition: JsonSerializer.h:150
int m_timeoutJ
Definition: JsonSerializer.h:151
virtual ~JsonSerializer()
Definition: JsonSerializer.h:376
void addResponseJsonPrio2Params(const DpaTask &dpaTask)
Encode middle members of JSON.
Definition: JsonSerializer.cpp:255
bool m_has_nadr
Definition: JsonSerializer.h:131
std::string m_statusJ
Definition: JsonSerializer.h:160
std::string m_responseJ
Definition: JsonSerializer.h:155
void parseRequestJson(const rapidjson::Value &val, DpaTask &dpaTask)
Parse common items.
Definition: JsonSerializer.cpp:184
bool m_has_request
Definition: JsonSerializer.h:135
PrfCommonJson()
Definition: JsonSerializer.cpp:57