modem_sim_node module#

class modem_sim_node.ActivePacket(sim_packet, arrival_time, finish_time, receive_level_db)#

Bases: tuple

arrival_time#

Alias for field number 1

finish_time#

Alias for field number 2

receive_level_db#

Alias for field number 3

sim_packet#

Alias for field number 0

class modem_sim_node.ModemSimNode#

Bases: Ros1Node

call_sim_packet_performance(sim_packet_performance_req)#
call_sim_transmission_loss(sim_transmission_loss_req)#
check_if_packet_is_active(current_time: Time, sim_packet: SimPacket, rcv_platform_location: Position) ActivePacket | None#
create_ping_reply_msg(dest, sim_packet=None, owtt: float = 0.0)#
create_ping_transaction(sim_packet)#
create_rx_packet(finished_packet: ActivePacket, total_noise: float) ReceivedPacket#
create_tx_packet(transmitted_packet: TransmittedPacket) TransmittedPacket#
format_ping_for_tx_queue(dest, queue=3, packet_type=3)#
get_actual_src_level_db(src_level_requested)#
get_packet_time(sim_packet)#
get_transmission_loss_sync(sim_packet: SimPacket, rcv_platform_location: Position)#
get_truncated_frames(frame_success_mask: list, frame_bytes, hit_first_bad_frame=False)#
handle_partial_packet(packet_performance: SimPacketPerformanceResponse, sim_packet: SimPacket)#
handle_ping_modem(request)#

Send PingReply REQUEST to outgoing queue (handle_queue_tx_packet) Equivalent with a real modem would be sending $CCCMD,PNG,…

handle_ping_rx(sim_packet: SimPacket, arrival_time: Time)#
handle_query_modem_src(query: QueryModemSrcRequest) QueryModemSrcResponse#
handle_queue_tx_packet(queue_tx_packet_req, ping=None)#
on_acoustic_channel_sim_packet(sim_packet)#
on_ambient_noise(msg: Float32)#
on_modem_location(msg)#
on_sim_tick(msg)#
packet_in_band(sim_packet)#
process_inwater_packets(current_time) None#
process_outgoing_queue()#
process_rx_queue()#
publish_received_packet(received_packet: ReceivedPacket)#
publish_sim(sim_packet)#
publish_transmitted_packet(transmitted_packet)#
send_fdp_ping_sim(dest, rate=1, cdr=0, hexdata=None)#
sst_sim_loop()#
class modem_sim_node.PingReplyTransaction(transaction_start_t, event: Event)#

Bases: object

PING_TYPE_NONE = 0#
PING_TYPE_REPLY = 2#

Constants in SimPacket.msg rel to ping no-ping -> PING_TYPE_NONE —– no action (normal sim_packet) start —> PING_TYPE_REQUEST – when we are requesting a PingReply from another node finish –> PING_TYPE_REPLY —- when the PingReply is a response to a prior ping request

PING_TYPE_REQUEST = 1#
property cancel_request_active#
cancel_transaction()#
complete_transaction(sim_packet_reply)#
timed_out()#
wait(timeout=None)#
class modem_sim_node.Position(latitude, longitude, depth)#

Bases: tuple

depth#

Alias for field number 2

latitude#

Alias for field number 0

longitude#

Alias for field number 1

modem_sim_node.sum_incoherent_db(levels_in_db)#