diff --git a/Libraries/aprs/aprs.c b/Libraries/aprs/aprs.c new file mode 100644 --- /dev/null +++ b/Libraries/aprs/aprs.c @@ -0,0 +1,91 @@ +/* + * FeatherHAB + * + * This file is part of FeatherHAB. + * + * FeatherHab is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * FeatherHab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with FeatherHAB. If not, see . + * + * Ethan Zonca + * + */ + +#include +#include + +#include "config.h" +#include "aprs.h" +//#include "gps.h" +//#include "adc.h" +#include "ax25.h" + + +int32_t meters_to_feet(int32_t m) +{ + // 10000 ft = 3048 m + return (float)m / 0.3048; +} + +void aprs_send(void) +{ + struct s_address addresses[] = { + {D_CALLSIGN, D_CALLSIGN_ID}, // Destination callsign + {"", S_CALLSIGN_ID}, // Source callsign (-11 = balloon, -9 = car) + //{S_CALLSIGN, S_CALLSIGN_ID}, +#ifdef DIGI_PATH1 + {DIGI_PATH1, DIGI_PATH1_TTL}, // Digi1 (first digi in the chain) +#endif +#ifdef DIGI_PATH2 + {DIGI_PATH2, DIGI_PATH2_TTL}, // Digi2 (second digi in the chain) +#endif + }; + + strncpy(addresses[1].callsign, S_CALLSIGN, 7); + + // emz: modified this to get the size of the first address rather than the size of the struct itself, which fails + ax25_send_header(addresses, sizeof(addresses)/sizeof(addresses[0])); + ax25_send_byte(','); + + //ax25_send_string(get_latitude()); + ax25_send_string("42.153749"); + ax25_send_byte(','); + //ax25_send_string(get_longitude()); + ax25_send_string("53.234823"); + ax25_send_byte(','); + + //ax25_send_string(get_speedKnots()); + ax25_send_string("33"); + ax25_send_byte(','); + + //ax25_send_string(get_gpsaltitude()); + ax25_send_string("3847"); + ax25_send_byte(','); + + //ax25_send_string(get_pressure()); + ax25_send_string("8383.00"); + ax25_send_byte(','); + + //ax25_send_string(get_temperature()); + ax25_send_string("25.3"); + ax25_send_byte(','); + + //ax25_send_string(get_temperature()); + //ax25_send_string(get_hdop()); + //ax25_send_byte(','); + + + ax25_send_footer(); + ax25_flush_frame(); +} + +// vim:softtabstop=4 shiftwidth=4 expandtab