-
Alejandro Lopez Gestoso authoredAlejandro Lopez Gestoso authored
test_virtual_can_rx.cpp 1.28 KiB
#include "eventserver.h"
#include "threadserver.h"
#include "commexceptions.h"
#include "virtual_can.h"
#include <stdio.h>
#include <unistd.h>
#include <string>
#include <iostream>
#include <linux/can/raw.h>
#include <linux/can.h>
const std::string dump_file="/home/alopez/candumpobjects.txt";
/**
* \example test_can.cpp
*
*/
int main(int argc,char *argv[])
{
CEventServer *event_server=CEventServer::instance();
std::list<std::string> events;
CVirtualCAN can_port("can_port");
unsigned char data[8];
unsigned int can_id;
int i=0,len;
events.push_back(can_port.get_new_frame_event_id());
try{
can_port.open(dump_file);
can_port.set_update_rate(2800);
can_port.set_error_rate(1);
can_port.add_id_filter(0x010,0x0F0,false);
while(1)
{
event_server->wait_all(events);
//std::cout << "[" << std::dec << can_port.get_last_rx_timestamp() << "]" << std::endl;
can_port.read_frame(&can_id,data,&len);
/*std::cout << "can id: 0x" << std::hex << can_id << std::endl;
std::cout << "length: " << len << std::endl;
std::cout << "data: ";
for(i=0;i<len;i++)
std::cout << "0x" << std::hex << (int)data[i] << ",";
std::cout << std::endl;*/
}
}catch(CCommException &e){
std::cout << e.what() << std::endl;
}
}