|
Z-Wave Protocol Controller Reference
|
#include <stdint.h>#include <stdio.h>#include <string.h>#include <stdlib.h>#include "transport_service.h"#include "zwave_tx.h"#include "ctimer.h"#include "transport_service_command_class_def.h"#include "zwave_controller_crc16.h"#include "sl_log.h"Classes | |
| struct | transition_t |
| struct | cb |
| struct | sending_cntrl_blk |
| struct | rx_timer_expired_data |
| struct | receiving_cntrl_blk |
Macros | |
| #define | LOG_TAG "transport_service" |
| #define | PAYLOAD_SIZE_MAX (200) |
| #define | FIRST_HDR_LEN 4 /* Cmd class, cmd, size, seqno */ |
| #define | SUBSEQ_HDR_LEN 5 /* Cmd class, cmd, size, seqno + offset 1, offset 2*/ |
| #define | FRAGMENT_FC_TIMEOUT 1000 /*ms*/ |
| #define | FRAGMENT_RX_TIMEOUT 800 /*ms*/ |
| #define | RESET_TIME 5000 /* ms */ |
| #define | log_debug(f, ...) sl_log_debug(LOG_TAG, f, ##__VA_ARGS__) |
| #define | log_error(f, ...) sl_log_debug(LOG_TAG, f, ##__VA_ARGS__) |
| #define | FIRST_FRAG_NONPAYLOAD_LENGTH (sizeof(ZW_COMMAND_FIRST_FRAGMENT_1BYTE_FRAME) - 1) |
| #define | SUBSEQ_FRAG_NONPAYLOAD_LENGTH (sizeof(ZW_COMMAND_SUBSEQUENT_FRAGMENT_1BYTE_FRAME) - 1) |
Typedefs | |
| typedef enum TRANSPORT2_STATES | TRANSPORT2_ST_T |
| typedef enum TRANSPORT2_EVENTS | TRANSPORT2_EV_T |
| typedef struct cb | control_block_t |
| typedef struct sending_cntrl_blk | sending_cntrl_blk_t |
| typedef struct receiving_cntrl_blk | receiving_cntrl_blk_t |
Functions | |
| static void | reply_frag_req () |
| static uint8_t | send_frag_wait_cmd () |
| static void | send_subseq_frag (void *nthing) |
| void | fc_timer_expired (void *nthing) |
| static void | send_first_frag () |
| static uint8_t | get_next_missing_offset () |
| static void | rx_timer_expired (void *ss) |
| static void | send_last_frag (void) |
| void | transport_service_init (ts_node_id_t node_id, const upper_layer_command_handler_t command_handler, const send_data_t send_data) |
| Initialize the Transport Service. More... | |
| uint8_t | find_transition (TRANSPORT2_ST_T cstate, TRANSPORT2_EV_T event) |
| void | t2_sm_post_event (TRANSPORT2_EV_T ev) |
| static uint8_t | recv_or_send () |
| uint8_t | is_transport_service_receiving () |
| uint8_t | is_transport_service_sending () |
| void | transport_service_senddata_cb (uint8_t status, void *user) |
| static uint8_t | discard_all_received_fragments (void) |
| static void | reset_transport_service (void *user) |
| static uint8_t | mark_frag_received (const uint16_t offset, const uint8_t size) |
| static uint8_t | send_frag_complete_cmd () |
| static uint8_t | send_frag_req_cmd () |
| static void | find_missing () |
| static void | add_crc (uint8_t *buf, uint16_t len) |
| static void | temp_callback_last_frag (uint8_t status, void *user) |
| void | temp_callback_reply_frag_req (unsigned char status, void *user) |
| static void | wait_restart_from_first (void *nthing) |
| static bool | receive (void) |
| static bool | transport_service_command_handler (ts_node_id_t source, ts_node_id_t dest, receive_type rx_type, const uint8_t *frame_data, uint8_t frame_length) |
| bool | transport_service_on_frame_received (ts_node_id_t source, ts_node_id_t dest, receive_type rx_type, const uint8_t *frame_data, uint8_t frame_length) |
| Transport service RX function. More... | |
| transport_service_send_data_return_code_t | transport_service_send_data (ts_node_id_t source, ts_node_id_t dest, const uint8_t *payload, uint16_t payload_len, uint16_t max_frame_len, const on_transport_service_send_data_complete_t c) |
| Sending a long frame with Transport service. More... | |
Variables | |
| static on_transport_service_send_data_complete_t | on_send_complete_cb = 0 |
| static send_data_t | lower_layer_send_data = 0 |
| static upper_layer_command_handler_t | upper_layer_command_handler |
| static uint16_t | my_node_id |
| static uint16_t | max_fragment_size = 0 |
| static uint16_t | offset_to_request = 0 |
| static uint8_t | flag_tie_broken = 0 |
| static uint8_t | flag_initialize_once = 1 |
| uint8_t | t2_txBuf [PAYLOAD_SIZE_MAX+sizeof(ZW_COMMAND_SUBSEQUENT_FRAGMENT_1BYTE_FRAME) - 1] |
| ZW_COMMAND_FIRST_FRAGMENT_1BYTE_FRAME * | first_frag = (ZW_COMMAND_FIRST_FRAGMENT_1BYTE_FRAME *)t2_txBuf |
| ZW_COMMAND_SUBSEQUENT_FRAGMENT_1BYTE_FRAME * | subseq_frag = (ZW_COMMAND_SUBSEQUENT_FRAGMENT_1BYTE_FRAME *)t2_txBuf |
| static const transition_t | trans [] |
| TRANSPORT2_ST_T | current_state = ST_IDLE |
| sending_cntrl_blk_t | scb |
| receiving_cntrl_blk_t | rcb |
| #define FIRST_FRAG_NONPAYLOAD_LENGTH (sizeof(ZW_COMMAND_FIRST_FRAGMENT_1BYTE_FRAME) - 1) |
| #define FIRST_HDR_LEN 4 /* Cmd class, cmd, size, seqno */ |
| #define FRAGMENT_FC_TIMEOUT 1000 /*ms*/ |
| #define FRAGMENT_RX_TIMEOUT 800 /*ms*/ |
| #define log_debug | ( | f, | |
| ... | |||
| ) | sl_log_debug(LOG_TAG, f, ##__VA_ARGS__) |
| #define log_error | ( | f, | |
| ... | |||
| ) | sl_log_debug(LOG_TAG, f, ##__VA_ARGS__) |
| #define LOG_TAG "transport_service" |
| #define PAYLOAD_SIZE_MAX (200) |
| #define RESET_TIME 5000 /* ms */ |
| #define SUBSEQ_FRAG_NONPAYLOAD_LENGTH (sizeof(ZW_COMMAND_SUBSEQUENT_FRAGMENT_1BYTE_FRAME) - 1) |
| #define SUBSEQ_HDR_LEN 5 /* Cmd class, cmd, size, seqno + offset 1, offset 2*/ |
| typedef struct cb control_block_t |
| typedef struct receiving_cntrl_blk receiving_cntrl_blk_t |
| typedef struct sending_cntrl_blk sending_cntrl_blk_t |
| typedef enum TRANSPORT2_EVENTS TRANSPORT2_EV_T |
| typedef enum TRANSPORT2_STATES TRANSPORT2_ST_T |
| enum TRANSPORT2_EVENTS |
| enum TRANSPORT2_STATES |
|
static |
|
static |
| void fc_timer_expired | ( | void * | nthing | ) |
|
static |
| uint8_t find_transition | ( | TRANSPORT2_ST_T | cstate, |
| TRANSPORT2_EV_T | event | ||
| ) |
|
static |
| uint8_t is_transport_service_receiving | ( | ) |
| uint8_t is_transport_service_sending | ( | ) |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
| void t2_sm_post_event | ( | TRANSPORT2_EV_T | ev | ) |
|
static |
| void temp_callback_reply_frag_req | ( | unsigned char | status, |
| void * | user | ||
| ) |
|
static |
| void transport_service_senddata_cb | ( | uint8_t | status, |
| void * | user | ||
| ) |
|
static |
| TRANSPORT2_ST_T current_state = ST_IDLE |
| ZW_COMMAND_FIRST_FRAGMENT_1BYTE_FRAME* first_frag = (ZW_COMMAND_FIRST_FRAGMENT_1BYTE_FRAME *)t2_txBuf |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
| ZW_COMMAND_SUBSEQUENT_FRAGMENT_1BYTE_FRAME* subseq_frag = (ZW_COMMAND_SUBSEQUENT_FRAGMENT_1BYTE_FRAME *)t2_txBuf |
| uint8_t t2_txBuf[PAYLOAD_SIZE_MAX+sizeof(ZW_COMMAND_SUBSEQUENT_FRAGMENT_1BYTE_FRAME) - 1] |
|
static |
|
static |