Subversion Repositories NaviCtrl

Compare Revisions

Ignore whitespace Rev 846 → Rev 847

/trunk/settings.c
104,7 → 104,8
{PID_POSITION_ACCURACY , "POS.ACCURACY \0" ,"Desired Accuracy of position in percent ", 0, 100, 100, 0, 255},
{PID_IO1_FUNCTION , "IO1_FUNCTION \0" ,"Function for IO1 input 9 = Parachute (license required) ", 0, 1, 0, 0, 255},
{PID_GPS_AUTOCONFIG , "GPSAUTOCONFIG \0" ,"GPS configmode (0 = off, 1 = on) ", 0, 1, 1, 0, 1},
{PID_BAUDRATE , "BAUDRATE \0" ,"Baudrate for the PC-UART (57600 = default) - License only ", 0, 57600, 57600, 1200, 57600}
{PID_YAW_WITHOUT_CF , "YAW_WITHOUT_CF \0" ,"Allows yawing in waypoint flight without carefree ", 0, 1, 0, 0, 1},
{PID_BAUDRATE , "BAUDRATE \0" ,"Baudrate for the PC-UART *100 (576 = default 57600) 2560=max", 0, 576, 576, 12, 2560}
};
 
 
/trunk/settings.h
26,7 → 26,8
PID_GPS_SYSTEM_CFG,
PID_GPS_QZSS_CONFIG,
PID_IO1_FUNCTION,
PID_BAUDRATE
PID_BAUDRATE,
PID_YAW_WITHOUT_CF
} ParamId_t;
 
void Settings_Init(void);
/trunk/spi_slave.c
109,7 → 109,6
s32 Kalman_MaxDrift = 5 * 16;
s32 Kalman_MaxFusion = 64;
s32 Kalman_Kompass = 32;
s32 ToFcGpsZ = 0;
u8 CompassCalState = 0;
u8 RequestConfigFromFC = 0;
u8 SendOemName = 0;
156,8 → 155,8
u8 CamCtrlCharacter =' ';
 
s16 NickServoValue;
s16 FromFC_ServoRollControl;
s16 FromFC_ServoNickControl;
s16 FromFC_ServoRollControl = 128;
s16 FromFC_ServoNickControl = 128;
 
//--------------------------------------------------------------
void SSP0_IRQHandler(void)
453,6 → 452,11
// if(CAM_Orientation.Azimuth != -1) ToFlightCtrl.Param.sInt[4] = (CAM_Orientation.Azimuth + (3*360) - (FC.FromFC_CompassOffset / 10 + GeoMagDec/10 + Parameter.OrientationAngle * 15)) % 360; // the FC uses the uncorrected comnpass value
if(CAM_Orientation.Azimuth != -1) ToFlightCtrl.Param.sInt[4] = (CAM_Orientation.Azimuth + (3*360) - (FC.FromFC_CompassOffset / 10 + GeoMagDec/10 + Parameter.CamOrientation * 15)) % 360; // the FC uses the uncorrected comnpass value
else CAM_Orientation.Azimuth = -1;
if(NC_GPS_ModeCharacter == 'W' && WP_Yaw_WithoutCF) CAM_Orientation.UpdateMask |= FORCE_AZIMUTH_ROTATION; // allows Yawing without CareFree (Yawing at Waypoint flight)
// ++++++++++++++++++++++++++++++++++++
// + update direction for simulation
if((CAM_Orientation.UpdateMask & FORCE_AZIMUTH_ROTATION) || ((CAM_Orientation.UpdateMask & CAM_UPDATE_AZIMUTH) && (NaviData.FCStatusFlags2 & FC_STATUS2_CAREFREE))) SimulatedDirection = CAM_Orientation.Azimuth;
// ++++++++++++++++++++++++++++++++++++
if(CAM_Orientation.UpdateMask & FORCE_AZIMUTH_ROTATION) ToFlightCtrl.Param.Byte[4] |= KM_BIT_YAW; // allows Yawing without CareFree (Yawing at Coming Home)
CAM_Orientation.UpdateMask &= ~(CAM_UPDATE_AZIMUTH | FORCE_AZIMUTH_ROTATION);
}
517,6 → 521,8
ToFlightCtrl.Param.Byte[15] = Partner.StatusFlags2;
ToFlightCtrl.Param.Byte[16] = Partner.StatusFlags3;
ToFlightCtrl.Param.Byte[17] = ToFcBaudrateIndex;
ToFlightCtrl.Param.Byte[18] = NaviData.WaypointIndex; // index of current waypoints running from 0 to WaypointNumber-1
ToFlightCtrl.Param.Byte[19] = NaviData.WaypointNumber; // number of stored waypoints
// if(AbsoluteFlyingAltitude > 255) ToFlightCtrl.Param.Byte[11] = 0; // then the limitation of the FC doesn't work
// else ToFlightCtrl.Param.Byte[11] = AbsoluteFlyingAltitude;
break;
524,9 → 530,9
ToFlightCtrl.Param.Byte[0] = EarthMagneticFieldFiltered/5;
ToFlightCtrl.Param.Byte[1] = EarthMagneticInclination;
ToFlightCtrl.Param.Byte[2] = EarthMagneticInclinationTheoretic;
ToFlightCtrl.Param.Byte[3] = 0;
ToFlightCtrl.Param.Byte[4] = NaviData.WaypointIndex; // index of current waypoints running from 0 to WaypointNumber-1
ToFlightCtrl.Param.Byte[5] = NaviData.WaypointNumber; // number of stored waypoints
//ToFlightCtrl.Param.Byte[3]
//ToFlightCtrl.Param.Byte[4]
//ToFlightCtrl.Param.Byte[5]
ToFlightCtrl.Param.Int[3] = NaviData.TargetPositionDeviation.Distance_dm / 10;
ToFlightCtrl.Param.Byte[8] = NaviData.TargetHoldTime; // time in s to stay at the given target, counts down to 0 if target has been reached
ToFlightCtrl.Param.Byte[9] = ToFC_MaxWpListIndex;
915,9 → 921,16
Parameter.User7 = FromFlightCtrl.Param.Byte[18];
Parameter.User8 = FromFlightCtrl.Param.Byte[19];
 
