Added separated header files
[apps/low-level-can-service.git] / src / can_event_push.cpp
index b08619b..9251da6 100644 (file)
  * limitations under the License.
  */
 
-#include <linux/can.h>
-#include <linux/can/raw.h>
-#include <queue>
+#include "can_event_push.hpp"
 
-#include <afb/afb-binding.h>
-
-#include "can-utils.h"
-#include "openxc.pb.h"
-
-void can_event_push(CanBus_c *can_bus)
+void can_event_push(can_bus_t& can_bus)
 {
+       openxc_VehicleMessage v_message;
+       openxc_SimpleMessage s_message;
+       iterator it_event;
+
        while(true)
        {
-               if(! can_bus->vehicle_message_q.empty())
+               if(v_message = can_bus->next_vehicle_message())
                {
-                       vehicle_message = can_bus->vehicle_message_q.front();
-                       can_bus->vehicle_message_q.pop();
+                       s_message = get_simple_message(v_msg);
+                       const auto& it_event = subscribed_signals.find(s_message.name);
+                       if(! it_event->end() && afb_event_is_valid(it_event->second))
+                               afb_event_push(it_event->second, jsonify_simple(s_message));
                }
        }
 }