#include #include "zlinuxcomponents/zmainhelper.hpp" // #include "iflytopcpp/core/spdlogfactory/logger.hpp" #include "iflytopcpp/core/thread/thread.hpp" #include "spdlog/spdlog.h" // #include #include #include #include #include #include #include #include #include #include "iflytopcpp/core/driver/socketcan/socket_can.hpp" using namespace iflytop; using namespace core; using namespace std; using namespace clipp; // using sockcanpp::CanDriver; // using sockcanpp::CanId; // using sockcanpp::CanMessage; // using sockcanpp::exceptions::CanException; // using sockcanpp::exceptions::CanInitException; // using sockcanpp::exceptions::InvalidSocketException; /***********************************************************************/ /***********************************************************************/ /***********************************************************************/ /***********************************************************************/ class Main { ENABLE_LOGGER(Main); unique_ptr thread; shared_ptr socketCan; 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[]) { socketCan.reset(new SocketCan()); shared_ptr socketCanConfig = make_shared(); socketCanConfig->m_canName = "can0"; socketCanConfig->m_canBaudrate = 500000; socketCanConfig->enablLoopback = false; socketCan->initialize(socketCanConfig); socketCan->startListen(); socketCan->onSocketCanFrame.connect([this](shared_ptr frame) { logger->info("RX:{}", frame->toString()); }); ThisThread thisThread; int i = 0; while (!thisThread.getExitFlag()) { uint8_t data[8] = {1, 2, 3, 4, 5, 6, 7, 8}; shared_ptr canframe = SocketCanFrame::createExtDataFrame(0x11223344, data, 8); logger->info("TX Frame {}", i); socketCan->sendFrame(canframe, 5); i++; } while (true) { sleep(1000); } return 0; } }; MAIN_ENTRY(); // ip link set can0 down // ip link set can0 type can bitrate 500000 // ip link set can0 up