/* * 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 "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(','); char tmpBuffer[128]; tmpBuffer[0] = ','; tmpBuffer[1] = '\0'; //ax25_send_string(get_latitude()); snprintf(tmpBuffer, 128, "%g,", gps_getdata()->latitude / 10000000.0); //ax25_send_string("42.153749"); ax25_send_string(tmpBuffer); 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()); snprintf(tmpBuffer, 128, "%u,", gps_getdata()->pdop); ax25_send_string(tmpBuffer); //ax25_send_string(get_hdop()); //ax25_send_byte(','); ax25_send_footer(); ax25_flush_frame(); } // vim:softtabstop=4 shiftwidth=4 expandtab