kiss communication. did: bugfix in lengh of response, get_version: bugfix in overwriting first byte of a response

master
Mateusz Lubecki 2023-11-12 11:09:11 +01:00
rodzic ee541a54dc
commit b642c3c540
5 zmienionych plików z 28 dodań i 19 usunięć

Wyświetl plik

@ -5,7 +5,7 @@
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="842559031985696342" id="ilg.gnuarmeclipse.managedbuild.cross.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT GCC Built-in Compiler Settings Cross ARM" parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="871033396245946614" id="ilg.gnuarmeclipse.managedbuild.cross.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT GCC Built-in Compiler Settings Cross ARM" parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>
@ -16,7 +16,7 @@
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="813754081161391399" id="ilg.gnuarmeclipse.managedbuild.cross.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT GCC Built-in Compiler Settings Cross ARM" parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="854345066964168583" id="ilg.gnuarmeclipse.managedbuild.cross.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT GCC Built-in Compiler Settings Cross ARM" parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>

Wyświetl plik

@ -8,6 +8,7 @@ C_SRCS += \
../src/PathConfig.c \
../src/TimerConfig.c \
../src/_write.c \
../src/backup_registers.c \
../src/button_paratnc.c \
../src/delay.c \
../src/dummy.c \
@ -21,6 +22,7 @@ C_SRCS += \
../src/rte_rtu.c \
../src/rte_wx.c \
../src/software_version.c \
../src/variant_parameteo.c \
../src/wx_handler.c \
../src/wx_handler_humidity.c \
../src/wx_handler_pressure.c \
@ -32,6 +34,7 @@ OBJS += \
./src/PathConfig.o \
./src/TimerConfig.o \
./src/_write.o \
./src/backup_registers.o \
./src/button_paratnc.o \
./src/delay.o \
./src/dummy.o \
@ -45,6 +48,7 @@ OBJS += \
./src/rte_rtu.o \
./src/rte_wx.o \
./src/software_version.o \
./src/variant_parameteo.o \
./src/wx_handler.o \
./src/wx_handler_humidity.o \
./src/wx_handler_pressure.o \
@ -56,6 +60,7 @@ C_DEPS += \
./src/PathConfig.d \
./src/TimerConfig.d \
./src/_write.d \
./src/backup_registers.d \
./src/button_paratnc.d \
./src/delay.d \
./src/dummy.d \
@ -69,6 +74,7 @@ C_DEPS += \
./src/rte_rtu.d \
./src/rte_wx.d \
./src/software_version.d \
./src/variant_parameteo.d \
./src/wx_handler.d \
./src/wx_handler_humidity.d \
./src/wx_handler_pressure.d \

Wyświetl plik

@ -8,8 +8,8 @@
#ifndef SOFTWARE_VERSION_H_
#define SOFTWARE_VERSION_H_
#define SW_VER "EB02"
#define SW_DATE "31102023"
#define SW_VER "EB03"
#define SW_DATE "12112023"
#define SW_KISS_PROTO "B"
extern const char software_version_str[5];

Wyświetl plik

@ -124,9 +124,9 @@ int32_t kiss_callback_get_version_id(uint8_t* input_frame_from_host, uint16_t in
uint8_t config_payload_size = 0;
#ifdef PARAMETEO
config_payload_size = snprintf((char *)response_buffer + 3, buffer_size, "METEO-%s-%s", SW_VER, SW_KISS_PROTO);
config_payload_size = snprintf((char *)response_buffer + 4, buffer_size, "METEO-%s-%s", SW_VER, SW_KISS_PROTO);
#else
config_payload_size = snprintf((char *)response_buffer + 3, buffer_size, "TNC-%s-%s", SW_VER, SW_KISS_PROTO);
config_payload_size = snprintf((char *)response_buffer + 4, buffer_size, "TNC-%s-%s", SW_VER, SW_KISS_PROTO);
#endif
// construct a response
@ -229,6 +229,8 @@ int32_t kiss_callback_read_did(uint8_t* input_frame_from_host, uint16_t input_le
int32_t out = 0;
memset(response_buffer, 0x00, buffer_size);
// identifier
uint16_t did = *(input_frame_from_host + 2) | (*(input_frame_from_host + 3) << 8);

Wyświetl plik

@ -242,7 +242,7 @@ static int kiss_did_validate(kiss_did_numeric_definition_t * definition, uint8_t
*/
uint8_t kiss_did_response(uint16_t identifier, uint8_t * output_buffer, uint16_t buffer_ln) {
uint8_t out = 0xFF;
uint8_t out = 0;
// iterator to go through DID definition
int i = 0;
@ -325,12 +325,19 @@ uint8_t kiss_did_response(uint16_t identifier, uint8_t * output_buffer, uint16_t
// move after DID value and size_byte
output_buffer += 3;
// room for size byte
out++;
// and for DID value itself
out += 2;
//append first data source
memcpy(output_buffer, found.first_data, found.first_data_size);
//move forward a poiner to response buffer
output_buffer += found.first_data_size;
// room for first value returned by DID
out += found.first_data_size;
if (number_of_data_source > 1) {
@ -353,12 +360,6 @@ uint8_t kiss_did_response(uint16_t identifier, uint8_t * output_buffer, uint16_t
out += found.third_data_size;
}
// also include size_byte in this calculation
out++;
// include DID value itself
out += 2;
}
else if (found.identifier != 0xFFFFu && is_valid == 1 && is_float == 1) {
@ -376,6 +377,12 @@ uint8_t kiss_did_response(uint16_t identifier, uint8_t * output_buffer, uint16_t
// move after DID value and size_byte
output_buffer += 3;
// room for size byte stored in output buffer
out++;
// room for DID number in output buffer
out += 2;
//append first data source
memcpy(output_buffer, found.first_data, sizeof(float));
@ -404,12 +411,6 @@ uint8_t kiss_did_response(uint16_t identifier, uint8_t * output_buffer, uint16_t
out += sizeof(float);
}
// also include size_byte in this calculation
out++;
// include DID value itself
out += 2;
}
else if (found.identifier != 0xFFFFu && is_string == 1) {