From ca31c275bd004c336a3646eb9406e15cdd5f1a7c Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Sun, 7 Nov 2021 22:13:32 +0100 Subject: [PATCH] Fix override channel parameter --- .../yaml/yaml_datastructs_funcs.cpp | 2 +- .../storage/yaml/yaml_datastructs_funcs.cpp | 3 ++- radio/src/tests/conversions.cpp | 4 ++++ radio/src/tests/model_25_tx16s.otx | Bin 1444 -> 1461 bytes 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/radio/src/storage/conversions/yaml/yaml_datastructs_funcs.cpp b/radio/src/storage/conversions/yaml/yaml_datastructs_funcs.cpp index e91a1970d..fcb2f31f7 100644 --- a/radio/src/storage/conversions/yaml/yaml_datastructs_funcs.cpp +++ b/radio/src/storage/conversions/yaml/yaml_datastructs_funcs.cpp @@ -748,7 +748,7 @@ bool w_customFn(void* user, uint8_t* data, uint32_t bitoffs, str = yaml_unsigned2str(CFN_CH_INDEX(cfn)); // CH index if (!wf(opaque, str, strlen(str))) return false; if (!wf(opaque, ",", 1)) return false; - str = yaml_unsigned2str(CFN_PARAM(cfn)); // value + str = yaml_signed2str(CFN_PARAM(cfn)); // value if (!wf(opaque, str, strlen(str))) return false; break; diff --git a/radio/src/storage/yaml/yaml_datastructs_funcs.cpp b/radio/src/storage/yaml/yaml_datastructs_funcs.cpp index 8fcbce1a3..8cb3925c4 100644 --- a/radio/src/storage/yaml/yaml_datastructs_funcs.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_funcs.cpp @@ -1051,6 +1051,7 @@ static void r_customFn(void* user, uint8_t* data, uint32_t bitoffs, CFN_CH_INDEX(cfn) = yaml_str2uint_ref(val, val_len); // "," if (!val_len || val[0] != ',') return; + val++; val_len--; // value CFN_PARAM(cfn) = yaml_str2int_ref(val, val_len); } @@ -1235,7 +1236,7 @@ static bool w_customFn(void* user, uint8_t* data, uint32_t bitoffs, str = yaml_unsigned2str(CFN_CH_INDEX(cfn)); // CH index if (!wf(opaque, str, strlen(str))) return false; if (!wf(opaque, ",", 1)) return false; - str = yaml_unsigned2str(CFN_PARAM(cfn)); // value + str = yaml_signed2str(CFN_PARAM(cfn)); // value if (!wf(opaque, str, strlen(str))) return false; break; diff --git a/radio/src/tests/conversions.cpp b/radio/src/tests/conversions.cpp index 5167f78f4..8bae7eb6f 100644 --- a/radio/src/tests/conversions.cpp +++ b/radio/src/tests/conversions.cpp @@ -442,6 +442,10 @@ TEST(Conversions, ConversionTX16SFrom25) EXPECT_EQ(MODULE_SUBTYPE_PXX1_ACCST_LR12, g_model.moduleData[1].subType); EXPECT_EQ(4, g_model.moduleData[1].channelsCount); // 4 + 8 = 12 + EXPECT_EQ(-SWSRC_SE0, g_model.customFn[0].swtch); + EXPECT_EQ(FUNC_OVERRIDE_CHANNEL, g_model.customFn[0].func); + EXPECT_EQ(-100, CFN_PARAM(&(g_model.customFn[0]))); + const auto& top_widget = g_model.topbarData.zones[3]; EXPECT_STRNEQ("Value", top_widget.widgetName); diff --git a/radio/src/tests/model_25_tx16s.otx b/radio/src/tests/model_25_tx16s.otx index 2555135b279fff61ba1ba0affe95234ebfde1046..d9a764880b9d5933b9d136adcda9f78010bdfd5a 100644 GIT binary patch delta 367 zcmZ3&y_K6cz?+#xgn@y9gTZ@U`b6F-oIonr{Civ7&xxz#>g~M`J4hV=cz-EpNTGnb zJ9}Z_rpc>W*$*!A_;_E;yy^Gb_DS7uxnf&Y`oZLFLR9Oe_v$UrcgE{Q z7N2~2^zJ|J^xW-})iamrPfVM3B4l$~z}aikS96Sk*48gvm>nJ!SMV|}vaVq1gX)5h zg;k6U3XWrpbGKcS>m75z4Z7 zk!p1&s5HOLYI7%p&Zfsd?6$kUF7bbyJEg3Cfn;g*-;x)-%vXz(x*K)#j_-}W=Ndfk z`yZ2^|1P#|cydO+8t8KdhG$Q0&gH!7jo-UZ$3FXRy;>DJG*s9i!LoTb<9sG&V8Bd{ sWpM%1OIWNB0X6wKiy2r{fmNDu|706h1u!oj$V;4D&8p0{j0I#10A_HXZ2$lO delta 360 zcmdnWy@Z=Lz?+#xgn@y9gW*wO+(h0foIol#bmHP?FD9;%tGCTQiTQ-|Md0m{;kZ<*G4jf z4Bw!;J~1h2_5IDS9v0l%b#G<{3rZjaAK3JyxR{B7K}37=b;c=7%)k(toX6qK4;C}9s3EH~