FromFC_ServoRollControl = FromFlightCtrl.Param.Byte[20];
FromFC_ServoNickControl = FromFlightCtrl.Param.Byte[21];
 
if((FC.RC_Quality > 100) || !(FC.StatusFlags3 & FC_STATUS3_NOT_CALIBRATED))
{
FromFC_ServoRollControl = FromFlightCtrl.Param.Byte[20];
FromFC_ServoNickControl = FromFlightCtrl.Param.Byte[21];
}
else
{
FromFC_ServoRollControl = 128; // Mittelstellung
FromFC_ServoNickControl = 128; // Mittelstellung
}
break;
case SPI_FCCMD_STICK2:
FC.StickGas = FromFlightCtrl.Param.sByte[0];
1005,8 → 1018,8
Parameter.GlobalConfig3 = FromFlightCtrl.Param.Byte[11];
break;
case SPI_FCCMD_SLOW3: // slow!
ServoParams.NickControl = FromFlightCtrl.Param.Byte[0];
ServoParams.RollControl = FromFlightCtrl.Param.Byte[1];
// ServoParams.NickControl = FromFlightCtrl.Param.Byte[0];
// ServoParams.RollControl = FromFlightCtrl.Param.Byte[1];
Parameter.DescendRange = FromFlightCtrl.Param.Byte[2];
Parameter.MaximumAltitude = FromFlightCtrl.Param.Byte[3];
ServoParams.CompInvert = FromFlightCtrl.Param.Byte[4];
/trunk/spi_slave.h
84,7 → 84,6
extern s32 Kalman_Kompass ;
extern s32 Kalman_MaxDrift;
extern s32 Kalman_MaxFusion;
extern s32 ToFcGpsZ;
extern s32 ToFC_Rotate_C, ToFC_Rotate_S;
extern s32 HeadFreeStartAngle,CompassDirectionAtMotorStart;
extern s16 FC_WP_EventChannel,LogFC_WP_EventChannel,FC_WP_EventChannel_Processed;
155,6 → 154,20
#define JETI_GPS_PACKET_ID2 0x02
#define HOTT_WPL_NAME 0x03
 
// bitcoding for EE_Parameter.ServoCompInvert
#define SERVO_NICK_INV 0x01
#define SERVO_ROLL_INV 0x02
#define SERVO_RELATIVE 0x04 // direct poti control or relative moving of the servo value
#define CH_DIRECTION_1 0x08
#define CH_DIRECTION_2 0x10
 
//CH Orientation ServoBits 0x08 0x10
// --> no change 0 0
// --> front to starting point 0 1
// --> rear to to starting point 1 0
//-> start orientation 1 1
 
 
typedef struct
{
u8 Command;
357,8 → 370,9
unsigned char SingleWpControlChannel;
unsigned char MenuKeyChannel;
unsigned char CamCtrlModeChannel;
unsigned char CamCtrlZoomChannel;
unsigned char reserved[32];
unsigned char CamCtrlZoomChannel;
unsigned char FailSafeAltitude;
unsigned char reserved[31];
//------------------------------------------------
unsigned char BitConfig; // (war Loop-Cfg) Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt
unsigned char ServoCompInvert; // // 0x01 = Nick, 0x02 = Roll, 0x04 = relative moving // WICHTIG!!! am Ende lassen
371,3 → 385,4
extern paramset_t EE_Parameter;
 
#endif //_SPI_SLAVE_H