Garmin Basestation Mode
Note: This document assumes you are familiar with Garmin Device Interface Specification (Drawing Number: 001-00063-00) and how to establish communication with a Garmin device.
Contents |
[edit] Link Protocol
[edit] Packet IDs
enum
{
Pid_Tracked_Asset_Data = 3078
};
[edit] Application Protocol
[edit] A1100 – Basestation Protocol
Tracked asset data is transmitted upon the user enabling the feature on the unit.
The packet sequence for the Basestation Protocol is show below:
| N | Direction | Packet ID | Packet Data Type |
|---|---|---|---|
| 0 | Device to Host (ACK/NACK optional) | Pid_Tracked_Asset_Data | <D1100_Tracked_Asset_Type> |
[edit] Data Types
[edit] asset_info_type
The asset_info_type is a uint32 bit field that indicates the type of receiving unit, the asset's type and it's associated status.
| Bit | Interpretation |
|---|---|
| 0-3 (least significant bits) | Dog Status |
| 4-8 | Platform |
| 9-11 | Type |
| 12 | Low Battery |
| 13 | GPS Lost |
| 14 | Communication Lost |
| 15 | Text Message Received |
| 16 | Asset Removed |
| 17-31 (most significant bits) | Undefined |
"Dog Status" can be one of the following values:
enum
{
DOG_STATUS_INVALID = 0,
DOG_STATUS_SITTING = 1,
DOG_STATUS_MOVING = 2,
DOG_STATUS_TREED = 3,
DOG_STATUS_ON_POINT = 4
};
"Platform" can be one of the following values:
enum
{
PLATFORM_ASTRO320 = 0,
PLATFORM_RINO = 1,
PLATFORM_ALPHA = 2
};
"Type" can be one of the following values:
enum
{
TYPE_DOG = 0,
TYPE_CONTACT = 1
};
"Dog Status", "Low Battery", "GPS Lost", and "Communication Lost" are only valid if "Type" is TYPE_DOG.
For "Low Battery", "GPS Lost", "Communication Lost", a set bit indicates the condition is true.
The "Text Message Received" bit being set indicates that a new text message has been received.
The "Asset Removed" bit being set indicates that the user has removed the asset from the list of tracked assets on their device.
[edit] D1100_Tracked_Asset_Type
typedef struct
{
position_type posn;
float alt;
time_type time;
asset_info_type status;
symbol_type smbl; /* contact symbol */
uint16 collar_id; /* assigned dog collar ID */
uint8 color; /* track color */
uint8 batt; /* Battery level 0% - 100% */
uint8 gps; /* Signal strength 0 - 5 bars */
uint8 comm; /* Signal strength 0 - 5 bars */
uint8 channel; /* FRS/GMRS channel */
uint8 code; /* FRS/GMRS squelch code */
uint8 idx; /* index */
uchar_t8 ident[37]; /* identifier */
uchar_t8 msg[31]; /* text message or note */
} D1100_Tracked_Asset_Type;
The "smbl" is only valid if the "Type" field of the "status" member is TYPE_CONTACT.
The "collar_id", "batt", "gps", and "comm" members are only valid if the "Type" field of the "status" member is TYPE_DOG.
The “color” member is the display color of the asset's track and can be one of the following values:
enum
{
clr_black = 0,
clr_dark_red = 1,
clr_dark_green = 2,
clr_dark_yellow = 3,
clr_dark_blue = 4,
clr_dark_magenta = 5,
clr_dark_cyan = 6,
clr_light_gray = 7,
clr_dark_gray = 8,
clr_red = 9,
clr_green = 10,
clr_yellow = 11,
clr_blue = 12,
clr_magenta = 13,
clr_cyan = 14,
clr_white = 15,
clr_light_blue = 16,
clr_transparent = 17,
clr_default_color = 255
};
The "idx" member is a unique index for a given asset. This allows the host to track changes of the identifier. A given index may be reused after the unit sends a packet with the "Asset Removed" bit of the "status" member set for that index.
The "msg" member is only valid when the "Text Message Received" bit of "status" member is set. Otherwise the previously received message should be considered the latest message.