mirror of
https://github.com/UtilitechAS/amsreader-firmware.git
synced 2026-01-22 18:51:25 +00:00
Kamstrup parsing working
This commit is contained in:
parent
d144e293e2
commit
d1c2ca7093
@ -19,15 +19,15 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<!-- <ClInclude Include="$(MSBuildThisFileDirectory)HanReader.h" /> -->
|
||||
<ClInclude Include="$(MSBuildThisFileDirectory)..\KamstrupTest\Kamstrup.h" />
|
||||
<ClInclude Include="$(MSBuildThisFileDirectory)src\Crc16.h" />
|
||||
<ClInclude Include="$(MSBuildThisFileDirectory)src\DlmsReader.h" />
|
||||
<ClInclude Include="$(MSBuildThisFileDirectory)src\HanReader.h" />
|
||||
<ClInclude Include="$(MSBuildThisFileDirectory)src\KaifaHan.h" />
|
||||
<ClInclude Include="$(MSBuildThisFileDirectory)src\Kaifa.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="$(MSBuildThisFileDirectory)src\Crc16.cpp" />
|
||||
<ClCompile Include="$(MSBuildThisFileDirectory)src\DlmsReader.cpp" />
|
||||
<ClCompile Include="$(MSBuildThisFileDirectory)src\HanReader.cpp" />
|
||||
<ClCompile Include="$(MSBuildThisFileDirectory)src\KaifaHan.cpp" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@ -20,9 +20,6 @@
|
||||
<ClCompile Include="C:\Users\roarf\OneDrive\Documents\GitHub\AmsToMqttBridge\Code\Arduino\HanReader\src\HanReader.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Users\roarf\OneDrive\Documents\GitHub\AmsToMqttBridge\Code\Arduino\HanReader\src\KaifaHan.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Text Include="$(MSBuildThisFileDirectory)readme.txt" />
|
||||
@ -38,7 +35,10 @@
|
||||
<ClInclude Include="C:\Users\roarf\OneDrive\Documents\GitHub\AmsToMqttBridge\Code\Arduino\HanReader\src\HanReader.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="C:\Users\roarf\OneDrive\Documents\GitHub\AmsToMqttBridge\Code\Arduino\HanReader\src\KaifaHan.h">
|
||||
<ClInclude Include="C:\Users\roarf\OneDrive\Documents\GitHub\AmsToMqttBridge\Code\Arduino\HanReader\..\KamstrupTest\Kamstrup.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="C:\Users\roarf\OneDrive\Documents\GitHub\AmsToMqttBridge\Code\Arduino\HanReader\src\Kaifa.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
|
||||
@ -8,11 +8,14 @@ HanReader::HanReader()
|
||||
void HanReader::setup(HardwareSerial *hanPort, unsigned long baudrate, SerialConfig config, Stream *debugPort)
|
||||
{
|
||||
// Initialize H/W serial port for MBus communication
|
||||
hanPort->begin(baudrate, config);
|
||||
while (!hanPort) {}
|
||||
bytesRead = 0;
|
||||
if (hanPort != NULL)
|
||||
{
|
||||
hanPort->begin(baudrate, config);
|
||||
while (!hanPort) {}
|
||||
}
|
||||
|
||||
han = hanPort;
|
||||
|
||||
bytesRead = 0;
|
||||
debug = debugPort;
|
||||
if (debug) debug->println("MBUS serial setup complete");
|
||||
}
|
||||
@ -27,44 +30,174 @@ void HanReader::setup(HardwareSerial *hanPort, Stream *debugPort)
|
||||
setup(hanPort, 2400, SERIAL_8E1, debugPort);
|
||||
}
|
||||
|
||||
bool HanReader::read()
|
||||
bool HanReader::read(byte data)
|
||||
{
|
||||
if (han->available())
|
||||
{
|
||||
byte newByte = han->read();
|
||||
if (reader.Read(newByte))
|
||||
{
|
||||
bytesRead = reader.GetRawData(buffer, 0, 512);
|
||||
list = (List)kaifa.GetListID(buffer, 0, bytesRead);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
if (reader.Read(data))
|
||||
{
|
||||
bytesRead = reader.GetRawData(buffer, 0, 512);
|
||||
list = getInt(1, buffer, 0, bytesRead);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
List HanReader::getList()
|
||||
bool HanReader::read()
|
||||
{
|
||||
if (han->available())
|
||||
{
|
||||
byte newByte = han->read();
|
||||
return read(newByte);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
int HanReader::getList()
|
||||
{
|
||||
return list;
|
||||
}
|
||||
|
||||
time_t HanReader::getPackageTime()
|
||||
{
|
||||
return kaifa.GetPackageTime(buffer, 0, bytesRead);
|
||||
return getTime(0);
|
||||
}
|
||||
|
||||
time_t HanReader::getTime(int objectId)
|
||||
{
|
||||
return getTime(objectId, buffer, 0, bytesRead);
|
||||
}
|
||||
|
||||
int HanReader::getInt(List1_ObisObjects objectId) { return getInt((int)objectId); }
|
||||
int HanReader::getInt(List2_ObisObjects objectId) { return getInt((int)objectId); }
|
||||
int HanReader::getInt(List3_ObisObjects objectId) { return getInt((int)objectId); }
|
||||
int HanReader::getInt(int objectId)
|
||||
{
|
||||
return kaifa.GetInt(objectId, buffer, 0, bytesRead);
|
||||
return getInt(objectId, buffer, 0, bytesRead);
|
||||
}
|
||||
|
||||
String HanReader::getString(List1_ObisObjects objectId) { return getString((int)objectId); }
|
||||
String HanReader::getString(List2_ObisObjects objectId) { return getString((int)objectId); }
|
||||
String HanReader::getString(List3_ObisObjects objectId) { return getString((int)objectId); }
|
||||
String HanReader::getString(int objectId)
|
||||
{
|
||||
return kaifa.GetString(objectId, buffer, 0, bytesRead);
|
||||
return getString(objectId, buffer, 0, bytesRead);
|
||||
}
|
||||
|
||||
|
||||
int HanReader::findValuePosition(int dataPosition, byte *buffer, int start, int length)
|
||||
{
|
||||
for (int i = start + dataHeader; i<length; i++)
|
||||
{
|
||||
if (dataPosition-- == 0)
|
||||
return i;
|
||||
else if (buffer[i] == 0x0A) // OBIS code value
|
||||
i += buffer[i + 1] + 1;
|
||||
else if (buffer[i] == 0x09) // string value
|
||||
i += buffer[i + 1] + 1;
|
||||
else if (buffer[i] == 0x02) // byte value (1 byte)
|
||||
i += 1;
|
||||
else if (buffer[i] == 0x12) // integer value (2 bytes)
|
||||
i += 2;
|
||||
else if (buffer[i] == 0x06) // integer value (4 bytes)
|
||||
i += 4;
|
||||
else
|
||||
{
|
||||
if (debug)
|
||||
{
|
||||
debug->print("Unknown data type found: 0x");
|
||||
debug->println(buffer[i], HEX);
|
||||
}
|
||||
return 0; // unknown data type found
|
||||
}
|
||||
}
|
||||
|
||||
if (debug)
|
||||
{
|
||||
debug->print("Passed the end of the data. Length was: ");
|
||||
debug->println(length);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
time_t HanReader::getTime(int dataPosition, byte *buffer, int start, int length)
|
||||
{
|
||||
int timeStart = findValuePosition(dataPosition, buffer, start, length);
|
||||
int year = buffer[start + timeStart] << 8 |
|
||||
buffer[start + timeStart + 1];
|
||||
|
||||
int month = buffer[start + timeStart + 2];
|
||||
int day = buffer[start + timeStart + 3];
|
||||
int hour = buffer[start + timeStart + 5];
|
||||
int minute = buffer[start + timeStart + 6];
|
||||
int second = buffer[start + timeStart + 7];
|
||||
|
||||
return toUnixTime(year, month, day, hour, minute, second);
|
||||
}
|
||||
|
||||
int HanReader::getInt(int dataPosition, byte *buffer, int start, int length)
|
||||
{
|
||||
int valuePosition = findValuePosition(dataPosition, buffer, start, length);
|
||||
|
||||
if (valuePosition > 0)
|
||||
{
|
||||
int value = 0;
|
||||
int bytes = 0;
|
||||
switch (buffer[valuePosition++])
|
||||
{
|
||||
case 0x12:
|
||||
bytes = 2;
|
||||
break;
|
||||
case 0x06:
|
||||
bytes = 4;
|
||||
break;
|
||||
case 0x02:
|
||||
bytes = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
for (int i = valuePosition; i < valuePosition + bytes; i++)
|
||||
{
|
||||
value = value << 8 | buffer[i];
|
||||
}
|
||||
|
||||
debug->println(value);
|
||||
return value;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
String HanReader::getString(int dataPosition, byte *buffer, int start, int length)
|
||||
{
|
||||
int valuePosition = findValuePosition(dataPosition, buffer, start, length);
|
||||
if (valuePosition > 0)
|
||||
{
|
||||
String value = String("");
|
||||
for (int i = valuePosition + 2; i < valuePosition + buffer[valuePosition + 1]; i++)
|
||||
{
|
||||
value += String((char)buffer[i]);
|
||||
}
|
||||
return value;
|
||||
}
|
||||
return String("");
|
||||
}
|
||||
|
||||
time_t HanReader::toUnixTime(int year, int month, int day, int hour, int minute, int second)
|
||||
{
|
||||
byte daysInMonth[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
|
||||
long secondsPerMinute = 60;
|
||||
long secondsPerHour = secondsPerMinute * 60;
|
||||
long secondsPerDay = secondsPerHour * 24;
|
||||
|
||||
long time = (year - 1970) * secondsPerDay * 365L;
|
||||
|
||||
for (int yearCounter = 1970; yearCounter<year; yearCounter++)
|
||||
if ((yearCounter % 4 == 0) && ((yearCounter % 100 != 0) || (yearCounter % 400 == 0)))
|
||||
time += secondsPerDay;
|
||||
|
||||
if (month > 2 && (year % 4 == 0) && ((year % 100 != 0) || (year % 400 == 0)))
|
||||
time += secondsPerDay;
|
||||
|
||||
for (int monthCounter = 1; monthCounter<month; monthCounter++)
|
||||
time += daysInMonth[monthCounter - 1] * secondsPerDay;
|
||||
|
||||
time += (day - 1) * secondsPerDay;
|
||||
time += hour * secondsPerHour;
|
||||
time += minute * secondsPerMinute;
|
||||
time += second;
|
||||
|
||||
return (time_t)time;
|
||||
}
|
||||
@ -8,37 +8,41 @@
|
||||
#endif
|
||||
|
||||
|
||||
#include "KaifaHan.h"
|
||||
#include "DlmsReader.h"
|
||||
|
||||
|
||||
class HanReader
|
||||
{
|
||||
public:
|
||||
HanReader();
|
||||
void setup(HardwareSerial *hanPort);
|
||||
void setup(HardwareSerial *hanPort, Stream *debugPort);
|
||||
void setup(HardwareSerial *hanPort, unsigned long baudrate, SerialConfig config, Stream *debugPort);
|
||||
bool read();
|
||||
List getList();
|
||||
time_t getPackageTime();
|
||||
int getInt(List1_ObisObjects objectId);
|
||||
int getInt(List2_ObisObjects objectId);
|
||||
int getInt(List3_ObisObjects objectId);
|
||||
int getInt(int objectId);
|
||||
String getString(List1_ObisObjects objectId);
|
||||
String getString(List2_ObisObjects objectId);
|
||||
String getString(List3_ObisObjects objectId);
|
||||
String getString(int objectId);
|
||||
public:
|
||||
const uint dataHeader = 8;
|
||||
|
||||
private:
|
||||
Stream *debug;
|
||||
HardwareSerial *han;
|
||||
byte buffer[512];
|
||||
int bytesRead;
|
||||
KaifaHan kaifa;
|
||||
DlmsReader reader;
|
||||
List list;
|
||||
HanReader();
|
||||
void setup(HardwareSerial *hanPort);
|
||||
void setup(HardwareSerial *hanPort, Stream *debugPort);
|
||||
void setup(HardwareSerial *hanPort, unsigned long baudrate, SerialConfig config, Stream *debugPort);
|
||||
bool read();
|
||||
bool read(byte data);
|
||||
int getList();
|
||||
time_t getPackageTime();
|
||||
int getInt(int objectId);
|
||||
String getString(int objectId);
|
||||
time_t getTime(int objectId);
|
||||
|
||||
private:
|
||||
Stream *debug;
|
||||
HardwareSerial *han;
|
||||
byte buffer[512];
|
||||
int bytesRead;
|
||||
DlmsReader reader;
|
||||
int list;
|
||||
|
||||
int findValuePosition(int dataPosition, byte *buffer, int start, int length);
|
||||
|
||||
long getTime(int dataPosition, byte *buffer, int start, int length);
|
||||
int getInt(int dataPosition, byte *buffer, int start, int length);
|
||||
String getString(int dataPosition, byte *buffer, int start, int length);
|
||||
|
||||
time_t toUnixTime(int year, int month, int day, int hour, int minute, int second);
|
||||
};
|
||||
|
||||
|
||||
|
||||
55
Code/Arduino/HanReader/src/Kaifa.h
Normal file
55
Code/Arduino/HanReader/src/Kaifa.h
Normal file
@ -0,0 +1,55 @@
|
||||
#ifndef _KAIFA_h
|
||||
#define _KAIFA_h
|
||||
|
||||
enum class Kaifa : byte {
|
||||
List1 = 0x01,
|
||||
List2 = 0x0D,
|
||||
List3 = 0x12
|
||||
};
|
||||
|
||||
enum class Kaifa_List1_ObisObjects {
|
||||
ActivePowerImported
|
||||
};
|
||||
|
||||
enum class Kaifa_List2_ObisObjects {
|
||||
Time,
|
||||
ListID,
|
||||
ObisListVersionIdentifier,
|
||||
MeterID,
|
||||
MeterType,
|
||||
ActivePowerImported,
|
||||
ActivePowerExported,
|
||||
ReactivePowerImported,
|
||||
ReactivePowerExported,
|
||||
CurrentPhaseL1,
|
||||
CurrentPhaseL2,
|
||||
CurrentPhaseL3,
|
||||
VoltagePhaseL1,
|
||||
VoltagePhaseL2,
|
||||
VoltagePhaseL3
|
||||
};
|
||||
|
||||
enum class Kaifa_List3_ObisObjects {
|
||||
Time,
|
||||
ListID,
|
||||
ObisListVersionIdentifier,
|
||||
MeterID,
|
||||
MeterType,
|
||||
ActivePowerImported,
|
||||
ActivePowerExported,
|
||||
ReactivePowerImported,
|
||||
ReactivePowerExported,
|
||||
CurrentPhaseL1,
|
||||
CurrentPhaseL2,
|
||||
CurrentPhaseL3,
|
||||
VoltagePhaseL1,
|
||||
VoltagePhaseL2,
|
||||
VoltagePhaseL3,
|
||||
ClockAndDate,
|
||||
TotalActiveEnergyImported,
|
||||
TotalActiveEnergyExported,
|
||||
TotalReactiveEnergyImported,
|
||||
TotalReactiveEnergyExported
|
||||
};
|
||||
|
||||
#endif
|
||||
@ -1,104 +0,0 @@
|
||||
#include "KaifaHan.h"
|
||||
|
||||
|
||||
byte KaifaHan::GetListID(byte *buffer, int start, int length)
|
||||
{
|
||||
if (length > 23)
|
||||
{
|
||||
byte list = buffer[start + 23];
|
||||
if (list == (byte)List::List1) return (byte)List::List1;
|
||||
if (list == (byte)List::List2) return (byte)List::List2;
|
||||
if (list == (byte)List::List3) return (byte)List::List3;
|
||||
}
|
||||
return (byte)List::ListUnknown;
|
||||
}
|
||||
|
||||
long KaifaHan::GetPackageTime(byte *buffer, int start, int length)
|
||||
{
|
||||
const int timeStart = 10;
|
||||
int year = buffer[start + timeStart] << 8 |
|
||||
buffer[start + timeStart + 1];
|
||||
|
||||
int month = buffer[start + timeStart + 2];
|
||||
int day = buffer[start + timeStart + 3];
|
||||
int hour = buffer[start + timeStart + 5];
|
||||
int minute = buffer[start + timeStart + 6];
|
||||
int second = buffer[start + timeStart + 7];
|
||||
|
||||
return toUnixTime(year, month, day, hour, minute, second);
|
||||
}
|
||||
|
||||
int KaifaHan::GetInt(int dataPosition, byte *buffer, int start, int length)
|
||||
{
|
||||
int valuePosition = findValuePosition(dataPosition, buffer, start, length);
|
||||
if (valuePosition > 0)
|
||||
{
|
||||
int value = 0;
|
||||
for (int i = valuePosition + 1; i < valuePosition + 5; i++)
|
||||
{
|
||||
value = value << 8 | buffer[i];
|
||||
}
|
||||
return value;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int KaifaHan::findValuePosition(int dataPosition, byte *buffer, int start, int length)
|
||||
{
|
||||
const int dataStart = 24;
|
||||
for (int i=start + dataStart; i<length; i++)
|
||||
{
|
||||
if (dataPosition-- == 0)
|
||||
return i;
|
||||
else if (buffer[i] == 0x09) // string value
|
||||
i += buffer[i+1] + 1;
|
||||
else if (buffer[i] == 0x06) // integer value
|
||||
i += 4;
|
||||
else
|
||||
return 0; // unknown data type found
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
String KaifaHan::GetString(int dataPosition, byte *buffer, int start, int length)
|
||||
{
|
||||
int valuePosition = findValuePosition(dataPosition, buffer, start, length);
|
||||
if (valuePosition > 0)
|
||||
{
|
||||
String value = String("");
|
||||
for (int i = valuePosition + 2; i < valuePosition + buffer[valuePosition + 1]; i++)
|
||||
{
|
||||
value += String((char)buffer[i]);
|
||||
}
|
||||
return value;
|
||||
}
|
||||
return String("");
|
||||
}
|
||||
|
||||
time_t KaifaHan::toUnixTime(int year, int month, int day, int hour, int minute, int second)
|
||||
{
|
||||
byte daysInMonth[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
|
||||
long secondsPerMinute = 60;
|
||||
long secondsPerHour = secondsPerMinute * 60;
|
||||
long secondsPerDay = secondsPerHour * 24;
|
||||
|
||||
long time = (year - 1970) * secondsPerDay * 365L;
|
||||
|
||||
for (int yearCounter = 1970; yearCounter<year; yearCounter++)
|
||||
if ((yearCounter % 4 == 0) && ((yearCounter % 100 != 0) || (yearCounter % 400 == 0)))
|
||||
time += secondsPerDay;
|
||||
|
||||
if (month > 2 && (year % 4 == 0) && ((year % 100 != 0) || (year % 400 == 0)))
|
||||
time += secondsPerDay;
|
||||
|
||||
for (int monthCounter = 1; monthCounter<month; monthCounter++)
|
||||
time += daysInMonth[monthCounter - 1] * secondsPerDay;
|
||||
|
||||
time += (day - 1) * secondsPerDay;
|
||||
time += hour * secondsPerHour;
|
||||
time += minute * secondsPerMinute;
|
||||
time += second;
|
||||
|
||||
return (time_t)time;
|
||||
}
|
||||
|
||||
@ -1,73 +0,0 @@
|
||||
#ifndef _KAIFAHAN_h
|
||||
#define _KAIFAHAN_h
|
||||
|
||||
#if defined(ARDUINO) && ARDUINO >= 100
|
||||
#include "arduino.h"
|
||||
#else
|
||||
#include "WProgram.h"
|
||||
#endif
|
||||
|
||||
class KaifaHan
|
||||
{
|
||||
public:
|
||||
byte GetListID(byte *buffer, int start, int length);
|
||||
long GetPackageTime(byte *buffer, int start, int length);
|
||||
int GetInt(int dataPosition, byte *buffer, int start, int length);
|
||||
String GetString(int dataPosition, byte *buffer, int start, int length);
|
||||
protected:
|
||||
|
||||
private:
|
||||
int findValuePosition(int dataPosition, byte *buffer, int start, int length);
|
||||
time_t toUnixTime(int year, int month, int day, int hour, int minute, int second);
|
||||
};
|
||||
|
||||
enum class List : byte {
|
||||
ListUnknown = 0x00,
|
||||
List1 = 0x01,
|
||||
List2 = 0x0D,
|
||||
List3 = 0x12
|
||||
};
|
||||
|
||||
|
||||
enum class List1_ObisObjects {
|
||||
ActivePowerImported
|
||||
};
|
||||
|
||||
enum class List2_ObisObjects {
|
||||
ObisListVersionIdentifier,
|
||||
MeterID,
|
||||
MeterType,
|
||||
ActivePowerImported,
|
||||
ActivePowerExported,
|
||||
ReactivePowerImported,
|
||||
ReactivePowerExported,
|
||||
CurrentPhaseL1,
|
||||
CurrentPhaseL2,
|
||||
CurrentPhaseL3,
|
||||
VoltagePhaseL1,
|
||||
VoltagePhaseL2,
|
||||
VoltagePhaseL3
|
||||
};
|
||||
|
||||
enum class List3_ObisObjects {
|
||||
ObisListVersionIdentifier,
|
||||
MeterID,
|
||||
MeterType,
|
||||
ActivePowerImported,
|
||||
ActivePowerExported,
|
||||
ReactivePowerImported,
|
||||
ReactivePowerExported,
|
||||
CurrentPhaseL1,
|
||||
CurrentPhaseL2,
|
||||
CurrentPhaseL3,
|
||||
VoltagePhaseL1,
|
||||
VoltagePhaseL2,
|
||||
VoltagePhaseL3,
|
||||
ClockAndDate,
|
||||
TotalActiveEnergyImported,
|
||||
TotalActiveEnergyExported,
|
||||
TotalReactiveEnergyImported,
|
||||
TotalReactiveEnergyExported
|
||||
};
|
||||
|
||||
#endif
|
||||
45
Code/Arduino/HanReader/src/Kamstrup.h
Normal file
45
Code/Arduino/HanReader/src/Kamstrup.h
Normal file
@ -0,0 +1,45 @@
|
||||
// Kamstrup.h
|
||||
|
||||
#ifndef _KAMSTRUP_h
|
||||
#define _KAMSTRUP_h
|
||||
|
||||
|
||||
enum class Kamstrup
|
||||
{
|
||||
List1 = 0x19
|
||||
};
|
||||
|
||||
enum class Kamstrup_List1
|
||||
{
|
||||
Kamstrup_List1_Time,
|
||||
Kamstrup_List1_ListID,
|
||||
Kamstrup_List1_ListVersionIdentifier,
|
||||
Kamstrup_List1_MeterID_OBIS,
|
||||
Kamstrup_List1_MeterID,
|
||||
Kamstrup_List1_MeterType_OBIS,
|
||||
Kamstrup_List1_MeterType,
|
||||
Kamstrup_List1_ActivePowerPos_OBIS,
|
||||
Kamstrup_List1_ActivePowerPos,
|
||||
Kamstrup_List1_ActivePowerNeg_OBIS,
|
||||
Kamstrup_List1_ActivePowerNeg,
|
||||
Kamstrup_List1_ReactivePowerPos_OBIS,
|
||||
Kamstrup_List1_ReactivePowerPos,
|
||||
Kamstrup_List1_ReactivePowerNeg_OBIS,
|
||||
Kamstrup_List1_ReactivePowerNeg,
|
||||
Kamstrup_List1_CurrentL1_OBIS,
|
||||
Kamstrup_List1_CurrentL1,
|
||||
Kamstrup_List1_CurrentL2_OBIS,
|
||||
Kamstrup_List1_CurrentL2,
|
||||
Kamstrup_List1_CurrentL3_OBIS,
|
||||
Kamstrup_List1_CurrentL3,
|
||||
Kamstrup_List1_VoltageL1_OBIS,
|
||||
Kamstrup_List1_VoltageL1,
|
||||
Kamstrup_List1_VoltageL2_OBIS,
|
||||
Kamstrup_List1_VoltageL2,
|
||||
Kamstrup_List1_VoltageL3_OBIS,
|
||||
Kamstrup_List1_VoltageL3
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -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
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -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"
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
@ -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
|
||||
|
||||
@ -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
12
Code/Arduino/KamstrupTest/__vm/Upload.vmps.xml
Normal file
12
Code/Arduino/KamstrupTest/__vm/Upload.vmps.xml
Normal file
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user