Hi,
I’m trying to publish esc_status, but when I use listener, for instance, esc_rpm is 537115264 and other parameters are 0. Also if I try to read poll revents, I can not read any data and can not publish. Here is my code:
int esc_report_sub = orb_subscribe(ORB_ID(esc_report));
int esc_sub = orb_subscribe(ORB_ID(esc_status));
orb_set_interval(esc_sub, 200);
//px4_pollfd_struct_t fds_esc;
//fds_esc.fd = esc_report_sub;
//fds_esc.events = POLLIN;
struct esc_status_s esc;
memset(&esc, 0, sizeof(esc));
orb_advert_t esc_pub = orb_advertise(ORB_ID(esc_status), &esc);
while (!_thread_should_exit) {
struct esc_report_s esc_report;
orb_copy(ORB_ID(esc_report), esc_report_sub, &esc_report);
esc.counter++;
esc.timestamp = hrt_absolute_time();
esc.esc_count = 4;
esc.esc_connectiontype = esc_status_s::ESC_CONNECTION_TYPE_DSHOT;
esc.esc_armed_flags = (1 << 4) - 1;
esc.esc_online_flags = (1 << 4) - 1;
for(int i = 0; i < 4; i++)
{
esc.esc[i].esc_voltage = esc_report.esc_voltage;
esc.esc[i].esc_address = esc_report.esc_address;
esc.esc[i].esc_current = esc_report.esc_current;
esc.esc[i].esc_rpm = esc_report.esc_rpm;
esc.esc[i].esc_temperature = esc_report.esc_temperature;
}
orb_publish(ORB_ID(esc_status), esc_pub, &esc);
}