1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-26 09:45:21 +03:00

Options mostly working (pinmap is ok), TRACES still included

This commit is contained in:
3djc 2019-03-11 09:16:04 +01:00
parent a44dad9bb2
commit bc4248c4ff
3 changed files with 24 additions and 17 deletions

View file

@ -1957,17 +1957,22 @@ void menuModelReceiverOptions(event_t event)
case ITEM_RECEIVER_TELEMETRY: case ITEM_RECEIVER_TELEMETRY:
previousValue = reusableBuffer.receiverSetup.telemetryEnabled; previousValue = reusableBuffer.receiverSetup.telemetryEnabled;
reusableBuffer.receiverSetup.telemetryEnabled = editCheckBox(reusableBuffer.receiverSetup.telemetryEnabled, RECEIVER_OPTIONS_2ND_COLUMN, y, reusableBuffer.receiverSetup.telemetryEnabled = editCheckBox(reusableBuffer.receiverSetup.telemetryEnabled, RECEIVER_OPTIONS_2ND_COLUMN, y,
"Telemetry", attr, event) & PXX2_RECV_OPTION_MASK_TELEMETRY; "Telemetry", attr, event);
if (previousValue != reusableBuffer.receiverSetup.telemetryEnabled) if (previousValue != reusableBuffer.receiverSetup.telemetryEnabled) {
changed = true; changed = true;
TRACE("TELEM CHANGED (%d , %d)", previousValue, reusableBuffer.receiverSetup.telemetryEnabled);
}
break; break;
case ITEM_RECEIVER_PWM_RATE: case ITEM_RECEIVER_PWM_RATE:
previousValue = reusableBuffer.receiverSetup.pwmRate; previousValue = reusableBuffer.receiverSetup.pwmRate;
reusableBuffer.receiverSetup.pwmRate = editCheckBox(reusableBuffer.receiverSetup.pwmRate, RECEIVER_OPTIONS_2ND_COLUMN, y, "9ms PWM", attr, event) & PXX2_RECV_OPTION_MASK_FASTPWM; reusableBuffer.receiverSetup.pwmRate = editCheckBox(reusableBuffer.receiverSetup.pwmRate, RECEIVER_OPTIONS_2ND_COLUMN, y, "9ms PWM", attr, event);
if (previousValue != reusableBuffer.receiverSetup.telemetryEnabled) TRACE("pwmRate : %d", reusableBuffer.receiverSetup.pwmRate);
if (previousValue != reusableBuffer.receiverSetup.pwmRate) {
changed = true; changed = true;
TRACE("pwmRate CHANGED (%d , %d)", previousValue, reusableBuffer.receiverSetup.pwmRate);
}
break; break;
default: default:
@ -2001,6 +2006,7 @@ void menuModelReceiverOptions(event_t event)
if (changed) { if (changed) {
reusableBuffer.receiverSetup.timeout = 0; reusableBuffer.receiverSetup.timeout = 0;
moduleSettings[reusableBuffer.receiverSetup.moduleIdx].mode = MODULE_MODE_RECEIVER_SET_SETTINGS; moduleSettings[reusableBuffer.receiverSetup.moduleIdx].mode = MODULE_MODE_RECEIVER_SET_SETTINGS;
TRACE("Change detected");
} }
} }
else { else {

View file

@ -147,6 +147,7 @@ void Pxx2Pulses::setupRegisterFrame(uint8_t module)
void Pxx2Pulses::setupReceiverSetSettingsFrame(uint8_t module) void Pxx2Pulses::setupReceiverSetSettingsFrame(uint8_t module)
{ {
TRACE("Sending SET frame");
addFrameType(PXX2_TYPE_C_MODULE, PXX2_TYPE_ID_RX_SETTINGS); addFrameType(PXX2_TYPE_C_MODULE, PXX2_TYPE_ID_RX_SETTINGS);
Pxx2Transport::addByte(0x40 + reusableBuffer.receiverSetup.receiverId); Pxx2Transport::addByte(0x40 + reusableBuffer.receiverSetup.receiverId);
uint8_t flag1 = 0; uint8_t flag1 = 0;
@ -166,14 +167,12 @@ void Pxx2Pulses::setupReceiverSetSettingsFrame(uint8_t module)
void Pxx2Pulses::setupReceiverGetSettingsFrame(uint8_t module) void Pxx2Pulses::setupReceiverGetSettingsFrame(uint8_t module)
{ {
TRACE("Sending GET frame");
addFrameType(PXX2_TYPE_C_MODULE, PXX2_TYPE_ID_RX_SETTINGS); addFrameType(PXX2_TYPE_C_MODULE, PXX2_TYPE_ID_RX_SETTINGS);
Pxx2Transport::addByte(reusableBuffer.receiverSetup.state + reusableBuffer.receiverSetup.receiverId); Pxx2Transport::addByte(reusableBuffer.receiverSetup.state + reusableBuffer.receiverSetup.receiverId);
uint8_t flag1 = 0; Pxx2Transport::addByte(0x00);
if (reusableBuffer.receiverSetup.pwmRate)
flag1 |= 0x10;
Pxx2Transport::addByte(flag1);
for (int i = 0; i < 24; i++) { for (int i = 0; i < 24; i++) {
Pxx2Transport::addByte(reusableBuffer.receiverSetup.channelMapping[i]); Pxx2Transport::addByte(0x00);
} }
reusableBuffer.receiverSetup.timeout = get_tmr10ms() + 20/*200ms*/; reusableBuffer.receiverSetup.timeout = get_tmr10ms() + 20/*200ms*/;
reusableBuffer.receiverSetup.state = RECEIVER_WAITING_RESPONSE; reusableBuffer.receiverSetup.state = RECEIVER_WAITING_RESPONSE;

View file

@ -62,16 +62,18 @@ void processGetHardwareInfoFrame(uint8_t module, uint8_t * frame)
void processReceiverSettingsFrame(uint8_t module, uint8_t * frame) void processReceiverSettingsFrame(uint8_t module, uint8_t * frame)
{ {
if (reusableBuffer.receiverSetup.state == RECEIVER_WAITING_RESPONSE) { TRACE("Got Option frame");
for (uint8_t pin = 0; pin < 24; pin++) { for (uint8_t pin = 0; pin < 24; pin++) {
reusableBuffer.receiverSetup.channelMapping[pin] = frame[5 + pin]; reusableBuffer.receiverSetup.channelMapping[pin] = frame[5 + pin];
} }
reusableBuffer.receiverSetup.pwmRate = frame[4] & 0x30; if(frame[4] & PXX2_RECV_OPTION_MASK_FASTPWM)
reusableBuffer.receiverSetup.pwmRate = 1;
if(frame[4] & PXX2_RECV_OPTION_MASK_TELEMETRY)
reusableBuffer.receiverSetup.telemetryEnabled = 1;
reusableBuffer.receiverSetup.state = RECEIVER_OK; reusableBuffer.receiverSetup.state = RECEIVER_OK;
reusableBuffer.receiverSetup.timeout = 0; reusableBuffer.receiverSetup.timeout = 0;
moduleSettings[module].mode = MODULE_MODE_NORMAL; moduleSettings[module].mode = MODULE_MODE_NORMAL;
} }
}
void processRegisterFrame(uint8_t module, uint8_t * frame) void processRegisterFrame(uint8_t module, uint8_t * frame)
{ {