/** * DNCM CAN helper to configure GPS and Communication status reporting * * When using this module the following defines need to set: * * DI_FW_CAN_DNCM_COMM_STATUS_ON_CHANGE, boolean value (e.g true) * * DI_FW_CAN_DNCM_COMM_STATUS_INTERVAL_SEC, unsigned integer value (e.g 300) * * DI_FW_CAN_DNCM_GPS_INTERVAL_SEC, unsigned integer value (e.g 300) */ #ifndef LIBDI_FW_INCLUDE_DI_FW_CAN_DNCM_H_ #define LIBDI_FW_INCLUDE_DI_FW_CAN_DNCM_H_ #include struct di_can_net; struct di_can_net_node; #define DI_FW_CAN_DNCM_REQREP_TIMEOUT_MS 500 #define DI_FW_CAN_DNCM_PERIODIC_EVENT_TIME_MS 1000 /** * Node event wrapper for gateway node events (DNCMs) * * A configuration periodic is started as the event comes from a DNCM leader * * The configuration periodic will delete itself as soon as the DNCM has send the correct * replies after configuration * @param ctx CAN Net subsystem context * @param ev CAN node event * @param node CAN node which triggered the event */ void di_fw_can_dncm_node_event_cb(const struct di_can_net *ctx, const enum di_can_net_node_events ev, const struct di_can_net_node *node); /** * Starts (when not already started) the DNCM configuration asynchronous periodic task * @param ctx CAN context * @note The periodic tasks makes sure the DNCM is configured correctly even when there are * timing problems and message drops on the CAN-bus */ void di_fw_can_dncm_configure(struct di_can_ctx *ctx); /** * Force a DNCM GPS sensor update (trigger) in a asynchronous periodic task * @param ctx CAN context * @note The periodic tasks makes sure the DNCM is triggered for GPS update correctly even when * there are timing problems and message drops on the CAN-bus */ void di_fw_can_dncm_gps_sensor_trigger(struct di_can_ctx *ctx); #endif /* LIBDI_FW_INCLUDE_DI_FW_CAN_DNCM_H_ */