Page
113 of 133
Version 3.0 REV r000
Date 25-08-2010
Appendix VI Sonic Control Commands
13 R2Sonic Control Commands
13.1 Introduction
The Sonic 2024/2022 is configured and control using a set list of commands. Sonic Control works by
sending these commands to system. The control commands, provided here, can be used to control
the Sonic 2024/2022. This describes the commands sent from the user interface to the sonar head
and SIM.
Head firmware version 12-Apr-2010 and SIM firmware version 08-Apr-2010 utilize the commands in
this document. Future versions of firmware will adhere to this format and may include additional
commands.
Older versions of head and SIM firmware are
not compatible with this format.
13.2 General Notes
1. These formats are designed for easy 4-byte alignment. Be sure your compiler/linker doesn't
insert any extra padding between values. If necessary, use your compiler's "packed" directive.
2.
All values have big-endian byte order. Your compiler may provide conversion functions such as
htonl, htons, ntohl, ntohs, however those assume integers so you'll need to be very careful with
floats.
3.
u32 means unsigned integer, 32 bits.
f32 means IEEE-754 32-bit floating point.
4.
All packets are UDP/IP datagrams.
5.
It’s recommended that all commands be sent periodically, at a 1 to 0.5 Hz rate. This ensures that
the sonar head and SIM always have the proper settings should a power interruption occur.
13.2.1 Port Number
Port = Baseport +2 where the baseport is the sonar head or SIM baseport
13.2.2 Type Definitions
typedef unsigned int u32;
typedef float f32;
13.2.3 Command Packet Format
Pseudo C format for commands
// *** BEGIN PACKET: COMMAND FORMAT 0 ***
u32 PacketName; // 'CMD0'
// Command (for network efficiency, the packet can contain multiple commands,
// but ensure the IP datagram reaches the sonar unfragmented).
u32 CommandName; // example 'RNG0' to set range
x32 CommandValue; // a 4-byte value such as u32 or f32
// *** END PACKET: COMMAND FORMAT 0 ***