kopia lustrzana https://github.com/SP8EBC/ParaTNC
- Storing an error code from a response on UMB offline request
- Sending status on any UMB errors detectedpull/2/head
rodzic
033ccdd50d
commit
13796f63f6
70
.cproject
70
.cproject
|
@ -234,42 +234,42 @@
|
|||
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="${cross_rm} -rf" description="" id="ilg.gnuarmeclipse.managedbuild.cross.config.elf.release.1905520139" name="Release" parent="ilg.gnuarmeclipse.managedbuild.cross.config.elf.release">
|
||||
<folderInfo id="ilg.gnuarmeclipse.managedbuild.cross.config.elf.release.1905520139." name="/" resourcePath="">
|
||||
<toolChain id="ilg.gnuarmeclipse.managedbuild.cross.toolchain.elf.release.1321065803" name="Cross ARM GCC" superClass="ilg.gnuarmeclipse.managedbuild.cross.toolchain.elf.release">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level.1432589103" name="Optimization Level" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level" value="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level.size" valueType="enumerated"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.messagelength.2040794882" name="Message length (-fmessage-length=0)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.messagelength" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.signedchar.1525868211" name="'char' is signed (-fsigned-char)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.signedchar" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.functionsections.115297527" name="Function sections (-ffunction-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.functionsections" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.datasections.358155238" name="Data sections (-fdata-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.datasections" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level.254671374" name="Debug level" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.format.372129711" name="Debug format" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.format"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.allwarn.1898991829" name="Enable all common warnings (-Wall)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.allwarn" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.extrawarn.1384253198" name="Enable extra warnings (-Wextra)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.extrawarn" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.freestanding.1474503896" name="Assume freestanding environment (-ffreestanding)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.freestanding" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.name.1164499272" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.name" value="GNU Tools for ARM Embedded Processors" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.architecture.1186919090" name="Architecture" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.architecture" value="ilg.gnuarmeclipse.managedbuild.cross.option.architecture.arm" valueType="enumerated"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.family.498480515" name="ARM family" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.family" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.mcpu.cortex-m3" valueType="enumerated"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset.1609093818" name="Instruction set" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset.thumb" valueType="enumerated"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.prefix.1575763280" name="Prefix" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.prefix" value="arm-none-eabi-" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.c.268652809" name="C compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.c" value="gcc" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.cpp.1530233960" name="C++ compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.cpp" value="g++" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.ar.601574981" name="Archiver" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.ar" value="ar" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.objcopy.1286721808" name="Hex/Bin converter" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.objcopy" value="objcopy" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.objdump.58384500" name="Listing generator" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.objdump" value="objdump" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.size.337940637" name="Size command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.size" value="size" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.make.1183929474" name="Build command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.make" value="make" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.rm.1371938612" name="Remove command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.rm" value="rm" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createflash.1632058013" name="Create flash image" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createflash" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.printsize.1411824993" name="Print size" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.printsize" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level.1432589103" name="Optimization Level" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level" useByScannerDiscovery="true" value="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level.size" valueType="enumerated"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.messagelength.2040794882" name="Message length (-fmessage-length=0)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.messagelength" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.signedchar.1525868211" name="'char' is signed (-fsigned-char)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.signedchar" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.functionsections.115297527" name="Function sections (-ffunction-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.functionsections" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.datasections.358155238" name="Data sections (-fdata-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.datasections" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level.254671374" name="Debug level" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level" useByScannerDiscovery="true"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.format.372129711" name="Debug format" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.format" useByScannerDiscovery="true"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.allwarn.1898991829" name="Enable all common warnings (-Wall)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.allwarn" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.extrawarn.1384253198" name="Enable extra warnings (-Wextra)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.extrawarn" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.freestanding.1474503896" name="Assume freestanding environment (-ffreestanding)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.freestanding" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.name.1164499272" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.name" useByScannerDiscovery="false" value="GNU Tools for ARM Embedded Processors" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.architecture.1186919090" name="Architecture" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.architecture" useByScannerDiscovery="false" value="ilg.gnuarmeclipse.managedbuild.cross.option.architecture.arm" valueType="enumerated"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.family.498480515" name="ARM family" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.family" useByScannerDiscovery="false" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.mcpu.cortex-m3" valueType="enumerated"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset.1609093818" name="Instruction set" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset" useByScannerDiscovery="false" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset.thumb" valueType="enumerated"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.prefix.1575763280" name="Prefix" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.prefix" useByScannerDiscovery="false" value="arm-none-eabi-" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.c.268652809" name="C compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.c" useByScannerDiscovery="false" value="gcc" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.cpp.1530233960" name="C++ compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.cpp" useByScannerDiscovery="false" value="g++" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.ar.601574981" name="Archiver" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.ar" useByScannerDiscovery="false" value="ar" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.objcopy.1286721808" name="Hex/Bin converter" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.objcopy" useByScannerDiscovery="false" value="objcopy" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.objdump.58384500" name="Listing generator" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.objdump" useByScannerDiscovery="false" value="objdump" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.size.337940637" name="Size command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.size" useByScannerDiscovery="false" value="size" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.make.1183929474" name="Build command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.make" useByScannerDiscovery="false" value="make" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.rm.1371938612" name="Remove command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.rm" useByScannerDiscovery="false" value="rm" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createflash.1632058013" name="Create flash image" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createflash" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.printsize.1411824993" name="Print size" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.printsize" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform.234489538" isAbstract="false" osList="all" superClass="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform"/>
|
||||
<builder buildPath="${workspace_loc:/proba3-vldiscovery}/Release" id="ilg.gnuarmeclipse.managedbuild.cross.builder.335665954" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="ilg.gnuarmeclipse.managedbuild.cross.builder"/>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.21921314" name="Cross ARM GNU Assembler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor.677688064" name="Use preprocessor" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths.1140371832" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths" valueType="includePath">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor.677688064" name="Use preprocessor" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths.1140371832" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths" useByScannerDiscovery="false" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""../include""/>
|
||||
<listOptionValue builtIn="false" value=""../system/include""/>
|
||||
<listOptionValue builtIn="false" value=""../system/include/cmsis""/>
|
||||
<listOptionValue builtIn="false" value=""../system/include/stm32f1-stdperiph""/>
|
||||
</option>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.defs.1082382042" name="Defined symbols (-D)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.defs" valueType="definedSymbols">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.defs.1082382042" name="Defined symbols (-D)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.defs" useByScannerDiscovery="false" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="OS_USE_TRACE_SEMIHOSTING_DEBUG"/>
|
||||
<listOptionValue builtIn="false" value="STM32F10X_MD_VL"/>
|
||||
<listOptionValue builtIn="false" value="USE_STDPERIPH_DRIVER"/>
|
||||
|
@ -280,6 +280,7 @@
|
|||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.879859241" name="Cross ARM C Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.paths.1107333580" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.paths" useByScannerDiscovery="false" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""../include""/>
|
||||
<listOptionValue builtIn="false" value=""../system/include/aprs""/>
|
||||
<listOptionValue builtIn="false" value=""../system/include""/>
|
||||
<listOptionValue builtIn="false" value=""../system/include/cmsis""/>
|
||||
<listOptionValue builtIn="false" value=""../system/include/stm32f1-stdperiph""/>
|
||||
|
@ -295,6 +296,7 @@
|
|||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.176156905" name="Cross ARM C++ Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.include.paths.843080906" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.include.paths" useByScannerDiscovery="false" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""../include""/>
|
||||
<listOptionValue builtIn="false" value=""../system/include/aprs""/>
|
||||
<listOptionValue builtIn="false" value=""../system/include""/>
|
||||
<listOptionValue builtIn="false" value=""../system/include/cmsis""/>
|
||||
<listOptionValue builtIn="false" value=""../system/include/stm32f1-stdperiph""/>
|
||||
|
@ -325,17 +327,17 @@
|
|||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.usenewlibnano.304408116" name="Use newlib-nano (--specs=nano.specs)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.usenewlibnano" value="true" valueType="boolean"/>
|
||||
</tool>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.1018533854" name="Cross ARM C++ Linker" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.gcsections.1346809662" name="Remove unused sections (-Xlinker --gc-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.gcsections" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.paths.441490646" name="Library search path (-L)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.paths" valueType="libPaths">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.gcsections.1346809662" name="Remove unused sections (-Xlinker --gc-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.gcsections" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.paths.441490646" name="Library search path (-L)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.paths" useByScannerDiscovery="false" valueType="libPaths">
|
||||
<listOptionValue builtIn="false" value=""../ldscripts""/>
|
||||
</option>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.scriptfile.2127610610" name="Script files (-T)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.scriptfile" valueType="stringList">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.scriptfile.2127610610" name="Script files (-T)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.scriptfile" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="mem.ld"/>
|
||||
<listOptionValue builtIn="false" value="libs.ld"/>
|
||||
<listOptionValue builtIn="false" value="sections.ld"/>
|
||||
</option>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.nostart.798552405" name="Do not use standard start files (-nostartfiles)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.nostart" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.usenewlibnano.711675791" name="Use newlib-nano (--specs=nano.specs)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.usenewlibnano" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.nostart.798552405" name="Do not use standard start files (-nostartfiles)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.nostart" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.usenewlibnano.711675791" name="Use newlib-nano (--specs=nano.specs)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.usenewlibnano" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.input.1290850385" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.input">
|
||||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
|
||||
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
|
||||
|
@ -351,7 +353,7 @@
|
|||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.wide.1519378390" name="Wide lines (--wide|-w)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.wide" value="true" valueType="boolean"/>
|
||||
</tool>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.printsize.2014280904" name="Cross ARM GNU Print Size" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.printsize">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.printsize.format.89298116" name="Size format" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.printsize.format"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.printsize.format.89298116" name="Size format" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.printsize.format" useByScannerDiscovery="false"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
|
|
|
@ -3,5 +3,6 @@
|
|||
*.map
|
||||
station_config.h
|
||||
Debug/
|
||||
Release/
|
||||
*.hex
|
||||
*.elf
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
ParaTNC Hardware Revision A
|
||||
===========================
|
||||
This documentation covers few different hardware revisions. Each secion which is
|
||||
specific to certain Hw Rev is marked by a letter.
|
||||
|
||||
If section or point is universal across all revision it doesn't have any explicit
|
||||
marking.
|
||||
|
||||
|
||||
1. INTRODUCTION
|
||||
ParaTNC is not only a software which runs on the STM32VLDISCOVERY board. Let's
|
||||
|
@ -44,9 +48,10 @@ the controler. Then the application provided by STMicroelectronics
|
|||
could be used to download the HEX file into the micro.
|
||||
|
||||
|
||||
4. CONNECTORS PINOUT (BACK EDGE)
|
||||
|
||||
4. CONNECTORS PINOUT (BACK EDGE) - HW-RevA
|
||||
-------------------------------------------------------------------------------
|
||||
|RS485B , RS485A| |+5Vis, OneWire, AGND| |TX20, AGND, +5Vis, DTR| \r\n
|
||||
|RS485B , RS485A| |+5Vsw, OneWire, AGND| |TX20, AGND, +5Vsw, DTR| \r\n
|
||||
|+12V, +5V, +5Vi, +3V3, AGND, GND|
|
||||
|
||||
Where:
|
||||
|
@ -55,7 +60,7 @@ Where:
|
|||
TX20 -> Isolated data bus from LaCrosse TX20 anemometer
|
||||
DTR -> Enable pin for TX20 anemometer. Permamently pulled down do AGND
|
||||
+5Vi -> Isolated +5V generated by internal DC-DC converter
|
||||
+5Vis -> Switched and Isolated +5V. This line could be power cycled by
|
||||
+5Vsw -> Switched and Isolated +5V. This line could be power cycled by
|
||||
the micro if no communication will be received from either the
|
||||
anemometer or one wire thermometer
|
||||
+3V3 -> Main uC supply voltage regulated internally by LDO
|
||||
|
@ -63,6 +68,51 @@ Where:
|
|||
AGND -> Analog GND for radio and sensors
|
||||
GND -> Main ParaTNC common with DC jack
|
||||
|
||||
4. CONNECTORS PINOUT (BACK EDGE) - HW-RevB
|
||||
-------------------------------------------------------------------------------
|
||||
|RS485B , RS485A| |+12V, AGND, +5Vi, +5Vsw, +5V, GND| |+5Vsw, OneWire, AGND|
|
||||
|AGND, TX20-SPD, DIRECTION, +5Vsw|
|
||||
|
||||
|
||||
Where:
|
||||
RS485A and RS485B -> RS485 bus, protected by TVS (Clamping diodes)
|
||||
OneWire -> Isolated one wire bus
|
||||
TX20-SPD -> Isolated data bus from LaCrosse TX20 anemometer or
|
||||
an windspeed input (pulse out) from mechanical anemometer
|
||||
DIRECTION -> Wind direction input (pot wiper) from mechanical anemometer
|
||||
|
||||
DTR -> Enable pin for TX20 anemometer. Permamently pulled down do AGND
|
||||
+5Vi -> Isolated +5V generated by internal DC-DC converter
|
||||
+5Vsw -> Switched and Isolated +5V. This line could be power cycled by
|
||||
the micro if no communication will be received from either the
|
||||
anemometer or one wire thermometer
|
||||
+12V -> Main supply voltage, hooked in paralel to DC jack
|
||||
AGND -> Analog GND for radio and sensors
|
||||
GND -> Main ParaTNC common with DC jack
|
||||
|
||||
4. CONNECTORS PINOUT (BACK EDGE) - HW-RevC
|
||||
-------------------------------------------------------------------------------
|
||||
|+12V, AGND, +5Vi, +5sw, OC-OUT, GND| |RS485B , RS485A| |+5Vsw, OneWire, AGND|
|
||||
|AGND, TX20-SPD, DIRECTION, +5Vsw|
|
||||
|
||||
|
||||
Where:
|
||||
RS485A and RS485B -> RS485 bus, protected by TVS (Clamping diodes)
|
||||
OneWire -> Isolated one wire bus
|
||||
TX20-SPD -> Isolated data bus from LaCrosse TX20 anemometer or
|
||||
an windspeed input (pulse out) from mechanical anemometer
|
||||
DIRECTION -> Wind direction input (pot wiper) from mechanical anemometer
|
||||
+5Vi -> Isolated +5V generated by internal DC-DC converter
|
||||
+5Vsw -> Switched and Isolated +5V. This line could be power cycled by
|
||||
the micro if no communication will be received from either the
|
||||
anemometer or one wire thermometer
|
||||
OC-OUT -> Additional isolated open-collector output
|
||||
+12V -> Main supply voltage, hooked in paralel to DC jack
|
||||
AGND -> Analog GND for sensors (BUT NOT RADIO!!)
|
||||
GND -> Main ParaTNC common with DC jack
|
||||
|
||||
|
||||
|
||||
5. RJ45 (RS232) pinout
|
||||
The RJ45 jack on the front of the PCB is NOT THE ETHERNET! Please don't plug
|
||||
any twisted pair Ethernet cable onto it.
|
||||
|
|
42
README
42
README
|
@ -1,4 +1,4 @@
|
|||
ParaTNC version DE07, March 22th 2020
|
||||
ParaTNC version DE07, April 11th 2020
|
||||
-----------------------------------------
|
||||
|
||||
1. INTRODUCTION
|
||||
|
@ -12,6 +12,7 @@ ParaAPRS supports key elements of what good APRS device should have:
|
|||
-> Weather station with support for various meteo sensors. Full list od supported devices in point 5.
|
||||
-> Extensive telemetry with an information about the count of receved, transmitted and digipeated frames plus status of weather sensors.
|
||||
-> Support for VE.Direct serial protocol used in Victron PV charging controllers. The data about currents and voltages in the PV system are transmitted using APRS telemetry.
|
||||
-> Support for UMB Binary porotocol as a mater.
|
||||
|
||||
ParaAPRS can be used as a standalone weather station controller w/o using the radio transmission. The sw
|
||||
by default sends the measuremenets values
|
||||
|
@ -20,10 +21,13 @@ by default sends the measuremenets values
|
|||
The ParaTNC software can run on STM32VLDISCOVERY board but it really shows it full potential od it's own
|
||||
dedicated hardware. This not only rub out all bodge wires required with prototype board. It gives
|
||||
few features which are hardly not possible without dedicated PCB
|
||||
a) Three different grounds separated one from the another
|
||||
a) Two different grounds separated one from the another (HW Revision A and B)
|
||||
-> Controller
|
||||
-> DB9 connector used to interface with a radio and Wind & Temperature sensor
|
||||
aa) ONLY IN HW REVISION C: Three different grounds separated one from the another
|
||||
-> Controller
|
||||
-> DB9 connector used to interface with a radio
|
||||
-> Wind and temperature sensor
|
||||
-> Wind and temperature sensor including RS485 bus
|
||||
b) Isolated DC-DC coverter to supply sensors with an option to connect another external power supply itself
|
||||
c) A relay used as a watchdog to reset wind & temperature sensor in case that no communication will be received.
|
||||
d) RS232 serial port avaliable on Cisco style RJ45 connector.
|
||||
|
@ -39,7 +43,7 @@ parts, separately for software and hardware. Firstly in case of software an end
|
|||
WITH THE NEWEST TAG marked as non-beta (like DE07). ParaTNC repository is used for daily development, so the last commit
|
||||
can even sometimes don't compile at all, or consist some major bugs.
|
||||
|
||||
Hardware workarounds in HW Revision A, now fixed in Revision B:
|
||||
Hardware workarounds in HW Revision A:
|
||||
-> Missing resistor in series with base of transistor T2. External 1k must be added in series with TX line
|
||||
-> Foortprint location of R7 (RX_LVL) and R8 (TX_LVL) helipots are 'not optimal'. If 'normal' pots are to be used the vertical
|
||||
version must be chosen as flat one won't fit due to neighbouring components location.
|
||||
|
@ -49,12 +53,15 @@ Hardware workarounds in HW Revision A, now fixed in Revision B:
|
|||
pulse output for windspeed and potentiometer (resistance output) for direction is ongoing and should be
|
||||
avaliable in HW-Revision B and further SW releases.
|
||||
|
||||
Hardware workarounds in HW Revision B:
|
||||
-> Few missing traces in micro supply. Few bodge wired needs to be added. Please look at hardware-revision-b-errata.jpg in 'hardware'
|
||||
|
||||
4. LICENSING
|
||||
ParaTNC software and hardware are licensed under terms included to the source code in 'LICENSE' file
|
||||
|
||||
5. SUPPORTED METEO SENSORS
|
||||
a) Wind sensors:
|
||||
- TX20 (not in production)
|
||||
- TX20 (not in manufacturing anymore)
|
||||
- Davis 6410 or any another analogue anemometer with resisntance as a direction output and impulses as a windspeed
|
||||
WARNING: Currently support on software testing phase. Not avaliable in Hardware Revision A due to lack of circuitry
|
||||
- Lufft V200A/Ventus or any other UMB compatible device.
|
||||
|
@ -74,7 +81,7 @@ Most of Victron devices have a support both for binary and text serial protocol.
|
|||
always enabled and a device will send from its own telegrams each couple of seconds. The communication via VE.Direct is
|
||||
avaliable through dedicated socket on the charging controller which is just 3.3V TTL levels UART, so no external ICs is
|
||||
required to connect the PV controller to an evaluation board. In the MPPT series the comm socket is located on the bottom
|
||||
side of the chargin controller below the fuse holder.
|
||||
side of the charging controller below the fuse holder.
|
||||
|
||||
Exact pinout of the VE.Direct comm socket is as follows, assuming that terminal screws are facing down:
|
||||
-> Ground
|
||||
|
@ -107,7 +114,8 @@ DS_QF_DEGRAD - Quality Factor for One Wire temperature sensor is DEGRADATED
|
|||
DS_QF_NAVBLE - Quality Factor for One Wire temperature sensor is NOT AVALIABLE
|
||||
MS_QF_NAVBLE - Quality Factor for MS5611 pressure sensor ins NOT AVALIABLE
|
||||
DHT_QF_NAVBLE - Quality Factor for DHT22 humidity & temperature is NOT AVALIABLE
|
||||
TX20_SLEW - LaCrosse TX20 anemometer driver dropped at least one measuremenet due to excesive slew rate.
|
||||
WIND_QF_DEGR - LaCrosse TX20 anemometer driver dropped at least one measuremenet due to excesive slew rate.
|
||||
WIND_QF_NAVB -
|
||||
|
||||
Explantion of Quality Factors: Each measuremenets signal is kept along with the Quality Factor which represents the sensor condition
|
||||
and value validity. If the QF is set to FULL it means that no communication problems happened between one telemetry cycle and another
|
||||
|
@ -122,14 +130,27 @@ difference between two consecutive measuremenets excedes hardcoded limit (9m/s)
|
|||
At this point ParaTNC is delivered in form of source code which needs to be manually compiled by the user. Most options are
|
||||
configured by #define in './include/station_config.h' and then hard-coded by the C preprocessor during compilation. An example file
|
||||
consist a lot of comments which explains what is what, but generally an user can choose there which mode should be enabled:
|
||||
|
||||
Hardware Revision A:
|
||||
-> KISS TNC
|
||||
-> KISS TNC + DIGI
|
||||
-> KISS TNC + DIGI + METEO
|
||||
-> VICTRON + DIGI + METEO
|
||||
-> VICTRON + DIGI
|
||||
|
||||
As You see there is no option to use a KISS modem and the VE.Direct protocol in the same time as the software support only
|
||||
one UART in the micro. The KISS modem runs on default speed of 9600 bps. Telemetry is enabled by default and it will
|
||||
Hardware Revision B & C:
|
||||
-> KISS TNC
|
||||
-> KISS TNC + DIGI
|
||||
-> KISS TNC + DIGI + METEO
|
||||
-> KISS TNC + VICTRON + DIGI + METEO
|
||||
-> KISS TNC + VICTRON + DIGI
|
||||
-> KISS TNC + UMB-MASTER + DIGI + METEO
|
||||
|
||||
In Hardware Revision A there is no option to use a KISS modem and the VE.Direct protocol in the same time as only
|
||||
one UART in the micro is used and handled by software. In hardware revisions B and C two UARTS are used and handled by
|
||||
the software. The KISS modem is always enabled and avaliable on RJ45 Cisco style jack.
|
||||
|
||||
The KISS modem runs on default speed of 9600 bps. Telemetry is enabled by default and it will
|
||||
trasmit channels values each 10 minutes and full channel descriptions each 70 minutes.
|
||||
|
||||
|
||||
|
@ -150,7 +171,8 @@ When everything is installed the reporistory can be cloned to local harddrive by
|
|||
The example config file is named 'station_config_example.h' and should be edited and then renamed to
|
||||
'station_config.h'. When everything is configured it is a time to go to 'Debug' directory and invoke
|
||||
command 'make' there. The source should be automatically compiled and new hex file 'ParaTNC.hex'
|
||||
should appear in the same directory.
|
||||
should appear in the same directory. Please do not use Release configuration!! It is screwed and produces an
|
||||
application which doesn't works exactly as it should because of optimalization configuration.
|
||||
|
||||
Finished building target: ParaTNC.elf
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
#include "aprs/ax25.h"
|
||||
|
||||
#define SW_VER "DE07"
|
||||
#define SW_DATE "10042020"
|
||||
#define SW_DATE "11042020"
|
||||
|
||||
#define SYSTICK_TICKS_PER_SECONDS 100
|
||||
#define SYSTICK_TICKS_PERIOD 10
|
||||
|
@ -31,6 +31,10 @@ extern unsigned short rx10m, tx10m, digi10m, kiss10m;
|
|||
|
||||
uint16_t main_get_adc_sample(void);
|
||||
|
||||
inline uint32_t main_get_master_time(void) {
|
||||
return master_time;
|
||||
}
|
||||
|
||||
inline void main_wait_for_tx_complete(void) {
|
||||
while(main_afsk.sending == 1);
|
||||
}
|
||||
|
|
|
@ -131,8 +131,7 @@ static void message_callback(struct AX25Msg *msg) {
|
|||
}
|
||||
|
||||
int
|
||||
main(int argc, char* argv[])
|
||||
{
|
||||
main(int argc, char* argv[]){
|
||||
// Send a greeting to the trace device (skipped on Release).
|
||||
// trace_puts("Hello ARM World!");
|
||||
|
||||
|
|
|
@ -17,6 +17,9 @@
|
|||
uint8_t packet_tx_beacon_interval = _BCN_INTERVAL;
|
||||
uint8_t packet_tx_beacon_counter = 0;
|
||||
|
||||
uint8_t packet_tx_error_status_interval = 2;
|
||||
uint8_t packet_tx_error_status_counter = 0;
|
||||
|
||||
#ifdef _METEO
|
||||
uint8_t packet_tx_meteo_interval = _WX_INTERVAL;
|
||||
uint8_t packet_tx_meteo_counter = 0;
|
||||
|
@ -38,6 +41,7 @@ void packet_tx_handler(void) {
|
|||
uint16_t ln = 0;
|
||||
|
||||
packet_tx_beacon_counter++;
|
||||
packet_tx_error_status_counter++;
|
||||
packet_tx_telemetry_counter++;
|
||||
packet_tx_telemetry_descr_counter++;
|
||||
#ifdef _METEO
|
||||
|
@ -45,18 +49,22 @@ void packet_tx_handler(void) {
|
|||
packet_tx_meteo_kiss_counter++;
|
||||
#endif
|
||||
|
||||
if (packet_tx_error_status_counter >= packet_tx_error_status_interval) {
|
||||
#if defined(_UMB_MASTER)
|
||||
umb_construct_status_str(&rte_wx_umb_context, main_own_aprs_msg, sizeof(main_own_aprs_msg), &ln, master_time);
|
||||
|
||||
// if there is anything to send
|
||||
if (ln > 0) {
|
||||
beacon_send_from_user_content(sizeof(main_own_aprs_msg), main_own_aprs_msg);
|
||||
beacon_send_from_user_content(ln, main_own_aprs_msg);
|
||||
|
||||
main_wait_for_tx_complete();
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
packet_tx_error_status_counter = 0;
|
||||
}
|
||||
|
||||
if (packet_tx_beacon_counter >= packet_tx_beacon_interval) {
|
||||
|
||||
beacon_send_own();
|
||||
|
@ -174,6 +182,7 @@ void packet_tx_handler(void) {
|
|||
main_wait_for_tx_complete();
|
||||
#endif
|
||||
|
||||
umb_clear_error_history(&rte_wx_umb_context);
|
||||
|
||||
packet_tx_telemetry_descr_counter = 0;
|
||||
}
|
||||
|
|
|
@ -22,6 +22,8 @@ typedef struct umb_context_t {
|
|||
|
||||
uint8_t nok_error_it;
|
||||
|
||||
uint16_t last_fault_channel;
|
||||
|
||||
uint32_t time_of_last_nok;
|
||||
|
||||
uint32_t time_of_last_comms_timeout;
|
||||
|
|
|
@ -26,6 +26,7 @@ umb_retval_t umb_pooling_handler(umb_context_t* ctx, umb_call_reason_t r, uint32
|
|||
umb_retval_t umb_master_callback(umb_frame_t* frame, umb_context_t* ctx);
|
||||
umb_qf_t umb_get_current_qf(umb_context_t* ctx, uint32_t master_time);
|
||||
void umb_construct_status_str(umb_context_t* ctx, char* out_buffer, uint16_t buffer_size, uint16_t* status_string_ln, uint32_t master_time);
|
||||
void umb_clear_error_history(umb_context_t* ctx);
|
||||
|
||||
uint16_t umb_get_windspeed(void);
|
||||
uint16_t umb_get_windgusts(void);
|
||||
|
|
|
@ -176,6 +176,8 @@ void telemetry_send_status(ve_direct_average_struct* avg, ve_direct_error_reason
|
|||
void telemetry_send_chns_description(void) {
|
||||
while (main_afsk.sending == 1);
|
||||
|
||||
memset(main_own_aprs_msg, 0x00, sizeof(main_own_aprs_msg));
|
||||
|
||||
#if (_SSID == 0)
|
||||
main_own_aprs_msg_len = sprintf(main_own_aprs_msg, ":%s :PARM.Rx10min,Tx10min,Digi10min,HostTx10m,Tempre,DS_QF_FULL,DS_QF_DEGRAD,DS_QF_NAVBLE,MS_QF_NAVBLE,DHT_QF_NAVBLE,WIND_QF_DEGR,WIND_QF_NAVB", _CALL);
|
||||
#endif
|
||||
|
@ -309,6 +311,8 @@ void telemetry_send_values( uint8_t rx_pkts,
|
|||
dht_qf_navaliable = '0';
|
||||
}
|
||||
|
||||
memset(main_own_aprs_msg, 0x00, sizeof(main_own_aprs_msg));
|
||||
|
||||
#ifdef _DALLAS_AS_TELEM
|
||||
main_own_aprs_msg_len = sprintf(main_own_aprs_msg, "T#%03d,%03d,%03d,%03d,%03d,%03d,%c%c%c%c%c%c%c0", telemetry_counter++, rx_pkts, tx_pkts, digi_pkts, kiss_pkts, scaled_temperature, qf, degr, nav, ms_qf_navaliable, dht_qf_navaliable, anemometer_degradated, anemometer_navble);
|
||||
#else
|
||||
|
@ -327,6 +331,7 @@ void telemetry_send_values( uint8_t rx_pkts,
|
|||
}
|
||||
|
||||
void telemetry_send_status(void) {
|
||||
memset(main_own_aprs_msg, 0x00, sizeof(main_own_aprs_msg));
|
||||
main_own_aprs_msg_len = sprintf(main_own_aprs_msg, ">ParaTNC firmware %s-%s by SP8EBC", SW_VER, SW_DATE);
|
||||
ax25_sendVia(&main_ax25, main_own_path, main_own_path_ln, main_own_aprs_msg, main_own_aprs_msg_len);
|
||||
afsk_txStart(&main_afsk);
|
||||
|
|
|
@ -13,6 +13,8 @@
|
|||
|
||||
#include "station_config.h"
|
||||
|
||||
#include <string.h>
|
||||
|
||||
|
||||
void SendWXFrame(uint16_t windspeed, uint16_t windgusts, uint16_t winddirection, float temperatura, float cisnienie) {
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
#include "../umb_master/umb_0x23_offline_data.h"
|
||||
#include "station_config.h"
|
||||
#include "rte_wx.h"
|
||||
#include "main.h"
|
||||
|
||||
#define UNSIGNED_CHAR 0x10
|
||||
#define SIGNED_CHAR 0x11
|
||||
|
@ -72,11 +73,12 @@ umb_retval_t umb_0x23_offline_data_callback(umb_frame_t* frame, umb_context_t* c
|
|||
// temporary float point buffer to handle this type
|
||||
float temp = 0.0f;
|
||||
|
||||
// check if status is OK
|
||||
if (status == 0x00) {
|
||||
// fetch the channel number
|
||||
channel = frame->payload[1] | (frame->payload[2] << 8);
|
||||
|
||||
// check if status is OK
|
||||
if (status == 0x00) {
|
||||
|
||||
// fetch the value type
|
||||
type = frame->payload[3];
|
||||
|
||||
|
@ -168,6 +170,22 @@ umb_retval_t umb_0x23_offline_data_callback(umb_frame_t* frame, umb_context_t* c
|
|||
// if not stop further processing
|
||||
ctx->state = UMB_STATUS_ERROR;
|
||||
|
||||
ctx->last_fault_channel = channel;
|
||||
|
||||
// copy current error code to the buffer
|
||||
ctx->nok_error_codes[ctx->nok_error_it] = status;
|
||||
|
||||
// move the iterator through the buffer
|
||||
ctx->nok_error_it++;
|
||||
|
||||
// check if and end of the buffer is reach here
|
||||
ctx->nok_error_it %= UMB_CONTEXT_ERR_HISTORY_LN;
|
||||
|
||||
// trigger the status frame
|
||||
ctx->trigger_status_msg = 1;
|
||||
|
||||
ctx->time_of_last_nok = main_get_master_time();
|
||||
|
||||
output = UMB_NOK_STATUS_GOT_WITH_RESP;
|
||||
}
|
||||
|
||||
|
|
|
@ -64,7 +64,7 @@ umb_retval_t umb_0x26_status_callback(umb_frame_t* frame, umb_context_t* ctx) {
|
|||
}
|
||||
|
||||
// storing the time when last error code will be stored
|
||||
ctx->time_of_last_nok = master_time;
|
||||
ctx->time_of_last_nok = main_get_master_time();
|
||||
|
||||
// trigger the status message with a content of fault store
|
||||
ctx->trigger_status_msg = 1;
|
||||
|
|
|
@ -11,13 +11,13 @@
|
|||
|
||||
void umb_channel_pool(umb_frame_t *frame, umb_context_t *ctx) {
|
||||
#if defined(_UMB_MASTER)
|
||||
if (ctx->channel_number_it > UMB_CHANNELS_STORAGE_CAPAC)
|
||||
if (ctx->channel_number_it >= UMB_CHANNELS_STORAGE_CAPAC)
|
||||
ctx->channel_number_it = 0;
|
||||
|
||||
uint16_t curr_chn = ctx->channel_numbers[ctx->channel_number_it];
|
||||
ctx->current_channel = curr_chn;
|
||||
|
||||
if (curr_chn != 0xFFFFu) {
|
||||
if (curr_chn != 0xFFFFu && curr_chn != 0x0u) {
|
||||
umb_0x23_offline_data_request(frame, ctx, curr_chn);
|
||||
}
|
||||
|
||||
|
|
|
@ -39,6 +39,8 @@ void umb_master_init(umb_context_t* ctx) {
|
|||
|
||||
ctx->time_of_last_successful_comms = 0;
|
||||
|
||||
ctx->last_fault_channel = 0;
|
||||
|
||||
for (int i = 0; i < UMB_CONTEXT_ERR_HISTORY_LN; i++) {
|
||||
ctx->nok_error_codes[i] = 0;
|
||||
}
|
||||
|
@ -394,10 +396,11 @@ void umb_construct_status_str(umb_context_t* ctx, char* out_buffer, uint16_t buf
|
|||
for (int i = 0; i < buffer_size; i++)
|
||||
out_buffer[i] = '\0';
|
||||
|
||||
string_ln = snprintf(out_buffer, buffer_size, ">UMB Status: [TIME= 0x%x, TLN= 0x%x, TLCT= 0x%x, ERRS= [",
|
||||
string_ln = snprintf(out_buffer, buffer_size, ">UMB Status: [TIME= 0x%x, TLN= 0x%x, TLCT= 0x%x, LFC= %d ERRS= [",
|
||||
(int)master_time,
|
||||
(int)local_tln,
|
||||
(int)local_tlct);
|
||||
(int)local_tlct,
|
||||
(int)ctx->last_fault_channel);
|
||||
for (int i = 0; i < UMB_CONTEXT_ERR_HISTORY_LN; i++ ) {
|
||||
// print the string representation of the error code into the buffer
|
||||
sprintf_out = snprintf(local, 11, "0x%02x, ", ctx->nok_error_codes[i]);
|
||||
|
@ -417,6 +420,16 @@ void umb_construct_status_str(umb_context_t* ctx, char* out_buffer, uint16_t buf
|
|||
*status_string_ln = string_ln;
|
||||
}
|
||||
|
||||
void umb_clear_error_history(umb_context_t* ctx) {
|
||||
ctx->last_fault_channel = 0;
|
||||
|
||||
for (int i = 0; i < UMB_CONTEXT_ERR_HISTORY_LN; i++) {
|
||||
ctx->nok_error_codes[i] = 0;
|
||||
}
|
||||
|
||||
ctx->trigger_status_msg = 0;
|
||||
}
|
||||
|
||||
|
||||
uint16_t umb_get_windspeed(void) {
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue