Kamstrup parsing working

This commit is contained in:
Roar Fredriksen
2017-10-24 22:01:41 +02:00
parent d144e293e2
commit d1c2ca7093
25 changed files with 466 additions and 259 deletions

View File

@@ -32,8 +32,8 @@ C:\Users\roarf\AppData\Local\Temp\VMBuilds\KamstrupTest\esp8266_generic\Debug\Ka
C:\Users\roarf\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266/debug.h \
C:\Users\roarf\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.3.0\variants\generic/pins_arduino.h \
C:\Users\roarf\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.3.0\variants\generic/common.h \
C:\Users\roarf\OneDrive\Documents\GitHub\AmsToMqttBridge\Code\Arduino\HanReader\src/hanreader.h \
C:\Users\roarf\OneDrive\Documents\GitHub\AmsToMqttBridge\Code\Arduino\HanReader\src/HanReader.h \
C:\Users\roarf\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266/arduino.h \
C:\Users\roarf\OneDrive\Documents\GitHub\AmsToMqttBridge\Code\Arduino\HanReader\src/KaifaHan.h \
C:\Users\roarf\OneDrive\Documents\GitHub\AmsToMqttBridge\Code\Arduino\HanReader\src/DlmsReader.h \
C:\Users\roarf\OneDrive\Documents\GitHub\AmsToMqttBridge\Code\Arduino\HanReader\src/Crc16.h
C:\Users\roarf\OneDrive\Documents\GitHub\AmsToMqttBridge\Code\Arduino\HanReader\src/Crc16.h \
C:\Users\roarf\OneDrive\Documents\GitHub\AmsToMqttBridge\Code\Arduino\HanReader\src/Kamstrup.h

View File

