|
|
@ -7,14 +7,77 @@ using namespace iflytop; |
|
|
|
using namespace core; |
|
|
|
using namespace std; |
|
|
|
|
|
|
|
#define BIND
|
|
|
|
|
|
|
|
void MainControlService::initialize() { |
|
|
|
GET_TO_SERVICE(m_zconfig); |
|
|
|
localVirtualCanSlaveInitialize(); |
|
|
|
iflytopCanProtocolControler.reset(new IflytopCanProtocolControler()); |
|
|
|
iflytopCanProtocolControler->initialize(m_zconfig->get_iflytopSubDeviceCanIFName(), m_zconfig->get_iflytopSubDeviceCanBitrate(), false); |
|
|
|
iflytopCanProtocolControler->start(); |
|
|
|
m_iflytopCanProtocolControler.reset(new IflytopCanProtocolControler()); |
|
|
|
m_iflytopCanProtocolControler->initialize(m_zconfig->get_iflytopSubDeviceCanIFName(), m_zconfig->get_iflytopSubDeviceCanBitrate(), false); |
|
|
|
m_iflytopCanProtocolControler->start(); |
|
|
|
|
|
|
|
m_restfulServer.reset(new RestfulServer()); |
|
|
|
m_restfulServer->regAPI("/hello_world", RESTFUL_SERVER_BIND(MainControlService::hello_world)); |
|
|
|
m_restfulServer->regAPI("/api1/reaction_config_card_info/read", RESTFUL_SERVER_BIND(MainControlService::reactionConfigCardInfo_read)); |
|
|
|
m_restfulServer->regAPI("/api1/reaction_config_card_info/trigger_once_report", |
|
|
|
RESTFUL_SERVER_BIND(MainControlService::reactionConfigCardInfo_trigger_once_report)); |
|
|
|
m_restfulServer->regAPI("/api1/reaction_config_card_info/read_state", RESTFUL_SERVER_BIND(MainControlService::reactionConfigCardInfo_read_state)); |
|
|
|
m_restfulServer->start(20000, 20001, "0.0.0.0"); |
|
|
|
|
|
|
|
m_reaction_config_card.reset(new M24LR64E()); |
|
|
|
m_reaction_config_card->initialize("/dev/i2c-1"); |
|
|
|
m_reaction_config_card->startAutoDetect(); |
|
|
|
m_reaction_config_card->onConnected.connect([this](bool connected) { |
|
|
|
if (connected) { |
|
|
|
logger->info("reaction_config_card connected"); |
|
|
|
|
|
|
|
} else { |
|
|
|
logger->info("reaction_config_card disconnected"); |
|
|
|
} |
|
|
|
}); |
|
|
|
}; |
|
|
|
|
|
|
|
void MainControlService::localVirtualCanSlaveInitialize() { |
|
|
|
HttpResponsePtr MainControlService::hello_world( //
|
|
|
|
HttpRequestPtr request, shared_ptr<RestfulServer::Context> context, std::shared_ptr<ConnectionState>) { |
|
|
|
return std::make_shared<HttpResponse>(200, "OK", HttpErrorCode::Ok, WebSocketHttpHeaders(), "hello_world"); |
|
|
|
} |
|
|
|
|
|
|
|
/*******************************************************************************
|
|
|
|
* reactionConfigCardInfo * |
|
|
|
*******************************************************************************/ |
|
|
|
void MainControlService::createReactionConfigCardInfoReportAndSend() { |
|
|
|
#if 0
|
|
|
|
M24LR64E::EEPROMContent content; |
|
|
|
bool suc = m_reaction_config_card->readEEPROM(content); |
|
|
|
if (suc) { |
|
|
|
string contentstr = StringUtils().bytesToString((const uint8_t*)content.data, content.size); |
|
|
|
m_restfulServer->reportEvent("readReactionConfigCardInfoReportEvent", "string", contentstr); |
|
|
|
} |
|
|
|
#else
|
|
|
|
m_restfulServer->reportEvent("readReactionConfigCardInfoReportEvent", "string", |
|
|
|
"AB1234AB1234AB1234AB1234AB1234AB1234AB1234AB1234AB1234AB1234AB1234AB1234AB1234AB1234AB1234AB1234AB1234AB1234AB1234AB1234AB1234A" |
|
|
|
"B1234AB1234AB1234AB1234AB1234AB1234AB1234AB1234AB1234AB1234AB1234AB1234AB1234AB1234AB1234AB1234AB1234AB1234"); |
|
|
|
#endif
|
|
|
|
} |
|
|
|
|
|
|
|
HttpResponsePtr MainControlService::reactionConfigCardInfo_read( //
|
|
|
|
HttpRequestPtr, shared_ptr<RestfulServer::Context>, std::shared_ptr<ConnectionState>) { |
|
|
|
json j; |
|
|
|
M24LR64E::EEPROMContent content; |
|
|
|
bool suc = m_reaction_config_card->readEEPROM(content); |
|
|
|
if (suc) { |
|
|
|
string contentstr = StringUtils().bytesToString((const uint8_t*)content.data, content.size); |
|
|
|
j["content"] = contentstr; |
|
|
|
} |
|
|
|
return std::make_shared<HttpResponse>(200, "OK", HttpErrorCode::Ok, WebSocketHttpHeaders(), j.dump()); |
|
|
|
} |
|
|
|
HttpResponsePtr MainControlService::reactionConfigCardInfo_trigger_once_report( //
|
|
|
|
HttpRequestPtr, shared_ptr<RestfulServer::Context>, std::shared_ptr<ConnectionState>) { |
|
|
|
createReactionConfigCardInfoReportAndSend(); |
|
|
|
return std::make_shared<HttpResponse>(200, "OK", HttpErrorCode::Ok, WebSocketHttpHeaders(), ""); |
|
|
|
} |
|
|
|
HttpResponsePtr MainControlService::reactionConfigCardInfo_read_state( //
|
|
|
|
HttpRequestPtr, shared_ptr<RestfulServer::Context>, std::shared_ptr<ConnectionState>) { |
|
|
|
bool online = m_reaction_config_card->isOnline(); |
|
|
|
string onlinestr = online ? "1" : "0"; |
|
|
|
return std::make_shared<HttpResponse>(200, "OK", HttpErrorCode::Ok, WebSocketHttpHeaders(), onlinestr); |
|
|
|
} |