📄 g7to.c
字号:
////
//// garmin additions from beta. I'm not using most of these yet, but
//// JIC...
// BYTE class;
// BYTE status; // Lowrance waypoint status 0 or 1
// BYTE subclass[13];
// INT alt;
// char city[24];
// char state[2];
// char cc[2]; // garmin
// char name[30]; // garmin
//};
enum
{
//
// * indicates those in the GPS III revision 2.05 and greater
//
//---------------------------------------------------------------
// Symbols for marine (group 0...0-8191...bits 15-13=000).
//---------------------------------------------------------------
sym_anchor = 0, // 0x0000 * white anchor symbol
sym_bell = 1, // 0x0001 * white bell symbol
sym_diamond_grn = 2, // 0x0002 green diamond symbol
sym_diamond_red = 3, // 0x0003 red diamond symbol
sym_dive1 = 4, // 0x0004 diver down flag 1
sym_dive2 = 5, // 0x0005 diver down flag 2
sym_dollar = 6, // 0x0006 * white dollar symbol
sym_fish = 7, // 0x0007 * white fish symbol
sym_fuel = 8, // 0x0008 * white fuel symbol
sym_horn = 9, // 0x0009 white horn symbol
sym_house = 10, // 0x000a * white house symbol
sym_knife = 11, // 0x000b * white knife & fork symbol
sym_light = 12, // 0x000c white light symbol
sym_mug = 13, // 0x000d * white mug symbol
sym_skull = 14, // 0x000e * white skull and crossbones symbol
sym_square_grn = 15, // 0x000f green square symbol
sym_square_red = 16, // 0x0010 red square symbol
sym_wbuoy = 17, // 0x0011 white buoy waypoint symbol
sym_wpt_dot = 18, // 0x0012 * waypoint dot
sym_wreck = 19, // 0x0013 white wreck symbol
sym_null = 20, // 0x0014 null symbol (transparent)
sym_mob = 21, // 0x0015 * man overboard symbol
//------------------------------------------------------
// Marine navaid symbols
//------------------------------------------------------
sym_buoy_ambr = 22, // 0x0016 amber map buoy symbol
sym_buoy_blck = 23, // 0x0017 black map buoy symbol
sym_buoy_blue = 24, // 0x0018 blue map buoy symbol
sym_buoy_grn = 25, // 0x0019 green map buoy symbol
sym_buoy_grn_red = 26, // 0x001a green/red map buoy symbol
sym_buoy_grn_wht = 27, // 0x001b green/white map buoy symbol
sym_buoy_orng = 28, // 0x001c orange map buoy symbol
sym_buoy_red = 29, // 0x001d red map buoy symbol
sym_buoy_red_grn = 30, // 0x001e red/green map buoy symbol
sym_buoy_red_wht = 31, // 0x001f red/white map buoy symbol
sym_buoy_violet = 32, // 0x0020 violet map buoy symbol
sym_buoy_wht = 33, // 0x0021 white map buoy symbol
sym_buoy_wht_grn = 34, // 0x0022 white/green map buoy symbol
sym_buoy_wht_red = 35, // 0x0023 white/red map buoy symbol
sym_dot = 36, // 0x0024 white dot symbol
sym_rbcn = 37, // 0x0025 radio beacon symbol
//------------------------------------------------------
// ... leave space for more navaids (up to 128 total)
//------------------------------------------------------
sym_boat_ramp = 150, // 0x0096 * boat ramp symbol
sym_camp = 151, // 0x0097 * campground symbol
sym_restrooms = 152, // 0x0098 * restrooms symbol
sym_showers = 153, // 0x0099 * shower symbol
sym_drinking_wtr = 154, // 0x009a * drinking water symbol
sym_phone = 155, // 0x009b * telephone symbol
sym_1st_aid = 156, // 0x009c * first aid symbol
sym_info = 157, // 0x009d * information symbol
sym_parking = 158, // 0x009e * parking symbol
sym_park = 159, // 0x009f * park symbol
sym_picnic = 160, // 0x00a0 * picnic symbol
sym_scenic = 161, // 0x00a1 * scenic area symbol
sym_skiing = 162, // 0x00a2 * skiing symbol
sym_swimming = 163, // 0x00a3 * swimming symbol
sym_dam = 164, // 0x00a4 * dam symbol
sym_controlled = 165, // 0x00a5 controlled area symbol
sym_danger = 166, // 0x00a6 danger symbol
sym_restricted = 167, // 0x00a7 restricted area symbol
sym_null_2 = 168, // 0x00a8 null symbol
sym_ball = 169, // 0x00a9 * ball symbol
sym_car = 170, // 0x00aa * car symbol
sym_deer = 171, // 0x00ab * deer symbol
sym_shpng_cart = 172, // 0x00ac * shopping cart symbol
sym_lodging = 173, // 0x00ad * lodging symbol
sym_mine = 174, // 0x00ae * mine symbol
//---------------------------------------------------------------
// Symbols for land (group 1...8192-16383...bits 15-13=001).
//---------------------------------------------------------------
sym_is_hwy = 8192, // 0x2000 interstate hwy symbol
sym_us_hwy = 8193, // 0x2001 us hwy symbol
sym_st_hwy = 8194, // 0x2002 state hwy symbol
sym_mi_mrkr = 8195, // 0x2003 mile marker symbol
sym_trcbck = 8196, // 0x2004 * TracBack (feet) symbol
sym_golf = 8197, // 0x2005 * golf symbol
sym_sml_cty = 8198, // 0x2006 * small city symbol
sym_med_cty = 8199, // 0x2007 * medium city symbol
sym_lrg_cty = 8200, // 0x2008 * large city symbol
sym_freeway = 8201, // 0x2009 intl freeway hwy symbol
sym_ntl_hwy = 8202, // 0x200a intl national hwy symbol
sym_cap_cty = 8203, // 0x200b capitol city symbol (star)
sym_amuse_pk = 8204, // 0x200c amusement park symbol
sym_bowling = 8205, // 0x200d bowling symbol
sym_car_rental = 8206, // 0x200e car rental symbol
sym_car_repair = 8207, // 0x200f car repair symbol
sym_fastfood = 8208, // 0x2010 fast food symbol
sym_fitness = 8209, // 0x2011 fitness symbol
sym_movie = 8210, // 0x2012 movie symbol
sym_museum = 8211, // 0x2013 museum symbol
sym_pharmacy = 8212, // 0x2014 pharmacy symbol
sym_pizza = 8213, // 0x2015 pizza symbol
sym_post_ofc = 8214, // 0x2016 post office symbol
sym_rv_park = 8215, // 0x2017 RV park symbol
sym_school = 8216, // 0x2018 school symbol
sym_stadium = 8217, // 0x2019 stadium symbol
sym_store = 8218, // 0x201a dept. store symbol
sym_zoo = 8219, // 0x201b zoo symbol
//---------------------------------------------------------------
// Symbols for aviation (group 2...16383-24575...bits 15-13=010).
//---------------------------------------------------------------
sym_airport = 16384, // 0x4000 * airport symbol
sym_int = 16385, // 0x4001 intersection symbol
sym_ndb = 16386, // 0x4002 non-directional beacon symbol
sym_vor = 16387, // 0x4003 VHF omni-range symbol
sym_heliport = 16388, // 0x4004 * heliport symbol
sym_private = 16389, // 0x4005 * private field symbol
sym_soft_fld = 16390, // 0x4006 * soft field symbol
sym_tall_tower = 16391, // 0x4007 * tall tower symbol
sym_short_tower = 16392, // 0x4008 * short tower symbol
sym_glider = 16393, // 0x4009 * glider symbol
sym_ultralight = 16394, // 0x400a * ultralight symbol
sym_parachute = 16395, // 0x400b * parachute symbol
sym_vortac = 16396, // 0x400c VOR/TACAN symbol
sym_vordme = 16397, // 0x400d VOR-DME symbol
sym_faf = 16398, // 0x400e first approach fix
sym_lom = 16399, // 0x400f localizer outer marker
sym_map = 16400, // 0x4010 missed approach point
sym_tacan = 16401, // 0x4011 TACAN symbol
sym_seaplane = 16402, // 0x4012 * Seaplane Base
};
//---------------------------------------------------------------
//D103_Wpt_Type symbols:
//---------------------------------------------------------------
//
// These 16 are from the GPS II+, 12, 12XL group, i.e D103 data record type
//
enum
{
smbl_dot = 0, // 0x00 dot symbol
smbl_house = 1, // 0x01 house symbol
smbl_gas = 2, // 0x02 gas symbol
smbl_car = 3, // 0x03 car symbol
smbl_fish = 4, // 0x04 fish symbol
smbl_boat = 5, // 0x05 boat symbol
smbl_anchor = 6, // 0x06 anchor symbol
smbl_wreck = 7, // 0x07 wreck symbol
smbl_exit = 8, // 0x08 exit symbol
smbl_skull = 9, // 0x09 skull symbol
smbl_flag = 10, // 0x0a flag symbol
smbl_camp = 11, // 0x0b camp symbol
smbl_duck = 12, // 0x0c duck symbol
smbl_deer = 13, // 0x0d deer symbol
smbl_buoy = 14, // 0x0e buoy symbol
smbl_back_track = 15 // 0x0f back track symbol
};
//=================================================================
// Garmin <-> Ozi symbols
#if 0
INT Garmin_to_Ozi[48][2] = {
{16384,'A'}, { 169,'B'}, { 6,'C'}, { 13,'D'}, { 150,'E'}, // 0 - 4
{ 151,'F'}, { 170,'G'}, { 8200,'H'}, { 8199,'I'}, { 8198,'J'}, // 5 - 9
{ 164,'K'}, { 14,'L'}, { 154,'M'}, { 7,'N'}, { 8,'O'}, // 10 - 14
{16393,'P'}, { 8197,'Q'}, {16388,'R'}, { 173,'S'}, { 171,'T'}, // 15 - 19
{ 157,'U'}, { 21,'V'}, { 0,'W'}, { 156,'X'}, {16395,'Y'}, // 20 - 24
{ 159,'Z'}, { 158,'['}, { 160,'\\'},{16389,']'}, { 10,'^'}, // 25 - 29
{ 11,'_'}, { 152,'`'}, { 161,'a'}, { 1,'b'}, {16402,'c'}, // 30 - 34
{ 19,'d'}, { 172,'e'}, {16392,'f'}, { 153,'g'}, { 162,'h'}, // 35 - 39
{16390,'i'}, { 163,'j'}, {16391,'k'}, { 155,'l'}, { 8196,'m'}, // 40 - 44
{16394,'n'}, { 18,'o'}, { 174,'p'} // 45 - 47
};
#endif
struct GARMINSYMBOL {
short Garmin;
BYTE giii;
char *Garminname;
short GM100;
short XL;
char OziG;
short SA;
char *SAname;
};
//=================================================================
//
// Garmin symbol numbers
//
struct GARMINSYMBOL const Garmin_Symbol_Table[] = {
//---------------------------------------------------------------
// Symbols for marine (group 0...0-8191...bits 15-13=000).
//---------------------------------------------------------------
// Garmin Garmin LEI 12XL OziG SA"
// Symbol # Name # # Ltr # SA Name
// ====== ============================= == === === == ===============
{ 0, 1, "white anchor", 25, 6, 22, 51, "Triangle Up" },
{ 1, 1, "white bell", 0, -1, 33, 18, "Education" },
{ 2, 0, "green diamond", -1, -1, -1, -1, "-" },
{ 3, 0, "red diamond", -1, -1, -1, -1, "-" },
{ 4, 0, "diver down flag 1", -1, -1, -1, -1, "-" },
{ 5, 0, "diver down flag 2", -1, -1, -1, -1, "-" },
{ 6, 1, "white dollar", 1, -1, 2, 7, "Bank" },
{ 7, 1, "white fish", 21, 4, 13, 20, "Fishing" },
{ 8, 1, "white fuel", 6, 2, 14, 21, "Fuel" },
{ 9, 0, "white horn", -1, -1, -1, -1, "-" },
{ 10, 1, "white house", 4, 1, 29, 25, "Home" },
{ 11, 1, "white knife & fork", 8, -1, 30, 44, "Restaurant" },
{ 12, 0, "white light", -1, -1, -1, -1, "-" },
{ 13, 1, "white mug", 15, -1, 3, 2, "Amusement" },
{ 14, 1, "white skull & crossbones", 20, 9, 11, 11, "Cemetery" },
{ 15, 0, "green square", -1, -1, -1, -1, "-" },
{ 16, 0, "red square", -1, -1, -1, -1, "-" },
{ 17, 0, "white buoy waypoint", 27, -1, -1, -1, "-" },
{ 18, 1, "waypoint dot", 3, 0, 46, 46, "Square" },
{ 19, 1, "white wreck", 24, 7, 35, 34, "One Way Right" },
{ 20, 0, "null symbol (transparent)", -1, -1, -1, -1, "-" },
{ 21, 1, "man overboard", 23, -1, 21, 47, "Star" },
//------------------------------------------------------
// Marine navaid symbols
//------------------------------------------------------
{ 22, 0, "amber map buoy", -1, -1, -1, -1, "-" },
{ 23, 0, "black map buoy", -1, -1, -1, -1, "-" },
{ 24, 0, "blue map buoy", -1, -1, -1, -1, "-" },
{ 25, 0, "green map buoy", -1, -1, -1, -1, "-" },
{ 26, 0, "green/red map buoy", -1, -1, -1, -1, "-" },
{ 27, 0, "green/white map buoy", -1, -1, -1, -1, "-" },
{ 28, 0, "orange map buoy", -1, -1, -1, -1, "-" },
{ 29, 0, "red map buoy", -1, -1, -1, -1, "-" },
{ 30, 0, "red/green map buoy", -1, -1, -1, -1, "-" },
{ 31, 0, "red/white map buoy", -1, -1, -1, -1, "-" },
{ 32, 0, "violet map buoy", -1, -1, -1, -1, "-" },
{ 33, 0, "white map buoy", -1, -1, -1, -1, "-" },
{ 34, 0, "white/green map buoy", -1, -1, -1, -1, "-" },
{ 35, 0, "white/red map buoy", -1, -1, -1, -1, "-" },
{ 36, 0, "white dot", 16, -1, -1, 24, "Historic Site" },
{ 37, 0, "radio beacon", -1, -1, -1, 55, "Church" },
//------------------------------------------------------
//... leave space for more navaids (up to 128 total)
//------------------------------------------------------
{ 150, 1, "boat ramp", 26, 5, 4, 9, "Boat Ramp" },
{ 151, 1, "campground", 13, 11, 5, 10, "Campground" },
{ 152, 1, "restrooms", 19, -1, 31, 23, "Government Building" },
{ 153, 1, "shower", 22, -1, 38, 56, "Police" },
{ 154, 1, "drinking water", -1, -1, 12, 3, "Arrow Down" },
{ 155, 1, "telephone", 7, -1, 43, 38, "Phone" },
{ 156, 1, "first aid", 2, 14, 23, 19, "Emergency" },
{ 157, 1, "information", 10, -1, 20, 27, "Information" },
{ 158, 1, "parking", -1, -1, 26, 37, "Parking" },
{ 159, 1, "park", 11, -1, 25, 36, "Park" },
{ 160, 1, "picnic", 14, -1, 27, 39, "Picnic" },
{ 161, 1, "scenic area", -1, -1, 32, 49, "Stop Sign" },
{ 162, 1, "skiing", -1, -1, 39, 17, "Doctor/Dentist" },
{ 163, 1, "swimming", -1, -1, 41, 8, "Beach" },
{ 164, 1, "dam", -1, -1, 10, 54, "Bridge" },
{ 165, 0, "controlled area", -1, -1, -1, 32, "One Way Down" },
{ 166, 0, "danger", -1, -1, -1, -1, "-" },
{ 167, 0, "restricted area", -1, -1, -1, -1, "-" },
{ 168, 0, "null", -1, -1, -1, -1, "-" },
{ 169, 1, "ball", -1, -1, 1, 45, "Sports" },
{ 170, 1, "car", 5, 3, 6, 15, "Delivery Stop" },
{ 171, 1, "deer", 17, 13, 19, 0, "Agricultural" },
{ 172, 1, "shopping cart", -1, -1, 36, -1, "-" },
{ 173, 1, "lodging", -1, -1, 18, 29, "Lodging" },
{ 174, 1, "mine", -1, -1, 47, 14, "Cross" },
{ 175, 2, "trail head", 27, -1, -1, 53, "Bike" },
{ 176, 2, "truck stop", -1, -1, -1, 41, "Power" },
{ 177, 1, "user exit", -1, 8, -1, -1, "-" },
{ 178, 1, "flag", -1, 10, -1, -1, "-" },
{ 179, 1, "circle_x", -1, 12, -1, -1, "-" },
//---------------------------------------------------------------
// Symbols for land (group 1...8192-16383...bits 15-13=001).
//---------------------------------------------------------------
{ 8192, 1, "interstate hwy", -1, -1, -1, 48, "State Capitol" },
{ 8193, 0, "us hwy", -1, -1, -1, -1, "-" },
{ 8194, 0, "state hwy", -1, -1, -1, -1, "-" },
{ 8195, 0, "mile marker", -1, -1, -1, -1, "-" },
{ 8196, 1, "TracBack (feet)", 18, 15, 44, 4, "Arrow Left" },
{ 8197, 1, "golf", -1, -1, 16, 22, "Golf Course" },
{ 8198, 1, "small city", -1, -1, 9, 12, "Circle" },
{ 8199, 1, "medium city", -1, -1, 8, 43, "Religious Cross" },
{ 8200, 1, "large city", -1, -1, 7, 42, "Religious Star" },
{ 8201, 0, "intl freeway hwy", -1, -1, -1, 28, "Library" },
{ 8202, 0, "intl national hwy", -1, -1, -1, -1, "-" },
{ 8203, 0, "capitol city (star)", -1, -1, -1, 31, "National Capitol" },
{ 8204, 0, "amusement park", -1, -1, -1, -1, "-" },
{ 8205, 0, "bowling", -1, -1, -1, -1, "-" },
{ 8206, 0, "car rental", -1, -1, -1, -1, "-" },
{ 8207, 0, "car repair", -1, -1, -1, -1, "-" },
{ 8208, 0, "fast food", -1, -1, -1, -1, "-" },
{ 8209, 0, "fitness", -1, -1, -1, -1, "-" },
{ 8210, 0, "movie", -1, -1, -1, -1, "-" },
{ 8211, 0, "museum", -1, -1, -1, -1, "-" },
{ 8212, 0, "pharmacy", -1, -1, -1, -1, "-" },
{ 8213, 0, "pizza", -1, -1, -1, -1, "-" },
{ 8214, 0, "post office", -1, -1, -1, 40, "Post Office" },
{ 8215, 0, "RV park", -1, -1, -1, -1, "-" },
{ 8216, 0, "school", -1, -1, -1, -1, "-" },
{ 8217, 0, "stadium", -1, -1, -1, -1, "-" },
{ 8218, 0, "dept. store", -1, -1, -1, -1, "-" },
{ 8219, 0, "zoo", -1, -1, -1, 52, "Zoo" },
//-------------------------------------------------------------
// Symbols for aviation (group 2...16383-24575...bits 15-13=010).
//---------------------------------------------------------------
{ 16384, 1, "airport", 9, -1, 0, 1, "Airport" },
{ 16385, 0, "intersection", -1, -1, -1, -1, "-" },
{ 16386, 0, "non-directional beacon", -1, -1, -1, -1, "-" },
{ 16387, 0, "VHF omni-range", -1, -1, -1, -1, "-" },
{ 16388, 1, "heliport", -1, -1, 17, 26, "Industrial" },
{ 16389, 1, "private field", -1, -1, 28, 13, "Construction" },
{ 16390, 1, "soft field", -1, -1, 40, 16, "Diamond" },
{ 16391, 1, "tall tower", -1, -1, 42, 6, "Arrow Up" },
{ 16392, 1, "short tower", 12, -1, 37, 30, "Mountain" },
{ 16393, 1, "glider", -1, -1, 15, 5, "Arrow Right" },
{ 16394, 1, "ultralight", -1, -1, 45, 35, "One Way Up" },
{ 16395, 1, "parachute", -1, -1, 24, 50, "Triangle Down" },
{ 16396, 0, "VOR/TACAN", -1, -1, -1, -1, "_" },
{ 16397, 0, "VOR-DME", -1, -1, -1, -1, "-" },
{ 16398, 0, "first approach fix", -1, -1, -1, -1, "-" },
{ 16399, 0, "localizer outer marker", -1, -1, -1, -1, "-" },
{ 16400, 0, "missed approach point", -1, -1, -1, -1, "-" },
{ 16401, 0, "TACAN", -1, -1, -1, -1, "-" },
{ 16402, 1, "Seaplane Base", -1, -1, 34, 33, "One Way Left" },
{ -1, 0, "Dummy", -1, -1, -1, -1, "Dummy" },
};
//
// Default Packet IDs
//
enum {
Pid_Ack_Byte = 6, // 0x06
Pid_Nak_Byte = 21, // 0x15
Pid_Product_Rget = 254, // 0xfe
Pid_Product_Data = 255 // 0xff
};
//=====================================================================
// L001 - Link Protocol 1
//
enum {
Pid_Command_data = 10, // 0x0a
Pid_Xfer_Cmplt = 12, // 0x0c
Pid_Date_Time_Data = 14, // 0x0e
Pid_Position_Data = 17, // 0x11
Pid_Prx_Wpt_Data = 19, // 0x13
Pid_Records = 27, // 0x1b
Pid_Rte_Hdr = 29, // 0x1d
Pid_Rte_Wpt_Data = 30, // 0x1e
Pid_Almanac_Data = 31, // 0x1f
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -