/trunk/main.h |
---|
7,7 → 7,7 |
#define VERSION_MAJOR 0 |
#define VERSION_MINOR 23 |
#define VERSION_PATCH 12 |
#define VERSION_PATCH 14 |
// 0 = A |
// 1 = B |
// 2 = C |
21,6 → 21,8 |
// 10 = k |
// 11 = L |
// 12 = M |
// 13 = N |
// 14 = o |
#define VERSION_SERIAL_MAJOR 11 |
#define VERSION_SERIAL_MINOR 0 |
/trunk/params.c |
---|
12,13 → 12,14 |
for(i=0; i<256; i++) |
{ |
NCParamState[i] = NCPARAM_STATE_UNDEFINED; |
NCParams[i] = 0; |
} |
NCParams[NCPARAMS_GPS_TARGETSPEED] = 50; // 5.0 m/s |
NCParams[NCPARAMS_NEW_COMPASS_DIRECTION_SETPOINT] = -1; |
NCParams[NCPARAMS_ALTITUDE_RATE] = -1; |
NCParams[NCPARAMS_ALTITUDE_RATE] = 0; |
} |
u8 NCParams_SetValue(u8 id, s16* pvalue) |
u8 NCParams_SetValue(u8 id, s16 *pvalue) |
{ |
NCParams[id] = *pvalue; |
NCParamState[id] = NCRARAM_STATE_VALID; |
37,15 → 38,26 |
default: |
break; |
} |
return NCParamState[id]; |
return(NCParamState[id]); |
} |
u8 NCParams_GetValue(u8 id, s16* pvalue) |
void NCParams_ClearValue(u8 id) |
{ |
NCParamState[id] = NCPARAM_STATE_UNDEFINED; |
} |
u8 NCParams_GetValue(u8 id, s16 *pvalue) |
{ |
if(pvalue == 0) return 0; |
if(NCParamState[id] == NCRARAM_STATE_VALID) |
{ |
*pvalue = NCParams[id]; |
} |
return NCParamState[id]; |
return(NCParamState[id]); |
} |
s16 NCParams_GetValue_NoCheck(u8 id) |
{ |
return(NCParams[id]); |
} |
/trunk/params.h |
---|
12,7 → 12,9 |
#define NCRARAM_STATE_VALID 1 |
extern void NCParams_Init(); |
extern u8 NCParams_SetValue(u8 id, s16* pvalue); |
extern u8 NCParams_GetValue(u8 id, s16* pvalue); |
extern u8 NCParams_SetValue(u8 id, s16 *pvalue); |
extern u8 NCParams_GetValue(u8 id, s16 *pvalue); |
extern void NCParams_ClearValue(u8 id); |
extern s16 NCParams_GetValue_NoCheck(u8 id); |
#endif // _PARAMS_H |
/trunk/spi_slave.c |
---|
105,6 → 105,7 |
s16 FC_WP_EventChannel = 0; // gibt einen Schaltkanal an die FC weiter, wenn der Wegpunkt erreicht wurde |
u32 ToFC_AltitudeRate = 0; |
s32 ToFC_AltitudeSetpoint = 0; |
u8 FromFC_VarioCharacter = ' '; |
SPI_Version_t FC_Version; |
341,18 → 342,21 |
ToFlightCtrl.Param.Byte[8] = (s8)(FC_WP_EventChannel - 110); |
{ |
s16 tmp; |
if(NCRARAM_STATE_VALID == NCParams_GetValue(NCPARAMS_ALTITUDE_RATE, &tmp)) |
// if(NCRARAM_STATE_VALID == NCParams_GetValue(NCPARAMS_ALTITUDE_RATE, &tmp)) |
if(NCRARAM_STATE_VALID == NCParams_GetValue(3, &tmp)) |
{ |
ToFlightCtrl.Param.Byte[9] = (u8)tmp; |
} |
else |
{ |
ToFlightCtrl.Param.Byte[9] = (u8)ToFC_AltitudeRate; |
ToFlightCtrl.Param.Byte[9] = (u8) ToFC_AltitudeRate; |
} |
if(NCRARAM_STATE_VALID != NCParams_GetValue(NCPARAMS_ALTITUDE_SETPOINT, &(ToFlightCtrl.Param.sInt[5]))) |
{ |
ToFlightCtrl.Param.sInt[5] = (s16) ToFC_AltitudeSetpoint; |
} |
DebugOut.Analog[25] = (s16)ToFlightCtrl.Param.Byte[9]; |
DebugOut.Analog[20] = ToFlightCtrl.Param.sInt[5]; |
} |
break; |
default: |
406,6 → 410,12 |
FC.BAT_UsedCapacity = FromFlightCtrl.Param.Int[1]; |
FC.BAT_Voltage = FromFlightCtrl.Param.Byte[4]; |
Parameter.LowVoltageWarning = FromFlightCtrl.Param.Byte[5]; |
FromFC_VarioCharacter = FromFlightCtrl.Param.Byte[6]; |
if(FromFC_VarioCharacter == '+' || FromFC_VarioCharacter == '-') // manual setpoint clears the NC-Parameter command |
{ |
NCParams_ClearValue(NCPARAMS_ALTITUDE_RATE); |
} |
NaviData.UBat = FC.BAT_Voltage; |
NaviData.Current = FC.BAT_Current; |
NaviData.UsedCapacity = FC.BAT_UsedCapacity; |
/trunk/uart1.c |
---|
632,8 → 632,9 |
if(UART1_Request_Parameter && (UART1_tx_buffer.Locked == FALSE)) |
{ |
s16 ParamValue; |
NCParams_GetValue(UART1_Request_ParameterId, &ParamValue); |
s16 ParamValue; |
ParamValue = NCParams_GetValue_NoCheck(UART1_Request_ParameterId); |
//NCParams_GetValue(UART1_Request_ParameterId, &ParamValue); |
//sprintf(text, "\r\nId=%d, value = %d\r\n", UART1_Request_ParameterId, ParamValue); |
//UART1_PutString(text); |
MKProtocol_CreateSerialFrame(&UART1_tx_buffer, 'J', NC_ADDRESS, 2, &UART1_Request_ParameterId, sizeof(UART1_Request_ParameterId), &ParamValue, sizeof(ParamValue)); // answer the param request |