@@ -334,16 +334,13 @@ build.spiffs_start=0x300000
build.spiffs_end=0x3FB000
build.spiffs_blocksize=8192
build.flash_freq=40
vm.runtime.compiler.shared_library_paths=C:\Users\roarf\OneDrive\Documents\GitHub\AmsToMqttBridge\Code\Arduino\HanReader
builder.noino=false
build.architecture=1.20.0-26-gb404fb9-2
vmresolved.compiler.path=C:\Users\roarf\AppData\Local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\bin\
vmresolved.tools.path=C:\Users\roarf\AppData\Local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2
build.variant.vmresolved.name=generic
build.variant.vmresolved.full_path=C:\Users\roarf\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.3.0\variants\generic
build.path=C:\Users\roarf\AppData\Local\Temp\VMBuilds\KamstrupTest\esp8266_generic\Debug
build.project_name=KamstrupTest.ino
build.project_path=C:\Users\roarf\OneDrive\Documents\GitHub\AmsToMqttBridge\Code\Arduino\KamstrupTest
ProjectDir=C:\Users\roarf\OneDrive\Documents\GitHub\AmsToMqttBridge\Code\Arduino\KamstrupTest\
vm.runtime.compiler.showwarnings=false
vm.runtime.upload.verbose=false
vm.runtime.upload.verify=false
@@ -372,7 +369,10 @@ serial.vid=0x0403
serial.pid=0x6001
serial.iserial=0000
serial.port.iserial=0000
vm.runtime.compiler.shared_library_paths=C:\Users\roarf\OneDrive\Documents\GitHub\AmsToMqttBridge\Code\Arduino\HanReader
build.path=C:\Users\roarf\AppData\Local\Temp\VMBuilds\KamstrupTest\esp8266_generic\Debug
build.project_name=KamstrupTest.ino
build.project_path=C:\Users\roarf\OneDrive\Documents\GitHub\AmsToMqttBridge\Code\Arduino\KamstrupTest
ProjectDir=C:\Users\roarf\OneDrive\Documents\GitHub\AmsToMqttBridge\Code\Arduino\KamstrupTest\
vm.runtime.compiler.auto_discover_includes=true
vm.runtime.compiler.auto_discover_includes_cache=true
build.vm.build.vmdebug=0
@@ -382,14 +382,70 @@ vm.last.buildpath=C:\Users\roarf\AppData\Local\Temp\VMBuilds\KamstrupTest\esp826
vm.build.verbose_build_properties=false
build.source.path=C:\Users\roarf\OneDrive\Documents\GitHub\AmsToMqttBridge\Code\Arduino\KamstrupTest\KamstrupTest.ino
PreProcessor.HeaderCount=1
PreProcessor.PrototypeCount=4
PreProcessor.PrototypeCount=5
vm.last.preproc.file.0.file=KamstrupTest.ino
vm.last.preproc.file.0.offset=1
vm.last.preproc.file.0.length=140
vm.last.preproc.file.0.linecount=16
vm.last.preproc.file.0.length=2924
vm.last.preproc.file.0.linecount=82
vm.last.preproc.file.0.linestart=0
vm.last.preproc.file.0.lineend=16
vm.last.preproc.file.0.lineend=82
vm.last.preproc.file.0.prefix_lines=0
vm.last.preproc.file.1.file=Crc16.cpp
vm.last.preproc.file.1.offset=0
vm.last.preproc.file.1.length=815
vm.last.preproc.file.1.linecount=38
vm.last.preproc.file.1.linestart=82
vm.last.preproc.file.1.lineend=120
vm.last.preproc.file.1.prefix_lines=0
vm.last.preproc.file.2.file=Crc16.h
vm.last.preproc.file.2.offset=0
vm.last.preproc.file.2.length=368
vm.last.preproc.file.2.linecount=24
vm.last.preproc.file.2.linestart=120
vm.last.preproc.file.2.lineend=144
vm.last.preproc.file.2.prefix_lines=0
vm.last.preproc.file.3.file=DlmsReader.cpp
vm.last.preproc.file.3.offset=0
vm.last.preproc.file.3.length=4622
vm.last.preproc.file.3.linecount=155
vm.last.preproc.file.3.linestart=144
vm.last.preproc.file.3.lineend=299
vm.last.preproc.file.3.prefix_lines=0
vm.last.preproc.file.4.file=DlmsReader.h
vm.last.preproc.file.4.offset=0
vm.last.preproc.file.4.length=949
vm.last.preproc.file.4.linecount=43
vm.last.preproc.file.4.linestart=299
vm.last.preproc.file.4.lineend=342
vm.last.preproc.file.4.prefix_lines=0
vm.last.preproc.file.5.file=HanReader.cpp
vm.last.preproc.file.5.offset=0
vm.last.preproc.file.5.length=4486
vm.last.preproc.file.5.linecount=203
vm.last.preproc.file.5.linestart=342
vm.last.preproc.file.5.lineend=545
vm.last.preproc.file.5.prefix_lines=0
vm.last.preproc.file.6.file=HanReader.h
vm.last.preproc.file.6.offset=0
vm.last.preproc.file.6.length=1111
vm.last.preproc.file.6.linecount=50
vm.last.preproc.file.6.linestart=545
vm.last.preproc.file.6.lineend=595
vm.last.preproc.file.6.prefix_lines=0
vm.last.preproc.file.7.file=Kaifa.h
vm.last.preproc.file.7.offset=0
vm.last.preproc.file.7.length=914
vm.last.preproc.file.7.linecount=56
vm.last.preproc.file.7.linestart=595
vm.last.preproc.file.7.lineend=651
vm.last.preproc.file.7.prefix_lines=0
vm.last.preproc.file.8.file=Kamstrup.h
vm.last.preproc.file.8.offset=0
vm.last.preproc.file.8.length=1019
vm.last.preproc.file.8.linecount=46
vm.last.preproc.file.8.linestart=651
vm.last.preproc.file.8.lineend=697
vm.last.preproc.file.8.prefix_lines=0
sketch_path=C:\Users\roarf\OneDrive\Documents\GitHub\AmsToMqttBridge\Code\Arduino\KamstrupTest
vm.sketch_source_path=C:\Users\roarf\AppData\Local\Temp\VMBuilds\KamstrupTest\esp8266_generic\Debug
vm.build_use_temp=1
@@ -397,7 +453,7 @@ runtime.vm.ide.platforms.path=C:\Program Files (x86)\Microsoft Visual Studio\201
build.variant.path=C:\Users\roarf\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.3.0\variants\generic
archive_file=core.a
archive_file_path=C:\Users\roarf\AppData\Local\Temp\VMBuilds\KamstrupTest\esp8266_generic\Debug\core.a
extra.time.local=58337955
extra.time.local=72039249
tools.ctags.path={runtime.tools.ctags.path}
tools.ctags.cmd.path={path}/ctags
tools.ctags.pattern="{cmd.path}" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "{source_file}"
@@ -413,4 +469,4 @@ build.path_core=C:\Users\roarf\AppData\Local\Temp\VMBuilds\KamstrupTest\esp8266_
build.path_libraries=C:\Users\roarf\AppData\Local\Temp\VMBuilds\KamstrupTest\esp8266_generic\Debug
object_file=C:\Users\roarf\AppData\Local\Temp\VMBuilds\KamstrupTest\esp8266_generic\Debug\KamstrupTest.cpp.o
source_file=C:\Users\roarf\AppData\Local\Temp\VMBuilds\KamstrupTest\esp8266_generic\Debug\KamstrupTest.cpp
object_files= "C:\Users\roarf\AppData\Local\Temp\VMBuilds\KamstrupTest\esp8266_generic\Debug\KamstrupTest.cpp.o" "C:\Users\roarf\AppData\Local\Temp\VMBuilds\KamstrupTest\esp8266_generic\Debug\HanReader\Crc16.cpp.o" "C:\Users\roarf\AppData\Local\Temp\VMBuilds\KamstrupTest\esp8266_generic\Debug\HanReader\DlmsReader.cpp.o" "C:\Users\roarf\AppData\Local\Temp\VMBuilds\KamstrupTest\esp8266_generic\Debug\HanReader\HanReader.cpp.o" "C:\Users\roarf\AppData\Local\Temp\VMBuilds\KamstrupTest\esp8266_generic\Debug\HanReader\KaifaHan.cpp.o"
object_files= "C:\Users\roarf\AppData\Local\Temp\VMBuilds\KamstrupTest\esp8266_generic\Debug\KamstrupTest.cpp.o" "C:\Users\roarf\AppData\Local\Temp\VMBuilds\KamstrupTest\esp8266_generic\Debug\HanReader\Crc16.cpp.o" "C:\Users\roarf\AppData\Local\Temp\VMBuilds\KamstrupTest\esp8266_generic\Debug\HanReader\DlmsReader.cpp.o" "C:\Users\roarf\AppData\Local\Temp\VMBuilds\KamstrupTest\esp8266_generic\Debug\HanReader\HanReader.cpp.o"

