WiP internal CRSF pulses
This commit is contained in:
committed by
Raphael Coeffic
parent
42508f4173
commit
5d240e4e48
@@ -70,26 +70,35 @@ uint8_t createCrossfireChannelsFrame(uint8_t * frame, int16_t * pulses)
|
||||
return buf - frame;
|
||||
}
|
||||
|
||||
void setupPulsesCrossfire()
|
||||
static void setupPulsesCrossfire(uint8_t idx, CrossfirePulsesData* p_data)
|
||||
{
|
||||
if (telemetryProtocol == PROTOCOL_TELEMETRY_CROSSFIRE) {
|
||||
uint8_t * pulses = extmodulePulsesData.crossfire.pulses;
|
||||
#if defined(LUA)
|
||||
if (outputTelemetryBuffer.destination == TELEMETRY_ENDPOINT_SPORT) {
|
||||
memcpy(pulses, outputTelemetryBuffer.data, outputTelemetryBuffer.size);
|
||||
extmodulePulsesData.crossfire.length = outputTelemetryBuffer.size;
|
||||
outputTelemetryBuffer.reset();
|
||||
}
|
||||
else
|
||||
if (outputTelemetryBuffer.destination == TELEMETRY_ENDPOINT_SPORT) {
|
||||
memcpy(p_data->pulses, outputTelemetryBuffer.data,
|
||||
outputTelemetryBuffer.size);
|
||||
p_data->length = outputTelemetryBuffer.size;
|
||||
outputTelemetryBuffer.reset();
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
if (moduleState[EXTERNAL_MODULE].counter == CRSF_FRAME_MODELID) {
|
||||
extmodulePulsesData.crossfire.length = createCrossfireModelIDFrame(pulses);
|
||||
moduleState[EXTERNAL_MODULE].counter = CRSF_FRAME_MODELID_SENT;
|
||||
}
|
||||
else {
|
||||
extmodulePulsesData.crossfire.length = createCrossfireChannelsFrame(pulses, &channelOutputs[g_model.moduleData[EXTERNAL_MODULE].channelsStart]);
|
||||
}
|
||||
{
|
||||
if (moduleState[idx].counter == CRSF_FRAME_MODELID) {
|
||||
p_data->length = createCrossfireModelIDFrame(p_data->pulses);
|
||||
moduleState[idx].counter = CRSF_FRAME_MODELID_SENT;
|
||||
} else {
|
||||
p_data->length = createCrossfireChannelsFrame(
|
||||
p_data->pulses,
|
||||
&channelOutputs[g_model.moduleData[idx].channelsStart]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void setupPulsesCrossfire(uint8_t idx)
|
||||
{
|
||||
if (idx == INTERNAL_MODULE) {
|
||||
auto* p_data = &intmodulePulsesData.crossfire;
|
||||
setupPulsesCrossfire(idx, p_data);
|
||||
} else if (telemetryProtocol == PROTOCOL_TELEMETRY_CROSSFIRE) {
|
||||
auto* p_data = &extmodulePulsesData.crossfire;
|
||||
setupPulsesCrossfire(idx, p_data);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user