#include "its_mode2.h"
#include "its_common.h"
#include "wpan.h"
#include "mrf24j40.h"
#include "config.h"
#include "pic_serial.h"
#include "pic_tick.h"
#include "pic_timer.h"
#include "memory.h"
#include "debug.h"
Go to the source code of this file.
void its2_delete_item_from_queue | ( | queued_item * | item | ) |
Definition at line 1025 of file its_mode2.c.
References queued_item::data, queued_item::data_length, queued_item::flag, and ITS2_FLAG_DELETED.
Referenced by its2_process_tx_queue().
its2_result its2_device_init | ( | uns16 | my_device_id, | |
uns16 | network_id | |||
) |
Definition at line 1136 of file its_mode2.c.
References debug_str, its_init(), its_set_device_id(), its_set_network_id(), mrf24j40_set_pan_id(), mrf24j40_set_short_address(), state, STATE_UNASSOCIATED, and wpan_init().
void its2_device_process | ( | ) |
Definition at line 1163 of file its_mode2.c.
References channel, debug_nl, debug_str, debug_var, ITS_ASSOC_REQ, its_transmit_to_sa(), mrf24j40_set_channel(), MRF_FIRST_CHANNEL, MRF_LAST_CHANNEL, state, STATE_SEARCHING, STATE_UNASSOCIATED, tick_calc_diff(), tick_get_count(), tick_marker, and uns16.
its2_result its2_device_transmit | ( | uns8 * | data, | |
uns8 | data_length | |||
) |
Definition at line 1199 of file its_mode2.c.
References controller_handle, ITS_GENERIC_DATA, and its_transmit_to_handle().
its2_result its2_find_controller | ( | ) |
Definition at line 1157 of file its_mode2.c.
References channel, state, STATE_SEARCHING, tick_get_count(), and tick_marker.
uns8 its2_find_free_queue_slot | ( | ) |
Definition at line 99 of file its_mode2.c.
References ITS2_FLAG_DELETED, and uns8.
Referenced by its2_forward_routed_packet(), and its2_rebroadcast_net_discover_req().
its2_result its2_forward_routed_packet | ( | its2_packet * | pkt, | |
uns8 * | data, | |||
uns8 | data_length | |||
) |
Definition at line 653 of file its_mode2.c.
References its_device_info::addr, queued_item::data, queued_item::data_length, debug_int, debug_int_hex_16bit, debug_spc, debug_str, debug_var, queued_item::dest_device_handle, queued_item::dest_its_device_id, queued_item::flag, its2_packet::hop_count, ITEM_QUEUED, its2_find_free_queue_slot(), ITS2_FLAG_DELETED, ITS2_FLAG_NO_ACK, ITS2_NO_AVAILABLE_SLOTS, its2_print_packet(), its2_packet::its_dest_id, ITS_DEVICE_NONE, its_get_device_handle(), its_get_device_info(), NEXT_HOP_NOT_LOCAL, its2_packet::num_routes, queued_item::packet, QS_READY_TO_SEND, QS_WAITING_ON_LOCAL_ADDR, QUEUE_FULL, its_address::remote, remote_address::remote_indicator, its2_packet::routers, queued_item::sent_count, queued_item::status, and uns8.
void its2_print_packet | ( | its2_packet * | pkt | ) |
Definition at line 580 of file its_mode2.c.
References debug_int, debug_int_hex_16bit, debug_putc, debug_str, its2_packet::hop_count, its2_packet::its_dest_id, its2_packet::its_network_id, its2_packet::its_source_id, its2_packet::max_hop_count, its2_packet::num_routes, its2_packet::packet_type, its2_packet::routers, its2_packet::sequence, and uns8.
Referenced by its2_forward_routed_packet(), and its2_transmit().
void its2_print_queue | ( | ) |
Definition at line 1106 of file its_mode2.c.
References debug_nl, debug_var, queued_item::flag, ITS2_FLAG_DELETED, its2_packet::its_dest_id, its2_packet::its_source_id, queued_item::packet, queued_item::sent_count, queued_item::status, tick_get_count(), queued_item::tick_sent, and uns8.
void its2_process_tx_queue | ( | ) |
Definition at line 904 of file its_mode2.c.
References debug_int, debug_int_hex_16bit, debug_str, queued_item::dest_its_device_id, queued_item::flag, its2_delete_item_from_queue(), ITS2_FLAG_DELETED, its2_request_local_addr(), its2_request_net_addr(), its2_transmit(), its2_transmit_status_callback(), its2_transmitting, ITS2_TX_STATUS_NEXT_HOP_UNKNOWN, ITS2_TX_STATUS_NO_ACK, ITS2_TX_STATUS_NO_ROUTE, ITS2_TX_STATUS_SUCCESS, its_get_device_id(), its2_packet::its_source_id, queued_item::packet, QS_ACK_RECEIVED, QS_READY_TO_SEND, QS_ROUTING_FAILED, QS_SENT, QS_WAITING_ON_ACK, QS_WAITING_ON_LOCAL_ADDR, QS_WAITING_ON_NETWORK_ADDR, queued_item::sent_count, queued_item::status, tick_calc_diff(), tick_get_count(), queued_item::tick_sent, uns16, and uns8.
Referenced by its2_router_process().
void its2_rebroadcast_net_addr_req | ( | ) |
Definition at line 800 of file its_mode2.c.
its2_result its2_rebroadcast_net_discover_req | ( | its2_packet * | pkt | ) |
Definition at line 613 of file its_mode2.c.
References queued_item::data, queued_item::data_length, debug_str, debug_var, queued_item::dest_device_handle, queued_item::dest_its_device_id, queued_item::flag, its2_packet::hop_count, ITEM_QUEUED, its2_find_free_queue_slot(), ITS2_FLAG_NO_ACK, ITS2_NO_AVAILABLE_SLOTS, ITS_DEVICE_NONE, its_get_device_id(), its2_packet::its_source_id, its2_packet::max_hop_count, its2_packet::num_routes, queued_item::packet, QS_READY_TO_SEND, QUEUE_FULL, its2_packet::routers, ROUTING_TOO_MANY_HOPS, queued_item::sent_count, its2_packet::sequence, queued_item::status, and uns8.
void its2_request_local_addr | ( | uns16 | device_id | ) |
Definition at line 779 of file its_mode2.c.
References ITS2_FLAG_NO_ACK, its2_router_queue_packet(), and ITS_LOCAL_DISCOVER_REQ.
Referenced by its2_process_tx_queue().
void its2_request_net_addr | ( | uns16 | device_id | ) |
Definition at line 792 of file its_mode2.c.
References ITS2_FLAG_NO_ACK, its2_router_queue_packet(), and ITS_NET_DISCOVER_REQ.
Referenced by its2_process_tx_queue().
void its2_respond_local_addr | ( | uns16 | device_id | ) |
Definition at line 783 of file its_mode2.c.
References debug_module, debug_str, ITS2_FLAG_NO_ACK, its2_router_queue_packet(), and ITS_LOCAL_DISCOVER_RES.
void its2_respond_net_addr | ( | uns16 | device_id | ) |
Definition at line 796 of file its_mode2.c.
References ITS2_FLAG_NO_ACK, its2_router_queue_packet(), and ITS_NET_DISCOVER_RES.
its2_result its2_router_handle_association | ( | uns16 | pan_id, | |
uns16 | its_device_id | |||
) |
Definition at line 118 of file its_mode2.c.
References debug_str, its_add_local_device(), ITS_ASSOC_RES, ITS_DEVICE_NONE, its_get_device_handle(), its_transmit_to_handle(), RESULT_FAILED, and RESULT_SUCCESSFUL.
uns8 its2_router_init | ( | uns16 | my_device_id, | |
uns16 | network_id | |||
) |
Definition at line 743 of file its_mode2.c.
References debug_nl, debug_str, debug_var, queued_item::flag, ITS2_FLAG_DELETED, its2_seen_index, its_init(), its_set_device_id(), its_set_network_id(), seen_packet::its_source_id, mrf24j40_set_channel(), mrf24j40_set_pan_id(), mrf24j40_set_short_address(), and uns8.
void its2_router_process | ( | queued_item * | item | ) |
Definition at line 1102 of file its_mode2.c.
void its2_router_process | ( | ) |
Definition at line 808 of file its_mode2.c.
References its2_process_tx_queue(), state_timeout, tick_calc_diff(), tick_get_count(), tick_marker, turn_off_mrf_interrupts(), turn_on_mrf_interrupts(), and uns16.
its2_result its2_router_queue_packet | ( | uns16 | device_id, | |
uns8 | packet_type, | |||
uns8 * | data, | |||
uns8 | data_length, | |||
uns8 | ack | |||
) |
Definition at line 823 of file its_mode2.c.
References queued_item::data, queued_item::data_length, debug_str, debug_var, queued_item::dest_its_device_id, queued_item::flag, its2_packet::hop_count, ITEM_QUEUED, ITS2_FLAG_DELETED, ITS2_UPDATE_ROUTE_FAIL, its2_packet::its_dest_id, its_get_device_id(), its_get_network_id(), its_get_next_sequence(), ITS_LOCAL_DISCOVER_REQ, ITS_NET_DISCOVER_REQ, its2_packet::its_network_id, its2_packet::its_source_id, its2_packet::max_hop_count, queued_item::packet, its2_packet::packet_type, QUEUE_FULL, ROUTING_TOO_MANY_HOPS, queued_item::sent_count, its2_packet::sequence, turn_off_mrf_interrupts(), turn_on_mrf_interrupts(), and uns8.
Referenced by its2_request_local_addr(), its2_request_net_addr(), its2_respond_local_addr(), and its2_respond_net_addr().
void its2_setup_io | ( | ) |
Definition at line 95 of file its_mode2.c.
References wpan_setup_io().
void its2_transmit | ( | queued_item * | item | ) |
Definition at line 1035 of file its_mode2.c.
References its_device_info::addr, queued_item::data, queued_item::data_length, debug_int, debug_int_hex_16bit, debug_putc, debug_str, debug_var, queued_item::dest_device_handle, queued_item::dest_its_device_id, queued_item::flag, FRAME_TYPE_DATA, ITS2_FLAG_ACK, its2_print_packet(), its2_transmitting, ITS_DEVICE_NONE, its_get_device_info(), its_address::local, mrf24j40_transmit_to_short_address(), MRF_ACK, MRF_NO_ACK, its2_packet::num_routes, queued_item::packet, local_address::pan_id, QS_SENT, QS_WAITING_ON_ACK, its2_packet::routers, queued_item::sent_count, local_address::short_address, queued_item::status, tick_get_count(), queued_item::tick_sent, and uns8.
Referenced by its2_process_tx_queue().
void turn_off_mrf_interrupts | ( | ) |
!clear_bit(intcon, INT0IE);
Definition at line 82 of file its_mode2.c.
Referenced by its2_router_process(), and its2_router_queue_packet().
void turn_on_mrf_interrupts | ( | ) |
!set_bit(intcon, INT0IE);
Definition at line 90 of file its_mode2.c.
Referenced by its2_router_process(), and its2_router_queue_packet().
void wpan_data_received_callback | ( | wpan_address * | addr, | |
uns8 * | data, | |||
uns8 | data_size | |||
) |
Definition at line 508 of file its_mode2.c.
References controller_handle, debug_int_hex, debug_nl, debug_putc, debug_str, its2_device_receive_callback(), ITS_ASSOC_RES, ITS_DEVICE_NONE, ITS_GENERIC_DATA, wpan_address::source_pan_id, state, STATE_ASSOCIATED, STATE_SEARCHING, STATE_UNASSOCIATED, uns16, uns8, and wpan_print_address().
void wpan_data_transmitted_callback | ( | uns8 | status, | |
uns8 | retries, | |||
uns8 | channel_busy | |||
) |
Once the lower layers have attempted to transmit the packet, the results will be presented to the callback.
status | Set to 0 for success or 1 for failure | |
retries | Set to the number of retries | |
channel_busy | Set to 1 if failure was due to the channel being busy. |
Definition at line 804 of file its_mode2.c.
References its2_transmitting.
Referenced by mrf24j40_transmit_callback().
uns8 channel |
Definition at line 71 of file its_mode2.c.
uns8 controller_handle |
Definition at line 67 of file its_mode2.c.
bit debug_module = 0 |
Definition at line 64 of file its_mode2.c.
Referenced by its2_respond_local_addr().
uns8 its2_seen_index |
Definition at line 73 of file its_mode2.c.
Referenced by its2_router_init().
seen_packet its2_seen_list[ITS2_SEEN_LIST_SIZE] [static] |
Definition at line 75 of file its_mode2.c.
bit its2_transmitting = 0 |
Definition at line 72 of file its_mode2.c.
Referenced by its2_process_tx_queue(), its2_transmit(), and wpan_data_transmitted_callback().
queued_item its2_tx_queue[ITS2_TX_QUEUE_SIZE] [static] |
Definition at line 76 of file its_mode2.c.
bit queue_processing = 0 |
Definition at line 65 of file its_mode2.c.
its2_state state = STATE_STARTUP |
Definition at line 62 of file its_mode2.c.
uns16 state_timeout |
Definition at line 69 of file its_mode2.c.
Referenced by its2_router_process().
uns16 tick_marker |
Definition at line 68 of file its_mode2.c.