ctp3-mon  0.3.0
 All Classes Functions Variables Pages
Ctp3DimInfoFloat.cpp
1 #include "Ctp3DimInfoFloat.h"
2 // #include <time.h>
3 #include <chrono>
4 using namespace std::chrono;
5 
6 Ctp3DimInfoFloat::Ctp3DimInfoFloat(std::string name, std::string group,
7  zsock_t *sub)
8  : DimInfo((name + "/" + group).data(), -1), _group(group), _zmqsub(sub) {
12  _logger = spdlog::get("console");
13 }
18 }
19 
24 
25  unsigned long t =
26  std::chrono::system_clock::now().time_since_epoch() /
27  std::chrono::milliseconds(1);
28  _logger->trace("[{}] service {} val={} time={}", getName(), getSize(),
29  getFloat(), t);
30  if (!_zmqsub) {
31  _logger->error(
32  "Trying to send name={} val={}, but no zmq publisher set !!! ",
33  getName(), getFloat());
34  return;
35  }
36 
37  // sendding mgs to api
38  zmsg_t *msg_out = zmsg_new();
39  zmsg_addstr(msg_out, _group.data());
40  std::string json = "{ \"type\" : \"";
41  json += _group;
42  json += "\",";
43  json += " \"data\" : {";
44  json += "\"name\" : \"";
45  json += getName();
46  json += "\" , \"val\" : ";
47  json += std::to_string(getFloat());
48  json += ", \"time\" : ";
49  json += std::to_string(t);
50  json += " }";
51 
52  // end group
53  json += "}";
54 
55  _logger->info("{} {} ", json, getFloat());
56  zmsg_addstr(msg_out, json.data());
57  zmsg_send(&msg_out, (void *)_zmqsub);
58  zmsg_destroy(&msg_out);
59 }
virtual ~Ctp3DimInfoFloat()
Ctp3DimInfoFloat(std::string name="tpc/MONBUSY", std::string group="monbusy", zsock_t *sub=0)
std::shared_ptr< spdlog::logger > _logger
Pointer to spd logger.
std::string _group
groupname
virtual void infoHandler() final
zsock_t * _zmqsub
Pointer to global zmq publisher.