Subversion Repositories Projects

Compare Revisions

Ignore whitespace Rev 2213 → Rev 2214

/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