Browse Source

update

master
zhaohe 2 years ago
parent
commit
7b6a6be94a
  1. 5
      README.md
  2. 2
      iflytoplinuxsdk
  3. 43
      src/service/iflytop_can_host_device.cpp
  4. 24
      src/service/iflytop_can_host_device.hpp

5
README.md

@ -23,13 +23,16 @@
5. 远程控制功能
必须要完成的功能:
6. 软件升级功能
6. 软件升级功能,frp
7. 程序重启
//补充协议
1. 时间修改
2. getState时,传感器信息的上报,所有受控设备的开关状态
3. 修改密码时,需要传递旧密码。
4. 设置的默认配置信息name错误
5. 排液,加液,液体体积
6. 开关量状态上报,压力传感器状态上报
----------------------------------

2
iflytoplinuxsdk

@ -1 +1 @@
Subproject commit 419371f95936fa7f49389fbc07bac250f21240a9
Subproject commit 4b77d8a85c6627652a1f8933042b1e8d79454e46

43
src/service/iflytop_can_host_device.cpp

@ -1 +1,44 @@
#include "iflytop_can_host_device.hpp"
using namespace std;
using namespace iflytop;
void IflytopCanHostDevice::initialize(string can_if_name, int baudrate, bool enablLoopback) {
// m_iflytopCanProtocolStack.reset(new IflytopCanProtocolStack());
m_can_if_name = can_if_name;
m_baudrate = baudrate;
m_enablLoopback = enablLoopback;
resetSocketCan();
}
void IflytopCanHostDevice::startListen() {}
void IflytopCanHostDevice::processRx(shared_ptr<SocketCanFrame> frame) {
if (!frame) {
return;
}
if (frame->getCanIdentifier() == socketcan::kextFrame && //
frame->getFanFrameType() == socketcan::kdataframe) {
/**
* @brief can消息
*/
} else {
logger->warn("Rx unknown can frame");
}
}
void IflytopCanHostDevice::resetSocketCan() {
auto socketCanConfig = make_shared<SocketCanConfig>();
socketCanConfig->enablLoopback = m_enablLoopback; // 根据 SocketCan::dumpCanDriverInfo() 的输出,确定该标志位是false还是true
socketCanConfig->m_canName = m_can_if_name;
socketCanConfig->m_canBaudrate = m_baudrate;
socketCanConfig->m_canfilters = {};
logger->info("initialize() m_canName:{} {}", socketCanConfig->m_canName, socketCanConfig->m_canBaudrate);
m_socketCan.reset(new SocketCan());
m_socketCan->initialize(socketCanConfig);
m_socketCan->startListen();
m_socketCan->onSocketCanFrame.connect([this](shared_ptr<SocketCanFrame> canframe) { //
processRx(canframe);
});
}

24
src/service/iflytop_can_host_device.hpp

@ -9,11 +9,31 @@
#include <sstream>
#include <string>
#include <vector>
#include "iflytop/core/basic/nlohmann/json.hpp"
#include "iflytop/core/driver/socketcan/socket_can.hpp"
#include "iflytop/core/spdlogfactory/logger.hpp"
#include "zservice_container/zservice_container.hpp"
namespace iflytop {
using namespace std;
class IflytopCanHostDevice {
ENABLE_LOGGER(IflytopCanHostDevice);
shared_ptr<SocketCan> m_socketCan;
string m_can_if_name;
int m_baudrate;
bool m_enablLoopback;
public:
IflytopCanHostDevice(){};
IflytopCanHostDevice(){};
void initialize(string can_if_name, int baudrate, bool enablLoopback);
void startListen();
void processRx(shared_ptr<SocketCanFrame> frame);
private:
void resetSocketCan();
};
} // namespace iflytop
Loading…
Cancel
Save