/Transportables_Koptertool/PKT/branches/branch_FollowMeStep2Merge/eeprom/eeprom.c |
---|
33,6 → 33,9 |
//############################################################################ |
//# HISTORY eeprom.c |
//# |
//# 14.10.2015 Starter |
//# - chg: rename FM_Azimuth and FM_Distance to FM_Offest_lat and FM_Offset_long |
//# |
//# 03.08.2015 CB |
//# - chg: Obsolete Parameter geändert und für FollowMe verwendet, EEprom Version bleibt gleich |
//# Parameter FM_Refresh in FM_Azimuth geändert |
666,8 → 669,8 |
Config.PKT_Baudrate = Baud_57600; // Baudrate für BT und Wi232 |
Config.PKT_Accutyp = true; // verwendeter Akkutyp (true=Lipo, false=LiON) |
Config.Lipo_UOffset = 10000; // Offset für PKT-Lipomessung |
Config.FM_Azimuth = 0; // FollowMe Azimuth |
Config.FM_Distance = 0; // FollowMe Distance |
Config.FM_Offest_Latitude = 0; // FollowMe Azimuth |
Config.FM_Offset_Longitude = 0; // FollowMe Distance |
Config.FM_Speed = 30; // FollowMe Speed in m/s *0.1 |
Config.FM_Radius = 5; // Waypoint Tolerance Radius in meter |
Config.HWSound = 0; // Hardware Sounderweiterung an PD7 |
/Transportables_Koptertool/PKT/branches/branch_FollowMeStep2Merge/eeprom/eeprom.h |
---|
33,6 → 33,9 |
//############################################################################ |
//# HISTORY eeprom.h |
//# |
//# 14.10.2015 Starter |
//# - chg: rename FM_Azimuth and FM_Distance to FM_Offest_lat und FM_Offset_long |
//# |
//# 03.08.2015 CB |
//# - chg: Obsolete Parameter geändert und für FollowMe verwendet, EEprom Version bleibt gleich |
//# Parameter FM_Refresh in FM_Azimuth geändert |
258,7 → 261,7 |
uint8_t OSD_ScreenMode; // Variante des OSD-Screen |
uint8_t OSD_LipoBar; // Bargraphanzeige für MK Lipo |
uint8_t PKT_Baudrate; // Baudrate für BT und Wi232 |
int16_t FM_Azimuth; // Azimuth für FollowMe 4.8.2015 CB |
int16_t FM_Offest_Latitude; // Azimuth für FollowMe 4.8.2015 CB |
uint16_t FM_Speed; // FollowMe Speed in m/s *0.1 |
uint16_t FM_Radius; // Waypoint Tolerance Radius in meter |
uint8_t HWSound; // Hardware Sounderweiterung an PD7 |
266,7 → 269,7 |
uint8_t Volume; // Lautstärke |
servo_t servo[2]; // Tracking: |
uint8_t sIdxSteps; // Tracking: |
uint16_t FM_Distance; // Distance für FollowMe 4.8.2015 CB |
int16_t FM_Offset_Longitude; // Distance für FollowMe 4.8.2015 CB |
uint8_t servo_frame; // Tracking: |
uint8_t single_step; // Tracking: |
uint8_t repeat; // Tracking: |
/Transportables_Koptertool/PKT/branches/branch_FollowMeStep2Merge/followme/followme.c |
---|
37,9 → 37,10 |
//# HISTORY followme.c |
//# |
//# |
//# 14.10.2015 Starter |
//# - Added Offset to FollowMe |
//# - Stuff in FollowMeStep2 only for debug! |
//# |
//# |
//# |
//# 22.09.2015 Starter |
//# - FollowMeStep2 erweitert mit Kreisberechnung und test auf PKT |
//# - PKT-Pos von lat lon auf latitude und longitude umbenannt |
208,8 → 209,9 |
Point_t FollowMe; |
uint8_t mktimeout = false; |
nmeaPOS NMEApos; |
nmeaPOS NMEAtarget; |
GPS_PosDev_t targetdev; |
494,13 → 496,17 |
//Config.FM_Refresh |
// FollowMeStep2 |
followMeOffset.latitude = 2000; |
followMeOffset.longitude = 2000; |
followme_add_offset(&NMEA, &NMEA, &followMeOffset); |
followMeOffset.latitude = Config.FM_Offest_Latitude; |
followMeOffset.longitude = Config.FM_Offset_Longitude; |
NMEApos.latitude = NMEA.Latitude; |
NMEApos.longitude = NMEA.Longitude; |
followme_add_offset(&NMEApos, &NMEAtarget, &followMeOffset); |
FollowMe.Position.Status = NEWDATA; |
FollowMe.Position.Longitude = NMEA.Longitude; |
FollowMe.Position.Latitude = NMEA.Latitude; |
FollowMe.Position.Longitude = NMEAtarget.longitude; |
FollowMe.Position.Latitude = NMEAtarget.latitude; |
FollowMe.Position.Altitude = 1; // 20.7.2015 CB |
// FollowMe.Position.Altitude = NMEA.Altitude; // ist das wirklich ok? NEIN C.B. |
640,11 → 646,11 |
writex_gpspos( 1, 2, NMEApos.latitude, MNORMAL, 0,0 ); // GPS-Maus: Latitude |
writex_gpspos(10, 2, NMEApos.longitude, MNORMAL, 0,0 ); // GPS-Maus: Longitude |
followme_calculate_offset(Config.FM_Distance, Config.FM_Azimuth, &followMeOffset); |
followme_calculate_offset(Config.FM_Offset_Longitude, Config.FM_Offest_Latitude, &followMeOffset); |
#ifdef DEBUG |
writex_gpspos( 1, 6, (int32_t)Config.FM_Azimuth*100, MNORMAL, 0, 0 ); |
writex_gpspos( 10, 6, (int32_t)Config.FM_Distance*100, MNORMAL, 0, 0 ); |
writex_gpspos( 1, 6, (int32_t)Config.FM_Offest_Latitude*100, MNORMAL, 0, 0 ); |
writex_gpspos( 10, 6, (int32_t)Config.FM_Offset_Longitude*100, MNORMAL, 0, 0 ); |
writex_gpspos( 1, 7, (int32_t)followMeOffset.latitude*100, MNORMAL, 0, 0 ); |
writex_gpspos( 10, 7, (int32_t)followMeOffset.longitude*100, MNORMAL, 0, 0 ); |
#endif |
673,12 → 679,12 |
if( get_key_press(1 << KEY_MINUS) ) |
{ |
Config.FM_Azimuth -= 10; |
Config.FM_Offest_Latitude -= 10; |
redraw = true; |
} |
if( get_key_press(1 << KEY_PLUS) ) |
{ |
Config.FM_Azimuth += 10; |
Config.FM_Offest_Latitude += 10; |
redraw = true; |
} |
} |
/Transportables_Koptertool/PKT/branches/branch_FollowMeStep2Merge/main.h |
---|
34,6 → 34,10 |
//############################################################################ |
//# HISTORY main.h |
//# |
//# 14.10.2015 Starter |
//# - Offset for FollowMe jetzt activ in Version 3.85h |
//# - FollowMeStep2 wird nicht mehr benötigt, nur zu Debugzwecken |
//# |
//# 20.09.2015 Starter |
//# - FollowMeStep2 wird jetzt nurnoch von USE_FOLLOWME_STEP2 aktiviert |
//# |
291,7 → 295,7 |
#define _MAIN_H |
// Softwareversion des PKT |
#define PKTSWVersion "3.85_g" // PKT Version |
#define PKTSWVersion "3.85_h" // PKT Version |
//######################################################################### |
342,7 → 346,7 |
//- Module fuer spezielle Benutzergruppen |
//--------------------------------------------- |
#define USE_FOLLOWME // FollowMe Funktionen (ca. 3 Kbyte) |
#define USE_FOLLOWME_STEP2 // FollowMe Funktionen Abstand und Winkel einstellbar |
//#define USE_FOLLOWME_STEP2 // FollowMe Funktionen Abstand und Winkel einstellbar |
//#define USE_JOYSTICK // Joystick Support, benoetigt spezielle Hardware (ca. 4.1 KByte) |
#define USE_WLAN // WLAN WiFly Modul an SV2 (ca. 6 KByte)) |
#define USE_SV2MODULE_BLE // Bluetooth 4 Low Energy Modul - externes Modul an SV2 (RedBearLab BLE Mini) (ca. 200 Bytes) |
/Transportables_Koptertool/PKT/branches/branch_FollowMeStep2Merge/menu.c |
---|
33,6 → 33,8 |
//############################################################################ |
//# HISTORY menu.c |
//# 14.10.2015 Starter |
//# fix: -FollowMeStep2 Debug wird nur noch bei FollowMeStep2 angezeigt |
//# |
//# 03.08.2015 Cebra |
//# - add: Menü _DefMenu_Main_NO erweitert für GPS Test , mit #define schaltbar |
713,7 → 715,7 |
//-------------------------------------------------------------- |
void _DefMenu_Main_NO( void ) |
{ |
#ifdef USE_FOLLOWME |
#ifdef USE_FOLLOWME_STEP2 |
MenuCtrl_PushML2_P( ID_DEBUG_GPS , MENU_ITEM, &Debug_GPS , PKTGPS_de , PKTGPS_en ); |
#endif |
/Transportables_Koptertool/PKT/branches/branch_FollowMeStep2Merge/setup/setup.c |
---|
34,6 → 34,10 |
//############################################################################ |
//# HISTORY setup.c |
//# |
//# 14.10.2015 Starter |
//# - FollowMe neu mit Offset |
//# - enum Show_int3 fehlte für das Anzeigen von Setupwerten. Nun ergänzt |
//# - Umbenennen der Pareameter Distance und Azimuth in Offset_lat und Offset_long |
//# |
//# 03.08.2015 CB |
//# - add: FollowMe Setup um Distance und Azimuth erweitert |
598,22 → 602,23 |
//----------------------------- |
// Setup_FollowMe() |
//----------------------------- |
#define FME_DISTANCE 1 |
#define FME_SPEED 2 |
#define FME_RADIUS 3 |
#define FME_AZIMUTH 4 |
#define FME_SPEED 1 |
#define FME_RADIUS 2 |
static const char FME_DISTANCE_de[] PROGMEM = "FollowMe Abstand"; |
static const char FME_DISTANCE_en[] PROGMEM = "followMe distance"; |
#define FME_OFFSET_LAT 3 |
#define FME_OFFSET_LONG 4 |
static const char FME_AZIMUTH_de[] PROGMEM = "FollowMe Winkel"; |
static const char FME_AZIMUTH_en[] PROGMEM = "followMe angle"; |
// FOLLOW_ME Step 2 |
static const char FME_OFFSET_LATITUDE_de[] PROGMEM = "Offset Lat"; |
static const char FME_OFFSET_LATITUDE_en[] PROGMEM = "offset lat"; |
static const char FME_OFFSET_LONGITUDE_de[] PROGMEM = "Offset Long"; |
static const char FME_OFFSET_LONGITUDE_en[] PROGMEM = "offset long"; |
static const char FME_SPEED_de[] PROGMEM = "FollowMe Speed"; |
#define FME_SPEED_en FME_SPEED_de |
static const char FME_SPEED_de[] PROGMEM = "Speed"; |
#define FME_SPEED_en FME_SPEED_de |
static const char FME_RADIUS_de[] PROGMEM = "Toleranz Radius"; |
static const char FME_RADIUS_en[] PROGMEM = "tolerance radius"; |
static const char FME_RADIUS_de[] PROGMEM = "Toleranz Radius"; |
static const char FME_RADIUS_en[] PROGMEM = "tolerance radius"; |
887,15 → 892,15 |
case Show_uint3: pstr = buffered_sprintf_P( PSTR("%3d"), Value ); |
break; |
case Show_uint5: pstr = buffered_sprintf_P( PSTR("%5d"), Value ); |
break; |
case Show_int3: pstr = buffered_sprintf_P( PSTR("%3d"), Value ); |
break; |
case Show_uint10th: pstr = buffered_sprintf_P( PSTR("%2.1d"), Value ); |
break; |
case MK_Connection: switch( Value ) |
{ |
case 0: pStr = PSTR("Wi.232"); break; |
913,7 → 918,6 |
} |
break; |
case GPSMOUSE: switch( Value ) |
{ |
case GPS_Bluetoothmouse1: pStr = PSTR("BT-Mouse"); break; |
922,7 → 926,6 |
} |
break; |
case Wi_Netmode: switch( Value ) |
{ |
case false: pStr = strGet(SLAVE); break; |
930,8 → 933,6 |
} |
break; |
case OnOff: switch( Value ) |
{ |
case 0: pStr = strGet(OFF); break; |
939,7 → 940,6 |
} |
break; |
case YesNo: switch( Value ) |
{ |
case 0: pStr = strGet(NOO); break; |
947,7 → 947,6 |
} |
break; |
case WlanMode: switch( Value ) |
{ |
case 0: pStr = strGet(OFF); break; |
956,8 → 955,6 |
} |
break; |
case NormRev: switch( Value ) // wird noch von stick/stick_setup.c verwendet |
{ |
case 0 : pStr = strGet(NORMAL); break; |
965,7 → 962,6 |
} |
break; |
case Kontrast: if( Value >= max ) |
{ |
Value = max; |
983,11 → 979,9 |
pstr = buffered_sprintf_P( PSTR("%3d"), Value ); |
break; |
case Baudrate: pstr = buffered_sprintf_P( PSTR("%ld"), Baud_to_uint32(Value) ); |
break; |
case Language: switch( Value ) |
{ |
case 0: pStr = strGet(DEUTSCH); break; |
995,7 → 989,6 |
} |
break; |
case Sticktype: switch( Value ) |
{ |
case false: pStr = strGet(POTI); break; |
1826,11 → 1819,9 |
//MenuCtrl_PushML2_P( FME_REFRESH , MENU_ITEM, NOFUNC , FME_REFRESH_de , FME_REFRESH_en ); |
MenuCtrl_PushML2_P( FME_OFFSET_LAT , MENU_ITEM, NOFUNC, FME_OFFSET_LATITUDE_de , FME_OFFSET_LATITUDE_en ); |
MenuCtrl_PushML2_P( FME_OFFSET_LONG, MENU_ITEM, NOFUNC, FME_OFFSET_LONGITUDE_de, FME_OFFSET_LONGITUDE_en ); |
#ifdef USE_FOLLOWME_STEP2 |
MenuCtrl_PushML2_P( FME_DISTANCE, MENU_ITEM, NOFUNC, FME_DISTANCE_de, FME_DISTANCE_en ); |
MenuCtrl_PushML2_P( FME_AZIMUTH , MENU_ITEM, NOFUNC, FME_AZIMUTH_de , FME_AZIMUTH_en ); |
#endif |
MenuCtrl_PushML2_P( FME_SPEED , MENU_ITEM, NOFUNC, FME_SPEED_de , FME_SPEED_en ); |
MenuCtrl_PushML2_P( FME_RADIUS , MENU_ITEM, NOFUNC, FME_RADIUS_de , FME_RADIUS_en ); |
MenuCtrl_PushSeparator(); // MENUE TRENNLINIE |
1849,12 → 1840,13 |
//if( itemid == FME_REFRESH ) { Config.FM_Refresh = Edit_generic( Config.FM_Refresh ,250,60000, Show_uint3,1 ,NULL,NULL); } |
// FollowMeStep2: |
if( itemid == FME_DISTANCE) { Config.FM_Distance= Edit_generic( Config.FM_Distance , 0, 100, Show_uint3,1 ,strGet(STR_METERS),NULL); } |
if( itemid == FME_AZIMUTH ) { Config.FM_Azimuth = Edit_generic( Config.FM_Azimuth , 0, 360, Show_uint3,1 ,PSTR("Grad"),NULL); } |
// FollowMeStep2: Eingabe in m, intern als mm behandeln |
if( itemid == FME_OFFSET_LAT ) { Config.FM_Offest_Latitude = Edit_generic( Config.FM_Offest_Latitude / 1000, -30, 30, Show_int3, 1, strGet(STR_METERS), NULL) * 1000; } |
if( itemid == FME_OFFSET_LONG) { Config.FM_Offset_Longitude = Edit_generic( Config.FM_Offset_Longitude / 1000, -30, 30, Show_int3, 1, strGet(STR_METERS), NULL) * 1000; } |
// FollowMe: |
if( itemid == FME_SPEED ) { Config.FM_Speed = Edit_generic( Config.FM_Speed , 0, 100, Show_uint3,1 ,PSTR("0.1 m/s") ,NULL); } |
if( itemid == FME_RADIUS ) { Config.FM_Radius = Edit_generic( Config.FM_Radius , 1, 20, Show_uint3,1 ,strGet(STR_METERS),NULL); } |
if( itemid == FME_SPEED ) { Config.FM_Speed = Edit_generic( Config.FM_Speed , 0, 100, Show_uint3, 1, PSTR("0.1 m/s") , NULL); } |
if( itemid == FME_RADIUS ) { Config.FM_Radius = Edit_generic( Config.FM_Radius, 1, 20, Show_uint3, 1, strGet(STR_METERS), NULL); } |
//-------------------- |
// GPS_DATA |