View File

@@ -1,15 +1,82 @@
#include <hanreader.h>
/*
* Simple sketch to simulate reading data from a Kamstrup
* AMS Meter.
*
* Created 24. October 2017 by Roar Fredriksen
*/
void setup()
#include <HanReader.h>
#include <Kamstrup.h>
// The HAN Port reader
HanReader hanReader;
byte samples[] =
// [2017-10-20 04.43.32.368 - Received 229 (0xE5) bytes]
{
0x7E, 0xA0, 0xE3, 0x2B, 0x21, 0x13, 0x98, 0x86, 0xE6, 0xE7, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00,
0x09, 0x0C, 0x07, 0xE1, 0x0A, 0x14, 0x05, 0x03, 0x2B, 0x1E, 0xFF, 0x80, 0x00, 0x00, 0x02, 0x19,
0x0A, 0x0E, 0x4B, 0x61, 0x6D, 0x73, 0x74, 0x72, 0x75, 0x70, 0x5F, 0x56, 0x30, 0x30, 0x30, 0x31,
0x09, 0x06, 0x01, 0x01, 0x00, 0x00, 0x05, 0xFF, 0x0A, 0x10, 0x35, 0x37, 0x30, 0x36, 0x35, 0x36,
0x37, 0x32, 0x37, 0x34, 0x33, 0x38, 0x39, 0x37, 0x30, 0x32, 0x09, 0x06, 0x01, 0x01, 0x60, 0x01,
0x01, 0xFF, 0x0A, 0x12, 0x36, 0x38, 0x34, 0x31, 0x31, 0x32, 0x31, 0x42, 0x4E, 0x32, 0x34, 0x33,
0x31, 0x30, 0x31, 0x30, 0x34, 0x30, 0x09, 0x06, 0x01, 0x01, 0x01, 0x07, 0x00, 0xFF, 0x06, 0x00,
0x00, 0x05, 0xBC, 0x09, 0x06, 0x01, 0x01, 0x02, 0x07, 0x00, 0xFF, 0x06, 0x00, 0x00, 0x00, 0x00,
0x09, 0x06, 0x01, 0x01, 0x03, 0x07, 0x00, 0xFF, 0x06, 0x00, 0x00, 0x00, 0x00, 0x09, 0x06, 0x01,
0x01, 0x04, 0x07, 0x00, 0xFF, 0x06, 0x00, 0x00, 0x01, 0xCE, 0x09, 0x06, 0x01, 0x01, 0x1F, 0x07,
0x00, 0xFF, 0x06, 0x00, 0x00, 0x02, 0x34, 0x09, 0x06, 0x01, 0x01, 0x33, 0x07, 0x00, 0xFF, 0x06,
0x00, 0x00, 0x00, 0xCA, 0x09, 0x06, 0x01, 0x01, 0x47, 0x07, 0x00, 0xFF, 0x06, 0x00, 0x00, 0x01,
0xFF, 0x09, 0x06, 0x01, 0x01, 0x20, 0x07, 0x00, 0xFF, 0x12, 0x00, 0xE8, 0x09, 0x06, 0x01, 0x01,
0x34, 0x07, 0x00, 0xFF, 0x12, 0x00, 0xE4, 0x09, 0x06, 0x01, 0x01, 0x48, 0x07, 0x00, 0xFF, 0x12,
0x00, 0xE9, 0xA1, 0xA5, 0x7E
};
int sampleIndex = 0;
/* add setup code here */
void setup() {
setupDebugPort();
// initialize the HanReader
// (passing Serial as the HAN port and Serial1 for debugging)
hanReader.setup(NULL, &Serial);
}
void loop()
void setupDebugPort()
{
/* add main program code here */
// Initialize the Serial1 port for debugging
// (This port is fixed to Pin2 of the ESP8266)
Serial.begin(115200);
while (!Serial) {}
Serial.setDebugOutput(true);
Serial.println("Serial1");
Serial.println("Serial debugging port initialized");
}
void loop() {
// Read one byte from the port, and see if we got a full package
if (hanReader.read(samples[sampleIndex++]))
{
// Get the list identifier
int list = hanReader.getList();
Serial.println("");
Serial.print("List #");
Serial.print((byte)list, HEX);
Serial.print(": ");
// Only care for the ACtive Power Imported, which is found in the first list
if (list == (int)Kamstrup::List1)
{
int power = hanReader.getInt((int)Kamstrup_List1::Kamstrup_List1_ActivePowerPos);
Serial.print("Power consumtion is right now: ");
Serial.print(power);
Serial.println(" W");
}
}
delay(10);
if (sampleIndex >= sizeof(samples))
{
delay(2000);
sampleIndex = 0;
}
}

