Browse Source

update

master
zhaohe 2 years ago
parent
commit
a29d3a37ef
  1. 1
      .project/cmake/deps.cmake
  2. 2
      .project/cmake/host.cmake
  3. 2
      .project/cmake/target.cmake
  4. 2
      dep/zlinuxcomponents
  5. 7
      src/service/host_hardware_device_service.cpp
  6. 47
      src/service/host_hardware_device_service.hpp
  7. 19
      src/service/main_control_service.cpp
  8. 1
      src/service/main_control_service.hpp
  9. 63
      src/test/test_i2c_eeprom.cpp

1
.project/cmake/deps.cmake

@ -12,3 +12,4 @@ include(${CMAKE_SOURCE_DIR}/dep/zlinuxcomponents/aiui_ws/module.cmake)
include(
${CMAKE_SOURCE_DIR}/dep/zlinuxcomponents/iflytop_can_protocol_stack/module.cmake
)
include(${CMAKE_SOURCE_DIR}/dep/zlinuxcomponents/i2c/module.cmake)

2
.project/cmake/host.cmake

@ -16,4 +16,4 @@ zadd_executable_simple(
# src/test/socketcan.cpp
src/service/main_control_service.cpp #
#
)
)

2
.project/cmake/target.cmake

@ -20,3 +20,5 @@ zadd_executable_simple(
# zadd_executable_simple(TARGET test_can.out SRC src/test/test_can.cpp)
zadd_executable_simple(TARGET dump_can_driver_info.out SRC
src/test/dump_can_driver_info.cpp)
zadd_executable_simple(TARGET test_i2c_eeprom.out SRC src/test/test_i2c_eeprom.cpp)

2
dep/zlinuxcomponents

@ -1 +1 @@
Subproject commit 52d35b4005bf9f24d571a850d47fa7926e98c7fa
Subproject commit 30d516c35407b43df206927af3734a42a1abdd10

7
src/service/host_hardware_device_service.cpp

@ -0,0 +1,7 @@
#include "host_hardware_device_service.hpp"
using namespace iflytop;
using namespace core;
HostHardwareDeviceService::HostHardwareDeviceService(){};
void HostHardwareDeviceService::initialize() {}

47
src/service/host_hardware_device_service.hpp

@ -0,0 +1,47 @@
//
// Created by zwsd
//
#pragma once
#include <fstream>
#include <iostream>
#include <list>
#include <map>
#include <memory>
#include <set>
#include <sstream>
#include <string>
#include <vector>
#include "iflytopcpp/core/spdlogfactory/logger.hpp"
#include "iflytopcpp/core/thread/thread.hpp"
//
#include "zlinuxcomponents/iflytop_can_protocol_stack/iflytop_can_protocol_controler.hpp"
#include "zlinuxcomponents/iflytop_can_protocol_stack/iflytop_virtual_can_slave.hpp"
/**
* @brief
*
* service: HostHardwareDeviceService
*
* :
* :
* :
* :
*
*/
namespace iflytop {
using namespace std;
using namespace core;
class HostHardwareDeviceService : public enable_shared_from_this<HostHardwareDeviceService> {
ENABLE_LOGGER(HostHardwareDeviceService);
shared_ptr<IflytopVirtualCanSlave> m_localVirtualCanSlave; // Controler本身也作为一个从机存在
shared_ptr<IflytopCanProtocolControler> m_iflytopCanProtocolControler;
public:
HostHardwareDeviceService();
void initialize();
};
} // namespace iflytop

19
src/service/main_control_service.cpp

@ -13,26 +13,9 @@ void MainControlService::initialize() {
localVirtualCanSlaveInitialize();
iflytopCanProtocolControler.reset(new IflytopCanProtocolControler());
iflytopCanProtocolControler->initialize(m_zconfig->get_pipettingRobotCanIFName(), m_zconfig->get_iflytopSubDeviceCanBitrate(), false);
iflytopCanProtocolControler->addVirtualCanSlave(m_localVirtualCanSlave);
iflytopCanProtocolControler->start();
};
void MainControlService::localVirtualCanSlaveInitialize() {
m_localVirtualCanSlave.reset(new IflytopVirtualCanSlave());
m_localVirtualCanSlave->initialize(LINUX_HARDWARE_ID);
m_localVirtualCanSlave->activeReg(REG_REBOOT_FLAG, icps::kw | icps::kr, 0);
m_localVirtualCanSlave->activeReg(REG_DEVICE_ID, icps::kr, LINUX_HARDWARE_ID);
m_localVirtualCanSlave->activeReg(REG_EXCEPTION_FLAG, icps::kw | icps::kr, 0);
m_localVirtualCanSlave->setOnHostRegisterReadEvent( //
[this](icps::Reg_t& reg, int32_t& value) { //
return icps::kSuccess;
});
m_localVirtualCanSlave->setOnHostRegisterWriteEvent( //
[this](icps::Reg_t& reg, int32_t oldvalue, int32_t& newvalue) { //
return icps::kSuccess;
});
m_localVirtualCanSlave->setOnRegisterValueAutoReportEvent( //
[this](icps::Reg_t& reg, int32_t& value) { //
return;
});
}

1
src/service/main_control_service.hpp

@ -47,7 +47,6 @@ class MainControlService : public enable_shared_from_this<MainControlService> {
shared_ptr<GConfig> m_zconfig;
shared_ptr<IflytopVirtualCanSlave> m_localVirtualCanSlave;
shared_ptr<IflytopCanProtocolControler> iflytopCanProtocolControler;
public:

63
src/test/test_i2c_eeprom.cpp

@ -0,0 +1,63 @@
#include <stdio.h>
#include "zlinuxcomponents/zmainhelper.hpp"
//
#include "iflytopcpp/core/spdlogfactory/logger.hpp"
#include "iflytopcpp/core/thread/thread.hpp"
#include "spdlog/spdlog.h"
//
#include <linux/can.h>
#include <linux/can/raw.h>
#include <net/if.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
#include <unistd.h>
#include "zlinuxcomponents/i2c/i2c_bus.hpp"
#include "zlinuxcomponents/i2c/m24lr64e.hpp"
using namespace iflytop;
using namespace core;
using namespace std;
using namespace clipp;
/***********************************************************************/
/***********************************************************************/
/***********************************************************************/
/***********************************************************************/
class Main {
ENABLE_LOGGER(Main);
unique_ptr<Thread> thread;
shared_ptr<I2CBus> m_i2c_bus = nullptr;
shared_ptr<M24LR64E> m_m24lr64e = nullptr;
public:
Main(/* args */) {}
~Main() {}
void run(int argc, char* argv[]) {
thread.reset(new Thread("main", [&]() { exit(main(argc, argv)); }));
while (true) sleep(1000);
}
void onSIGINT() { exit(0); }
int main(int argCount, char* argValues[]) { //
m_i2c_bus.reset(new I2CBus());
m_m24lr64e.reset(new M24LR64E());
m_i2c_bus->open("/dev/i2c-1");
m_m24lr64e->initialize(m_i2c_bus);
m_m24lr64e->dump_eeprom();
logger->info("dump eeprom done");
return 0;
}
};
MAIN_ENTRY();
// ip link set can0 down
// ip link set can0 type can bitrate 500000
// ip link set can0 up
Loading…
Cancel
Save