[docs]/** * Default name of KISS interface. */#define CSP_IF_KISS_DEFAULT_NAME "KISS"
/** * Send KISS frame (implemented by driver). * * @param[in] driver_data driver data from #csp_iface_t * @param[in] data data to send * @param[in] len length of \a data. * @return #CSP_ERR_NONE on success, otherwise an error code. */typedefint(*csp_kiss_driver_tx_t)(void*driver_data,constuint8_t*data,size_tlen);
KISS_MODE_SKIP_FRAME,/**< Skip remaining frame, wait for end character */
}csp_kiss_mode_t;
[docs]/** * KISS interface data (state information). */typedefstruct{
csp_kiss_driver_tx_ttx_func;/**< Tx function */
csp_kiss_mode_trx_mode;/**< Rx mode/state. */
unsignedintrx_length;/**< Rx length */
boolrx_first;/**< Rx first - if set, waiting for first character (== TNC_DATA) after start */
csp_packet_t*rx_packet;/**< CSP packet for storing Rx data. */
}csp_kiss_interface_data_t;
[docs]/** * Add interface. * * @param[in] iface CSP interface, initialized with name and * inteface_data pointing to a valid #csp_kiss_interface_data_t. * @return #CSP_ERR_NONE on success, otherwise an error code. */intcsp_kiss_add_interface(csp_iface_t*iface);
[docs]/** * Send CSP packet over KISS (nexthop). * * @return #CSP_ERR_NONE on success, otherwise an error code. */intcsp_kiss_tx(csp_iface_t*iface,uint16_tvia,csp_packet_t*packet,intfrom_me);
[docs]/** * Process received CAN frame. * * Called from driver when a chunk of data has been received. Once a complete * frame has been received, the CSP packet will be routed on. * * @param[in] iface incoming interface. * @param[in] buf reveived data. * @param[in] len length of \a buf. * @param[out] pxTaskWoken Valid reference if called from ISR, otherwise NULL! */voidcsp_kiss_rx(csp_iface_t*iface,constuint8_t*buf,size_tlen,void*pxTaskWoken);