View File

@@ -8,6 +8,10 @@ EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HanReader", "..\HanReader\HanReader.vcxitems", "{CD0F5364-923B-49E4-8BE5-EA7D8A60DF80}"
EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
..\HanReader\HanReader.vcxitems*{c5f80730-f44f-4478-bdae-6634efc2ca88}*SharedItemsImports = 4
..\HanReader\HanReader.vcxitems*{cd0f5364-923b-49e4-8be5-ea7d8a60df80}*SharedItemsImports = 9
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x86 = Debug|x86
Release|x86 = Release|x86

View File

@@ -35,6 +35,9 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
<Import Project="..\HanReader\HanReader.vcxitems" Label="Shared" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
@@ -48,7 +51,7 @@
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>$(ProjectDir)..\KamstrupTest;$(ProjectDir)..\..\..\..\..\..\..\..\..\Program Files (x86)\Arduino\libraries;$(ProjectDir)..\..\..\..\..\..\..\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries;$(ProjectDir)..\..\..\..\..\..\..\Google Drive\Private\Elektronikk\Arduino\libraries;$(ProjectDir)..\..\..\..\..\..\..\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266;$(ProjectDir)..\..\..\..\..\..\..\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\libb64;$(ProjectDir)..\..\..\..\..\..\..\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs;$(ProjectDir)..\..\..\..\..\..\..\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\umm_malloc;$(ProjectDir)..\..\..\..\..\..\..\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.3.0\variants\generic;$(ProjectDir)..\..\..\..\..\..\..\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.3.0\tools\sdk\include;$(ProjectDir)..\..\..\..\..\..\..\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.3.0\tools\sdk\lwip\include;$(ProjectDir)..\..\..\..\..\..\..\AppData\Local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2;$(ProjectDir)..\..\..\..\..\..\..\AppData\Local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\xtensa-lx106-elf;$(ProjectDir)..\..\..\..\..\..\..\AppData\Local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include;$(ProjectDir)..\..\..\..\..\..\..\AppData\Local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\lib\gcc\xtensa-lx106-elf\4.8.2\include;$(ProjectDir)..\..\..\..\..\..\..\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.3.0\tools\sdk\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(ProjectDir)..\KamstrupTest;$(ProjectDir)..\HanReader\src;$(ProjectDir)..\..\..\..\..\..\..\..\..\Program Files (x86)\Arduino\libraries;$(ProjectDir)..\..\..\..\..\..\..\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries;$(ProjectDir)..\..\..\..\..\..\..\Google Drive\Private\Elektronikk\Arduino\libraries;$(ProjectDir)..\..\..\..\..\..\..\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266;$(ProjectDir)..\..\..\..\..\..\..\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\libb64;$(ProjectDir)..\..\..\..\..\..\..\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs;$(ProjectDir)..\..\..\..\..\..\..\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\umm_malloc;$(ProjectDir)..\..\..\..\..\..\..\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.3.0\variants\generic;$(ProjectDir)..\..\..\..\..\..\..\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.3.0\tools\sdk\include;$(ProjectDir)..\..\..\..\..\..\..\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.3.0\tools\sdk\lwip\include;$(ProjectDir)..\..\..\..\..\..\..\AppData\Local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2;$(ProjectDir)..\..\..\..\..\..\..\AppData\Local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\xtensa-lx106-elf;$(ProjectDir)..\..\..\..\..\..\..\AppData\Local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include;$(ProjectDir)..\..\..\..\..\..\..\AppData\Local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\lib\gcc\xtensa-lx106-elf\4.8.2\include;$(ProjectDir)..\..\..\..\..\..\..\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.3.0\tools\sdk\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<ForcedIncludeFiles>$(ProjectDir)__vm\.KamstrupTest.vsarduino.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
<IgnoreStandardIncludePath>false</IgnoreStandardIncludePath>
<PreprocessorDefinitions>__ESP8266_ESp8266__;__ESP8266_ESP8266__;__ets__;ICACHE_FLASH;F_CPU=80000000L;LWIP_OPEN_SRC;ARDUINO=106012;ARDUINO_ESP8266_ESP01;ARDUINO_ARCH_ESP8266;ESP8266;__cplusplus=201103L;_VMICRO_INTELLISENSE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -88,4 +91,9 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
<ProjectExtensions>
<VisualStudio>
<UserProperties custom_esp8266_generic_UploadSpeed="115200" arduino.upload.port="COM3" />
</VisualStudio>
</ProjectExtensions>
</Project>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long