Merge pull request #313 from cyberman54/ifdef-dev

Ifdef dev
This commit is contained in:
Verkehrsrot 2019-03-13 21:47:56 +01:00 committed by GitHub
commit 667107e3d7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
24 changed files with 268 additions and 245 deletions

View File

@ -5,7 +5,9 @@
#include "senddata.h"
#include "rcommand.h"
#include "spislave.h"
#if(HAS_LORA)
#include <lmic.h>
#endif
#if (HAS_BME)
#include "bmesensor.h"

View File

@ -123,15 +123,15 @@ extern time_t userUTCTime;
#include "payload.h"
#include "blescan.h"
#ifdef HAS_GPS
#if(HAS_GPS)
#include "gpsread.h"
#endif
#ifdef HAS_LORA
#if(HAS_LORA)
#include "lorawan.h"
#endif
#ifdef HAS_DISPLAY
#if(HAS_DISPLAY)
#include "display.h"
#endif
@ -147,7 +147,7 @@ extern time_t userUTCTime;
#include "antenna.h"
#endif
#ifdef HAS_SENSORS
#if(HAS_SENSORS)
#include "sensor.h"
#endif

View File

@ -14,7 +14,7 @@
void irqHandler(void *pvParameters);
#ifdef HAS_DISPLAY
#if(HAS_DISPLAY)
#include "display.h"
void IRAM_ATTR DisplayIRQ();
#endif

View File

@ -16,6 +16,8 @@
#include "irqhandler.h"
#include "led.h"
#include "spislave.h"
#if(HAS_LORA)
#include "lorawan.h"
#endif
#include "timekeeper.h"
#endif

View File

@ -18,7 +18,7 @@ void start_ota_update();
int version_compare(const String v1, const String v2);
void display(const uint8_t row, const std::string status,
const std::string msg);
#ifdef HAS_DISPLAY
#if(HAS_DISPLAY)
void show_progress(unsigned long current, unsigned long size);
#endif

View File

@ -4,7 +4,9 @@
#include "senddata.h"
#include "cyclic.h"
#include "configmanager.h"
#if(HAS_LORA)
#include "lorawan.h"
#endif
#include "macsniff.h"
#include <rom/rtc.h>
#include "cyclic.h"

View File

@ -2,7 +2,9 @@
#define _SENDDATA_H
#include "spislave.h"
#if(HAS_LORA)
#include "lorawan.h"
#endif
#include "cyclic.h"
extern Ticker sendcycler;

View File

@ -6,7 +6,7 @@
#include "TimeLib.h"
#include "irqhandler.h"
#ifdef HAS_GPS
#if(HAS_GPS)
#include "gpsread.h"
#endif
#ifdef HAS_IF482

View File

@ -1,4 +1,4 @@
std::array<uint32_t, 1552> vendors = {
std::array<uint32_t, 1617> vendors = {
0x38f23e, 0x807abf, 0x90e7c4, 0x7c6193, 0x485073, 0x74e28c, 0x8463d6,
0xd48f33, 0x2c8a72, 0x980d2e, 0xa826d9, 0xd4206d, 0x00155d, 0x806c1b,
0xa470d6, 0x985fd3, 0x1c69a5, 0x382de8, 0xd087e2, 0x205531, 0x5440ad,
@ -39,185 +39,195 @@ std::array<uint32_t, 1552> vendors = {
0x8c7c92, 0x7831c1, 0xf437b7, 0x50ead6, 0x28e02c, 0x60c547, 0x7c11be,
0x003ee1, 0xc01ada, 0x34363b, 0xc81ee7, 0x9cfc01, 0xccc760, 0x087402,
0x285aeb, 0x28f076, 0x70700d, 0x9cf48e, 0xfcd848, 0x001cb3, 0x64b9e8,
0x108ee0, 0x68e7c2, 0x3c576c, 0x0ce0dc, 0x702ad5, 0x889f6f, 0x1c427d,
0x5029f5, 0x4c569d, 0x14c213, 0x38539c, 0x58e6ba, 0xb831b5, 0x90633b,
0x782327, 0xf8a45f, 0x8cbebe, 0x640980, 0x98fae3, 0x185936, 0x9c99a0,
0xc40bcb, 0xecd09f, 0xf4f5db, 0xe446da, 0x18f0e4, 0x9c2ea1, 0x50a009,
0x20a60c, 0xf8e94e, 0xf40616, 0xbcb863, 0x188796, 0x002376, 0x84100d,
0x04c23e, 0x5c5188, 0xe89120, 0x9c6c15, 0x4886e8, 0x2c2997, 0x102f6b,
0x00eebd, 0x281878, 0x6045bd, 0x7ced8d, 0xe85b5b, 0x000d3a, 0xe09861,
0xf4f1e1, 0x60beb5, 0xb4e1c4, 0x70aab2, 0x0026ff, 0x406f2a, 0x002557,
0xf05a09, 0x503275, 0x28cc01, 0xb46293, 0x04fe31, 0x845181, 0xd831cf,
0xf8d0bd, 0xfcc734, 0xe4b021, 0xb0ec71, 0x3cbbfd, 0x2cae2b, 0xc488e5,
0x7c9122, 0xe8b4c8, 0x18895b, 0xe0db10, 0xe09971, 0x6077e2, 0x680571,
0x6c2f2c, 0x300d43, 0x6c2779, 0x607edd, 0x9c2a83, 0xe45d75, 0xe4faed,
0xc83f26, 0x54f201, 0xa06090, 0xac3743, 0x141f78, 0x006f64, 0xdc6672,
0x001e7d, 0x3c6200, 0x0024e9, 0x002399, 0xe4e0c5, 0xe8039a, 0xc4731e,
0x8c7712, 0x2013e0, 0x0007ab, 0x0021d2, 0xbc4760, 0xd0176a, 0x2cbaba,
0x24920e, 0x40d3ae, 0xf01dbc, 0x24dbed, 0xac3613, 0x1449e0, 0xc0bdd1,
0xe8508b, 0xf025b7, 0xc8ba94, 0xec1f72, 0x9852b1, 0x1489fd, 0xccfe3c,
0x789ed0, 0xe440e2, 0x1caf05, 0xe492fb, 0x0073e0, 0xbc4486, 0x380b40,
0x002490, 0x0023d7, 0xfca13e, 0xa00798, 0x945103, 0xc819f7, 0x2c4401,
0xec51bc, 0xf079e8, 0x887598, 0xd0b128, 0xd00401, 0xf06d78, 0x10683f,
0x74a722, 0x58a2b5, 0x64899a, 0x88074b, 0x64bc0c, 0xa039f7, 0x041b6d,
0x001f6b, 0x30b4b8, 0x503cea, 0x54fcf0, 0x08aed6, 0xa816d0, 0x88bd45,
0x641cb0, 0x3cdcbc, 0xf47190, 0x587a6a, 0xe4c483, 0x8cf5a3, 0x14568e,
0x8058f8, 0xf0d7aa, 0xc49ded, 0xb0aa36, 0x2c5bb8, 0x1c48ce, 0x24f5aa,
0xf877b8, 0x682737, 0x5056bf, 0x9097f3, 0x58c5cb, 0xacafb9, 0x30074d,
0x5c5181, 0x389af6, 0xe0aa96, 0x507705, 0x2c4053, 0x084acf, 0x1cddea,
0x08152f, 0xb8c111, 0x3408bc, 0x844167, 0xb4f61c, 0x68ab1e, 0x2c61f6,
0xe49adc, 0xd0817a, 0xc4618b, 0x3451c9, 0xe0b9ba, 0xd023db, 0xb88d12,
0xb817c2, 0x68a86d, 0x78a3e4, 0x680927, 0x60facd, 0x1caba7, 0x784f43,
0x404d7f, 0x7c04d0, 0xbc9fef, 0x8866a5, 0x88e87f, 0xb853ac, 0x2c3361,
0xa860b6, 0x24f094, 0x90b0ed, 0xc4b301, 0xe05f45, 0x483b38, 0xe0c767,
0x1c9e46, 0x0cd746, 0x440010, 0xe498d6, 0x606944, 0x0452f3, 0x241eeb,
0xf431c3, 0x64a5c3, 0xbc926b, 0x0050e4, 0x003065, 0x000a27, 0x001451,
0x8c7b9d, 0x88c663, 0xc82a14, 0x9803d8, 0x8c5877, 0x0019e3, 0x002312,
0x002332, 0x002436, 0x00254b, 0x0026bb, 0x70f087, 0x886b6e, 0x4c74bf,
0xe80688, 0xcc08e0, 0x5855ca, 0x5c0947, 0x38892c, 0x40831d, 0x50bc96,
0x985aeb, 0x2078f0, 0x78d75f, 0xe0accb, 0x98e0d9, 0xc0cecd, 0x70e72c,
0xd03311, 0x5cadcf, 0x006d52, 0x48437c, 0x34a395, 0x9cf387, 0xa85b78,
0x908d6c, 0x0c1539, 0xbc4cc4, 0x0cbc9f, 0xa45e60, 0x544e90, 0x9ce65e,
0x90dd5d, 0x08f69c, 0xd461da, 0xc8d083, 0x88e9fe, 0x88ae07, 0x18af8f,
0xc8b5b7, 0xa8bbcf, 0x90b21f, 0xb8e856, 0x1499e2, 0xb418d1, 0x80006e,
0x60d9c7, 0xc8f650, 0x1c1ac0, 0xe06678, 0x5c8d4e, 0xc0f2fb, 0x00f76f,
0xac87a3, 0x542696, 0xd8d1cb, 0x64a3cb, 0x44fb42, 0xf41ba1, 0x3ce072,
0xe88d28, 0xcc785f, 0xac3c0b, 0x88cb87, 0xec3586, 0xf0c1f1, 0xf4f951,
0x8cfaba, 0x5c95ae, 0xe0c97a, 0xbc52b7, 0x14109f, 0x00c3f4, 0x74eb80,
0xa82bb9, 0x7c6b9c, 0x1cc3eb, 0xbca58b, 0x70fd46, 0xd07fa0, 0x9caa1b,
0x18d717, 0xb4cb57, 0x74b587, 0xd81c79, 0x8cfe57, 0xc0a600, 0xa823fe,
0xfcaab6, 0xc0bdc8, 0xa887b3, 0x742344, 0xd832e3, 0xe06267, 0x482ca0,
0x1801f1, 0x70bbe9, 0xf0b429, 0x0c9838, 0x0c1daf, 0x28e31f, 0x14f65a,
0xd4c94b, 0x703a51, 0xdc080f, 0xf82d7c, 0x9c648b, 0x14d00d, 0x00092d,
0xf8db7f, 0xe899c4, 0x24da9b, 0x1c56fe, 0xe4907e, 0x80c5e6, 0x800184,
0xf8cfc5, 0xc808e9, 0x206274, 0x30d587, 0xc0eefb, 0x502e5c, 0x847a88,
0x0025ae, 0x002538, 0x0022a1, 0x00125a, 0x9cd917, 0x9068c3, 0x408805,
0xf8f1b6, 0x001ccc, 0x94ebcd, 0xa4e4b8, 0x389496, 0x0cb319, 0x08ee8b,
0xa89fba, 0xfc1910, 0x083d88, 0x5c2e59, 0x646cb2, 0xf884f2, 0x14b484,
0x608f5c, 0x4cbca5, 0x78595e, 0xb0d09c, 0x4ca56d, 0xa48431, 0xe4f8ef,
0x1432d1, 0xe458e7, 0x8cbfa6, 0x7840e4, 0x9000db, 0x183a2d, 0x08373d,
0x50f520, 0xa4ebd3, 0x28987b, 0xf40e22, 0x9c3aaf, 0x0821ef, 0xa0cbfd,
0x34145f, 0x6c8fb5, 0xac5f3e, 0x509ea7, 0xdccf96, 0x6c2483, 0xc09727,
0xd85b2a, 0xacc33a, 0x88797e, 0x00e091, 0x6cd032, 0xc041f6, 0x0017d5,
0x001247, 0xe4121d, 0x684898, 0xf409d8, 0xb479a7, 0x002339, 0xd487d8,
0x184617, 0x5001bb, 0x380a94, 0xd857ef, 0x1c66aa, 0x58c38b, 0x001ee2,
0x001c43, 0x001d25, 0x3c5a37, 0x549b12, 0x3c8bfe, 0x00265d, 0xd4e8b2,
0x0808c2, 0xb0c4e7, 0xd890e8, 0x34aa8b, 0x24c696, 0x181eb0, 0x20d390,
0x343111, 0x34be00, 0x78521a, 0x7825ad, 0xf4d9fb, 0x0017c9, 0x00166b,
0x00166c, 0xe47cf9, 0x002454, 0x20d5bf, 0x30cda7, 0xc87e75, 0x00233a,
0x60a4d0, 0x2c0e3d, 0x7c787e, 0xc0d3c0, 0x440444, 0xc09f05, 0xcc2d83,
0x38295a, 0x4c1a3d, 0xa81b5a, 0xdc6dcd, 0x54fa3e, 0x0c8910, 0xfcf136,
0x981dfa, 0x84a466, 0x1867b0, 0xccb11a, 0xb8bbaf, 0x60c5ad, 0x28395e,
0xc4ae12, 0xdc74a8, 0xc087eb, 0x74f61c, 0x986f60, 0x4c189a, 0x3cf591,
0x602101, 0xa89675, 0x608e08, 0x7c2edd, 0x3cf7a4, 0x342d0d, 0x94d029,
0x308454, 0x087808, 0xd03169, 0xbc5451, 0x641cae, 0xa4e975, 0xc0a53e,
0x9800c6, 0x787b8a, 0x3866f0, 0x20ee28, 0x08f4ab, 0x8c8590, 0x68ef43,
0xcc2db7, 0xd4a33d, 0xe4e0a6, 0x70ef00, 0xb0ca68, 0x9810e8, 0xb49cdf,
0xdca4ca, 0x8c8fe9, 0x98ca33, 0xfc253f, 0x183451, 0xc0847a, 0x64200c,
0x74e1b6, 0x0c771a, 0x00f4b9, 0xc8334b, 0xb8f6b1, 0xc09f42, 0x189efc,
0x6c3e6d, 0x8c2daa, 0xe4e4ab, 0x58404e, 0xdc0c5c, 0x2c200b, 0x609ac1,
0xf07960, 0x9c8ba0, 0x28a02b, 0xb44bd2, 0x9c4fda, 0x1c5cf2, 0x3871de,
0xbc5436, 0x5cf938, 0x4c3275, 0x2cf0a2, 0xecadb8, 0x9801a7, 0xb48b19,
0xe49a79, 0x406c8f, 0x00c610, 0x70dee2, 0x182032, 0x6cc26b, 0x1040f3,
0x001d4f, 0x001e52, 0x001f5b, 0x001ff3, 0x0021e9, 0x00236c, 0x002500,
0x60fb42, 0xf81edf, 0x90840d, 0xd8a25e, 0xc8bcc8, 0x28e7cf, 0xd89e3f,
0x040cce, 0xa4d1d2, 0x7cfadf, 0x101c0c, 0x001124, 0x6c709f, 0x0c3e9f,
0x34e2fd, 0x609217, 0x8863df, 0x80e650, 0x006171, 0x90fd61, 0x5c97f3,
0x6c4008, 0x24a074, 0xf02475, 0x20a2e4, 0x5cf5da, 0x649abe, 0x94e96a,
0xac293a, 0x10417f, 0xb844d9, 0xdc2b2a, 0x14205e, 0x5c1dd9, 0x18f1d8,
0xf86fc1, 0xf099b6, 0x907240, 0x0c4de9, 0xd89695, 0x0c3021, 0xf0f61c,
0xb03495, 0x848e0c, 0x949426, 0xe0f5c6, 0x28e14c, 0x54e43a, 0xc8e0eb,
0xa88808, 0x444c0c, 0x84fcfe, 0xe48b7f, 0x5c969d, 0xa8fad8, 0x7014a6,
0xa8667f, 0xd02598, 0xcc29f5, 0xdcd3a2, 0x08c5e1, 0x00bf61, 0xf80cf3,
0x30766f, 0x8c3ae3, 0x78f882, 0xb4f1da, 0x0021fb, 0xd013fd, 0xa8b86e,
0xdcbfe9, 0x306a85, 0x4466fc, 0xfca621, 0x0ccb85, 0xa4d990, 0xd003df,
0x24fce5, 0xe4b2fb, 0xf83880, 0x241b7a, 0x402619, 0xbcfed9, 0x808223,
0x3830f9, 0x6c006b, 0x38a4ed, 0xb0e235, 0x64cc2e, 0xd86375, 0x80ad16,
0x2047da, 0x8035c1, 0x9487e0, 0x7c03ab, 0xd4970b, 0xf48b32, 0x4c49e3,
0x04b167, 0xd8ce3a, 0xb8c74a, 0xfc183c, 0xc0e862, 0xec2ce2, 0x64c753,
0x38e7d8, 0xd8b377, 0xb4cef6, 0xd40b1a, 0x5882a8, 0xb4ae2b, 0x0c413e,
0xd0929e, 0x4480eb, 0xb84fd5, 0xec59e7, 0x3059b7, 0x501ac5, 0x1cb094,
0xa0f450, 0x002248, 0xec8892, 0xb07994, 0x141aa3, 0xccc3ea, 0x34bb26,
0x40786a, 0xf40b93, 0x68ed43, 0x34bb1f, 0x489d24, 0x000f86, 0xacee9e,
0xc08997, 0x2827bf, 0xf05b7b, 0x7cf90e, 0xac5a14, 0xb0c559, 0xbcd11f,
0xa0b4a5, 0x80656d, 0x48137e, 0xe83a12, 0x9c0298, 0x6c8336, 0xb8c68e,
0x74458a, 0xa49a58, 0xb4ef39, 0x14a364, 0x3ca10d, 0x206e9c, 0x183f47,
0x0c715d, 0x0c1420, 0xa80600, 0x6cf373, 0x78c3e9, 0xc83870, 0x288335,
0x44783e, 0x202d07, 0x98398e, 0x348a7b, 0xbc765e, 0x78009e, 0x68c44d,
0xf8e61a, 0x888322, 0x84b541, 0x0015b9, 0x001df6, 0xece09b, 0x606bbd,
0x0000f0, 0x4844f7, 0x1c5a3e, 0xf47b5e, 0x008701, 0xfc4203, 0x1c232c,
0xcc61e5, 0x404e36, 0x9893cc, 0x3ccd93, 0xf06bca, 0x3423ba, 0xd022be,
0xd02544, 0xbc20a4, 0x14f42a, 0xbc851f, 0xb85e7b, 0xc462ea, 0x0023d6,
0x002491, 0x001b98, 0x44f459, 0x34c3ac, 0x94d771, 0x4c3c16, 0x9401c2,
0xb43a28, 0xd0c1b1, 0xf008f1, 0x78471d, 0x3816d1, 0xd48890, 0x002566,
0x00265f, 0x5cba37, 0x3096fb, 0xf0ee10, 0xa43d78, 0xec01ee, 0xb83765,
0xc4576e, 0x90f1aa, 0x78bdbc, 0xd47ae2, 0x84c0ef, 0x7c1c68, 0xd463c6,
0x7c6456, 0x448f17, 0x04d6aa, 0x9ce063, 0xf06e0b, 0x5c865c, 0x003de8,
0x08e689, 0x7836cc, 0x08d46a, 0x485929, 0x34fcef, 0x002483, 0x001c62,
0x583f54, 0x40b0fa, 0xa8922c, 0x98d6f7, 0x505527, 0x0034da, 0xa09169,
0x88365f, 0x9c8c6e, 0xbcffeb, 0x685acf, 0xb4f7a1, 0x785dc8, 0x48c796,
0x804e70, 0x3880df, 0xdc415f, 0x30636b, 0xf45c89, 0x68dbca, 0x044bed,
0x6c8dc1, 0x38cada, 0xa4d18c, 0x186590, 0x64b0a6, 0x84fcac, 0x6c19c0,
0x20ab37, 0x203cae, 0x748d08, 0xa03be3, 0x7c6d62, 0x40d32d, 0xd83062,
0xc42c03, 0x7cc537, 0x70cd60, 0xc0d012, 0xd4dccd, 0x484baa, 0xf80377,
0x14bd61, 0xcc25ef, 0xb8782e, 0x000502, 0x0010fa, 0x000393, 0x0016cb,
0x409c28, 0x78886d, 0xa85c2c, 0x00db70, 0x0c5101, 0x086d41, 0x04d3cf,
0xbcec5d, 0x80b03d, 0xc83c85, 0xa04ea7, 0x0017f2, 0x001b63, 0x001ec2,
0x002608, 0xa4c361, 0xac7f3e, 0x280b5c, 0x90b931, 0x24a2e1, 0x80ea96,
0x600308, 0x04f13e, 0x54724f, 0x48746e, 0xd4f46f, 0x787e61, 0x60f81d,
0x4c7c5f, 0x48e9f1, 0xfce998, 0xf099bf, 0x68644b, 0x789f70, 0x24ab81,
0x581faa, 0xa46706, 0x3c0754, 0xe4ce8f, 0xe8040b, 0xb8c75d, 0x403cfc,
0x98fe94, 0xd8004d, 0x98b8e3, 0x80929f, 0x885395, 0x9c04eb, 0xa8968a,
0xdc3714, 0x40331a, 0x94f6a3, 0xd81d72, 0x70ece4, 0x38c986, 0xfcfc48,
0x4c8d79, 0x207d74, 0xf4f15a, 0x042665, 0x2cb43a, 0x689c70, 0x087045,
0x3cab8e, 0x7c6df8, 0x48d705, 0x78fd94, 0xc88550, 0x286ab8, 0x7cc3a1,
0x3cd0f8, 0x98d6bb, 0x4cb199, 0x64e682, 0x804971, 0xcc20e8, 0x209bcd,
0xf0b0e7, 0xa056f3, 0x549963, 0x28ff3c, 0x1094bb, 0xf01898, 0x48a91c,
0x58b10f, 0x304b07, 0x1496e5, 0x80ceb9, 0xcc2119, 0x0057c1, 0x14c697,
0xfc039f, 0x9c0cdf, 0x007204, 0x90e17b, 0x18810e, 0x608c4a, 0xa4d931,
0x6cc7ec, 0x647bce, 0x584498, 0xacc1ee, 0x7802f8, 0x508f4c, 0x04d13a,
0x0cf346, 0x082525, 0xf460e2, 0xa45046, 0x009ec8, 0x7c1dd9, 0xa086c6,
0x102ab3, 0xacf7f3, 0x601d91, 0x38f9d3, 0x44e66e, 0xe83617, 0x344262,
0xc09ad0, 0x902155, 0x64a769, 0xbccfcc, 0xa4516f, 0x3c8375, 0x149a10,
0x0ce725, 0xc0335e, 0x20a99b, 0x4c0bbe, 0x7c1e52, 0xdcb4c4, 0x7c6f06,
0x001dd8, 0x0017fa, 0x000a75, 0x0003ff, 0xf8e079, 0x1430c6, 0xe0757d,
0x9cd35b, 0x60af6d, 0xb85a73, 0x103047, 0x109266, 0xb047bf, 0x7c0bc6,
0x804e81, 0x244b81, 0x50a4c8, 0x8425db, 0xd8c4e9, 0x50c8e5, 0x446d6c,
0x38d40b, 0x647791, 0x781fdb, 0x08fc88, 0x30c7ae, 0x18227e, 0x00f46f,
0x9ce6e7, 0xe498d1, 0x5cca1a, 0x70288b, 0x4849c7, 0x205ef7, 0x182666,
0xc06599, 0xcc07ab, 0xe84e84, 0x50fc9f, 0xe432cb, 0x889b39, 0xbcb1f3,
0x38ece4, 0xccf9e8, 0xf0e77e, 0x5ce8eb, 0xb8d9ce, 0x70f927, 0x301966,
0x28bab5, 0x103b59, 0x6cb7f4, 0x001ee1, 0x0018af, 0xbc72b1, 0x78f7be,
0xf49f54, 0x00214c, 0x001632, 0xd0667b, 0x001377, 0x50b7c3, 0x8018a7,
0x444e1a, 0xe8e5d6, 0x5492be, 0x101dc0, 0x0021d1, 0xcc2d8c, 0x949aa9,
0x20dbab, 0x5c9960, 0x88b4a6, 0x2c5491, 0x5c70a3, 0x10f96f, 0xf01c13,
0x00aa70, 0xbcf5ac, 0xccfa00, 0xf8a9d0, 0x805a04, 0x5caf06, 0xb81daa,
0x10f1f2, 0x0025e5, 0x0022a9, 0xc49a02, 0x344df7, 0xd41a3f, 0xcc6ea4,
0xa46cf1, 0x0ca8a7, 0x54b802, 0x24181d, 0xf4c248, 0xa8515b, 0xc048e6,
0xd07714, 0x2816a8, 0x84a134, 0x1c9148, 0xc0ccf8, 0x80ed2c, 0xe8b2ac,
0x8489ad, 0x20768f, 0x28ed6a, 0x34ab37, 0x60a37d, 0x0056cd, 0xbca920,
0x5082d5, 0x9c84bf, 0x00b362, 0xf86214, 0xb0702d, 0xd0c5f3, 0x0023df,
0x0025bc, 0x00264a, 0x0026b0, 0x041e64, 0xd49a20, 0x9027e4, 0x60334b,
0x5c5948, 0x60f445, 0x5cf7e6, 0xa0d795, 0xcc088d, 0x8c8ef2, 0xf40f24,
0x24f677, 0x7867d7, 0x5433cb, 0xd0d2b0, 0xd88f76, 0x3c2ef9, 0x7081eb,
0x086698, 0x9060f1, 0x741bb2, 0x28cfe9, 0xe425e7, 0xb019c6, 0x58e28f,
0xac1f74, 0x48bf6b, 0x245ba7, 0xdc56e7, 0x347c25, 0xd4909c, 0x080007,
0x000a95, 0x002241, 0x18ee69, 0x748114, 0x18f643, 0xd0a637, 0xa01828,
0xd0034b, 0xa43135, 0x9c35eb, 0x507a55, 0xa0999b, 0x24240e, 0x903c92,
0xa88e24, 0xe8802e, 0x68ae20, 0xe0b52d, 0x80be05, 0xd8bb2c, 0xd04f7e,
0x2c1f23, 0x549f13, 0xb8098a, 0xf0dbe2, 0x8c2937, 0xdc9b9c, 0x98f0ab,
0xf0dbf8, 0xaccf5c, 0x3c15c2, 0x04489a, 0xd8cf9c, 0xa886dd, 0x54eaa8,
0xe4c63d, 0x843835, 0xc06394, 0x8c006d, 0xb09fba, 0xdc86d8, 0x78ca39,
0x18e7f4, 0xb8ff61, 0xdc2b61, 0x1093e9, 0x442a60, 0xe0f847, 0x145a05,
0x28cfda, 0x148fc6, 0x283737, 0x045453, 0xf0cba1, 0x30f7c5, 0x008865,
0x40b395, 0x3090ab, 0x1ce62b, 0xa0edcd, 0x842999, 0x74e2f5, 0x20c9d0,
0x7073cb, 0x9c207b, 0x341298, 0x9c293f, 0x7c0191, 0x70480f, 0xa4b805,
0x587f57, 0x80d605, 0xc869cd, 0xbc6c21, 0x0469f8, 0x749eaf, 0xb841a4,
0xf895ea, 0x50a67f, 0x647033, 0x846878, 0x948bc1, 0x4827ea, 0x388c50,
0xa09347, 0xc8f230, 0x1c77f6, 0xe44790, 0xd4503f, 0x40163b, 0x5c497d,
0xe47dbd, 0x503da1, 0x508569, 0x1077b1, 0x5cf6dc, 0x380195, 0xbc1485,
0x88d50c, 0x947be7, 0x54bd79, 0xdc44b6, 0x1007b6, 0xc0174d, 0xa407b6,
0x149f3c, 0xd868c3, 0xc493d9, 0x00b5d0, 0x8c83e1, 0xfcb6d8, 0x6ce85c,
0x007c2d, 0xf47def, 0x7c8bb5, 0xdcf756, 0x68dfdd, 0x64b473, 0x7451ba,
0x3480b3, 0x2082c0, 0xfc64ba, 0xc46ab7, 0x00ec0a, 0x38e60a, 0x04e598,
0x2ca9f0, 0x586b14, 0x94b01f, 0x94f6d6, 0x40bc60};
0xf8e94e, 0xf40616, 0xbcb863, 0x885a06, 0xc08c71, 0x108ee0, 0x68e7c2,
0x3c576c, 0x0ce0dc, 0x702ad5, 0x889f6f, 0x1c427d, 0x5029f5, 0x4c569d,
0x14c213, 0x38539c, 0x58e6ba, 0xb831b5, 0x90633b, 0x782327, 0xf8a45f,
0x8cbebe, 0x640980, 0x98fae3, 0x185936, 0x9c99a0, 0xc40bcb, 0xecd09f,
0xf4f5db, 0xe446da, 0x18f0e4, 0x9c2ea1, 0x50a009, 0x20a60c, 0x20326c,
0xa8346a, 0xb06fe0, 0x98460a, 0xac88fd, 0x149d99, 0x846fce, 0xe0dcff,
0x60ab67, 0x188796, 0x002376, 0x84100d, 0x04c23e, 0x5c5188, 0xe89120,
0x9c6c15, 0x4886e8, 0x2c2997, 0x102f6b, 0x00eebd, 0x281878, 0x6045bd,
0x7ced8d, 0xe85b5b, 0x000d3a, 0xe09861, 0xf4f1e1, 0x60beb5, 0xb4e1c4,
0x70aab2, 0x0026ff, 0x406f2a, 0x002557, 0xf05a09, 0x503275, 0x28cc01,
0xb46293, 0x04fe31, 0x845181, 0xd831cf, 0xf8d0bd, 0xfcc734, 0xe4b021,
0xb0ec71, 0x3cbbfd, 0x2cae2b, 0xc488e5, 0x7c9122, 0xe8b4c8, 0x18895b,
0xe0db10, 0xe09971, 0x6077e2, 0x680571, 0x6c2f2c, 0x300d43, 0x6c2779,
0x607edd, 0x9c2a83, 0xe45d75, 0xe4faed, 0xc83f26, 0x54f201, 0xa06090,
0xac3743, 0x141f78, 0x006f64, 0xdc6672, 0x001e7d, 0x3c6200, 0x0024e9,
0x002399, 0xe4e0c5, 0xe8039a, 0xc4731e, 0x8c7712, 0x2013e0, 0x0007ab,
0x0021d2, 0xbc4760, 0xd0176a, 0x2cbaba, 0x24920e, 0x40d3ae, 0xf01dbc,
0x24dbed, 0xac3613, 0x1449e0, 0xc0bdd1, 0xe8508b, 0xf025b7, 0xc8ba94,
0xec1f72, 0x9852b1, 0x1489fd, 0xccfe3c, 0x789ed0, 0xe440e2, 0x1caf05,
0xe492fb, 0x0073e0, 0xbc4486, 0x380b40, 0x002490, 0x0023d7, 0xfca13e,
0xa00798, 0x945103, 0xc819f7, 0x2c4401, 0xec51bc, 0xf079e8, 0x887598,
0xd0b128, 0xd00401, 0xf06d78, 0x10683f, 0x74a722, 0x58a2b5, 0x64899a,
0x88074b, 0x64bc0c, 0xa039f7, 0x041b6d, 0x001f6b, 0x30b4b8, 0x503cea,
0x54fcf0, 0x08aed6, 0xa816d0, 0x88bd45, 0x641cb0, 0x3cdcbc, 0xf47190,
0x587a6a, 0xe4c483, 0xfcaab6, 0xc0bdc8, 0xa887b3, 0x742344, 0xd832e3,
0xe06267, 0x482ca0, 0x1801f1, 0x70bbe9, 0xf0b429, 0x0c9838, 0x0c1daf,
0x28e31f, 0x14f65a, 0xd4c94b, 0x703a51, 0xdc080f, 0xf82d7c, 0x9c648b,
0x14d00d, 0xd467d3, 0x58c6f0, 0xc02e25, 0x804a14, 0xb85d0a, 0x941625,
0x34a8eb, 0x4883b4, 0xa8db03, 0x2479f3, 0x98b8ba, 0xd49dc0, 0x8cf5a3,
0x14568e, 0x8058f8, 0xf0d7aa, 0xc49ded, 0xb0aa36, 0x2c5bb8, 0x1c48ce,
0x24f5aa, 0xf877b8, 0x682737, 0x5056bf, 0x9097f3, 0x58c5cb, 0xacafb9,
0x30074d, 0x5c5181, 0x389af6, 0xe0aa96, 0x507705, 0x2c4053, 0x084acf,
0x1cddea, 0x08152f, 0xb8c111, 0x3408bc, 0x844167, 0xb4f61c, 0x68ab1e,
0x2c61f6, 0xe49adc, 0xd0817a, 0xc4618b, 0x3451c9, 0xe0b9ba, 0xd023db,
0xb88d12, 0xb817c2, 0x68a86d, 0x78a3e4, 0x680927, 0x60facd, 0x1caba7,
0x784f43, 0x404d7f, 0x7c04d0, 0xbc9fef, 0x8866a5, 0x88e87f, 0xb853ac,
0x2c3361, 0xa860b6, 0x24f094, 0x90b0ed, 0xc4b301, 0xe05f45, 0x483b38,
0xe0c767, 0x1c9e46, 0x0cd746, 0x440010, 0xe498d6, 0x606944, 0x0452f3,
0x241eeb, 0xf431c3, 0x64a5c3, 0xbc926b, 0x0050e4, 0x003065, 0x000a27,
0x001451, 0x8c7b9d, 0x88c663, 0xc82a14, 0x9803d8, 0x8c5877, 0x0019e3,
0x002312, 0x002332, 0x002436, 0x00254b, 0x0026bb, 0x70f087, 0x886b6e,
0x4c74bf, 0xe80688, 0xcc08e0, 0x5855ca, 0x5c0947, 0x38892c, 0x40831d,
0x50bc96, 0x985aeb, 0x2078f0, 0x78d75f, 0xe0accb, 0x98e0d9, 0xc0cecd,
0x70e72c, 0xd03311, 0x5cadcf, 0x006d52, 0x48437c, 0x34a395, 0x9cf387,
0xa85b78, 0x908d6c, 0x0c1539, 0xbc4cc4, 0x0cbc9f, 0xa45e60, 0x544e90,
0x9ce65e, 0x90dd5d, 0x08f69c, 0xd461da, 0xc8d083, 0x88e9fe, 0x88ae07,
0x18af8f, 0xc8b5b7, 0xa8bbcf, 0x90b21f, 0xb8e856, 0x1499e2, 0xb418d1,
0x80006e, 0x60d9c7, 0xc8f650, 0x1c1ac0, 0xe06678, 0x5c8d4e, 0xc0f2fb,
0x00f76f, 0xac87a3, 0x542696, 0xd8d1cb, 0x64a3cb, 0x44fb42, 0xf41ba1,
0x3ce072, 0xe88d28, 0xcc785f, 0xac3c0b, 0x88cb87, 0xec3586, 0xf0c1f1,
0xf4f951, 0x8cfaba, 0x5c95ae, 0xe0c97a, 0xbc52b7, 0x14109f, 0x00c3f4,
0x74eb80, 0xa82bb9, 0x7c6b9c, 0x1cc3eb, 0xbca58b, 0x70fd46, 0xd07fa0,
0x9caa1b, 0x18d717, 0xb4cb57, 0x74b587, 0xd81c79, 0x8cfe57, 0xc0a600,
0xa823fe, 0x00092d, 0xf8db7f, 0xe899c4, 0x24da9b, 0x1c56fe, 0xe4907e,
0x80c5e6, 0x800184, 0xf8cfc5, 0xc808e9, 0x206274, 0x30d587, 0xc0eefb,
0x502e5c, 0x847a88, 0x0025ae, 0x002538, 0x0022a1, 0x00125a, 0x9cd917,
0x9068c3, 0x408805, 0xf8f1b6, 0x001ccc, 0x94ebcd, 0xa4e4b8, 0x389496,
0x0cb319, 0x08ee8b, 0xa89fba, 0xfc1910, 0x083d88, 0x5c2e59, 0x646cb2,
0xf884f2, 0x14b484, 0x608f5c, 0x4cbca5, 0x78595e, 0xb0d09c, 0x4ca56d,
0xa48431, 0xe4f8ef, 0x1432d1, 0xe458e7, 0x8cbfa6, 0x7840e4, 0x9000db,
0x183a2d, 0x08373d, 0x50f520, 0xa4ebd3, 0x28987b, 0xf40e22, 0x9c3aaf,
0x0821ef, 0xa0cbfd, 0x34145f, 0x6c8fb5, 0xac5f3e, 0x509ea7, 0xdccf96,
0x6c2483, 0xc09727, 0xd85b2a, 0xacc33a, 0x88797e, 0x00e091, 0x6cd032,
0xc041f6, 0x0017d5, 0x001247, 0xe4121d, 0x684898, 0xf409d8, 0xb479a7,
0x002339, 0xd487d8, 0x184617, 0x5001bb, 0x380a94, 0xd857ef, 0x1c66aa,
0x58c38b, 0x001ee2, 0x001c43, 0x001d25, 0x3c5a37, 0x549b12, 0x3c8bfe,
0x00265d, 0xd4e8b2, 0x0808c2, 0xb0c4e7, 0xd890e8, 0x34aa8b, 0x24c696,
0x181eb0, 0x20d390, 0x343111, 0x34be00, 0x78521a, 0x7825ad, 0xf4d9fb,
0x0017c9, 0x00166b, 0x00166c, 0xe47cf9, 0x002454, 0x20d5bf, 0x30cda7,
0xc87e75, 0x00233a, 0x60a4d0, 0x2c0e3d, 0x7c787e, 0xc0d3c0, 0x440444,
0xc09f05, 0xcc2d83, 0x38295a, 0x4c1a3d, 0xa81b5a, 0xdc6dcd, 0x54fa3e,
0x0c8910, 0xfcf136, 0x981dfa, 0x84a466, 0x1867b0, 0xccb11a, 0xb8bbaf,
0x60c5ad, 0x28395e, 0xc4ae12, 0xdc74a8, 0xc087eb, 0x74f61c, 0x986f60,
0x4c189a, 0x3cf591, 0x602101, 0xa89675, 0x608e08, 0x7c2edd, 0x3cf7a4,
0x342d0d, 0x94d029, 0x308454, 0x087808, 0xd03169, 0xbc5451, 0x641cae,
0xa4e975, 0xc0a53e, 0x9800c6, 0x787b8a, 0x3866f0, 0x20ee28, 0x08f4ab,
0x8c8590, 0x68ef43, 0xcc2db7, 0xd4a33d, 0xe4e0a6, 0x70ef00, 0xb0ca68,
0x9810e8, 0xb49cdf, 0xdca4ca, 0x8c8fe9, 0x98ca33, 0xfc253f, 0x183451,
0xc0847a, 0x64200c, 0x74e1b6, 0x0c771a, 0x00f4b9, 0xc8334b, 0xb8f6b1,
0xc09f42, 0x189efc, 0x6c3e6d, 0x8c2daa, 0xe4e4ab, 0x58404e, 0xdc0c5c,
0x2c200b, 0x609ac1, 0xf07960, 0x9c8ba0, 0x28a02b, 0xb44bd2, 0x9c4fda,
0x1c5cf2, 0x3871de, 0xbc5436, 0x5cf938, 0x4c3275, 0x2cf0a2, 0xecadb8,
0x9801a7, 0xb48b19, 0xe49a79, 0x406c8f, 0x00c610, 0x70dee2, 0x182032,
0x6cc26b, 0x1040f3, 0x001d4f, 0x001e52, 0x001f5b, 0x001ff3, 0x0021e9,
0x00236c, 0x002500, 0x60fb42, 0xf81edf, 0x90840d, 0xd8a25e, 0xc8bcc8,
0x28e7cf, 0xd89e3f, 0x040cce, 0xa4d1d2, 0x7cfadf, 0x101c0c, 0x001124,
0x6c709f, 0x0c3e9f, 0x34e2fd, 0x609217, 0x8863df, 0x80e650, 0x006171,
0x90fd61, 0x5c97f3, 0x6c4008, 0x24a074, 0xf02475, 0x20a2e4, 0x5cf5da,
0x649abe, 0x94e96a, 0xac293a, 0x10417f, 0xb844d9, 0xdc2b2a, 0x14205e,
0x5c1dd9, 0x18f1d8, 0xf86fc1, 0xf099b6, 0x907240, 0x0c4de9, 0xd89695,
0x0c3021, 0xf0f61c, 0xb03495, 0x848e0c, 0x949426, 0xe0f5c6, 0x28e14c,
0x54e43a, 0xc8e0eb, 0xa88808, 0x444c0c, 0x84fcfe, 0xe48b7f, 0x5c969d,
0xa8fad8, 0x7014a6, 0xa8667f, 0xd02598, 0xcc29f5, 0xdcd3a2, 0x08c5e1,
0x00bf61, 0xf80cf3, 0x30766f, 0x8c3ae3, 0x78f882, 0xb4f1da, 0x0021fb,
0xd013fd, 0xa8b86e, 0xdcbfe9, 0x306a85, 0x4466fc, 0xfca621, 0x0ccb85,
0xa4d990, 0xd003df, 0x24fce5, 0xe4b2fb, 0xf83880, 0x241b7a, 0x402619,
0xbcfed9, 0x808223, 0x3830f9, 0x6c006b, 0x38a4ed, 0xb0e235, 0x64cc2e,
0xd86375, 0x80ad16, 0x2047da, 0x8035c1, 0x9487e0, 0x7c03ab, 0xd4970b,
0xf48b32, 0x4c49e3, 0x04b167, 0xd8ce3a, 0xb8c74a, 0xfc183c, 0xc0e862,
0xec2ce2, 0x64c753, 0x48fda3, 0x7c035e, 0x70bc10, 0x2c5d34, 0x64c2de,
0x58d9c3, 0x489dd1, 0xd81edd, 0x2034fb, 0xf4afe7, 0x7c9a1d, 0xa483e7,
0xc4e39f, 0x7cd661, 0x70dda8, 0xbc98df, 0x38e7d8, 0xd8b377, 0xb4cef6,
0xd40b1a, 0x5882a8, 0xb4ae2b, 0x0c413e, 0xd0929e, 0x4480eb, 0xb84fd5,
0xec59e7, 0x3059b7, 0x501ac5, 0x1cb094, 0xa0f450, 0x002248, 0xec8892,
0xb07994, 0x141aa3, 0xccc3ea, 0x34bb26, 0x40786a, 0xf40b93, 0x68ed43,
0x34bb1f, 0x489d24, 0x000f86, 0xacee9e, 0xc08997, 0x2827bf, 0xf05b7b,
0x7cf90e, 0xac5a14, 0xb0c559, 0xbcd11f, 0xa0b4a5, 0x80656d, 0x48137e,
0xe83a12, 0x9c0298, 0x6c8336, 0xb8c68e, 0x74458a, 0xa49a58, 0xb4ef39,
0x14a364, 0x3ca10d, 0x206e9c, 0x183f47, 0x0c715d, 0x0c1420, 0xa80600,
0x6cf373, 0x78c3e9, 0xc83870, 0x288335, 0x44783e, 0x202d07, 0x98398e,
0x348a7b, 0xbc765e, 0x78009e, 0x68c44d, 0xf8e61a, 0x888322, 0x84b541,
0x0015b9, 0x001df6, 0xece09b, 0x606bbd, 0x0000f0, 0x4844f7, 0x1c5a3e,
0xf47b5e, 0x008701, 0xfc4203, 0x1c232c, 0xcc61e5, 0x404e36, 0x9893cc,
0x3ccd93, 0xf06bca, 0x3423ba, 0xd022be, 0xd02544, 0xbc20a4, 0x14f42a,
0xbc851f, 0xb85e7b, 0xc462ea, 0x0023d6, 0x002491, 0x001b98, 0x44f459,
0x34c3ac, 0x94d771, 0x4c3c16, 0x9401c2, 0xb43a28, 0xd0c1b1, 0xf008f1,
0x78471d, 0x3816d1, 0xd48890, 0x002566, 0x00265f, 0x5cba37, 0x3096fb,
0xf0ee10, 0xa43d78, 0xec01ee, 0xb83765, 0xc4576e, 0x90f1aa, 0x78bdbc,
0xd47ae2, 0x84c0ef, 0x7c1c68, 0xd463c6, 0x7c6456, 0x448f17, 0x04d6aa,
0x9ce063, 0xf06e0b, 0x5c865c, 0x003de8, 0x08e689, 0x7836cc, 0x08d46a,
0x485929, 0x34fcef, 0x002483, 0x001c62, 0x583f54, 0x40b0fa, 0xa8922c,
0x98d6f7, 0x505527, 0x0034da, 0xa09169, 0x88365f, 0x9c8c6e, 0xbcffeb,
0x685acf, 0xb4f7a1, 0x785dc8, 0x48c796, 0x804e70, 0x3880df, 0xdc415f,
0x30636b, 0xf45c89, 0x68dbca, 0x044bed, 0x6c8dc1, 0x38cada, 0xa4d18c,
0x186590, 0x64b0a6, 0x84fcac, 0x6c19c0, 0x20ab37, 0x203cae, 0x748d08,
0xa03be3, 0x7c6d62, 0x40d32d, 0xd83062, 0xc42c03, 0x7cc537, 0x70cd60,
0xc0d012, 0xd4dccd, 0x484baa, 0xf80377, 0x14bd61, 0xcc25ef, 0xb8782e,
0x000502, 0x0010fa, 0x000393, 0x0016cb, 0x409c28, 0x78886d, 0xa85c2c,
0x00db70, 0x0c5101, 0x086d41, 0x04d3cf, 0xbcec5d, 0x80b03d, 0xc83c85,
0xa04ea7, 0x0017f2, 0x001b63, 0x001ec2, 0x002608, 0xa4c361, 0xac7f3e,
0x280b5c, 0x90b931, 0x24a2e1, 0x80ea96, 0x600308, 0x04f13e, 0x54724f,
0x48746e, 0xd4f46f, 0x787e61, 0x60f81d, 0x4c7c5f, 0x48e9f1, 0xfce998,
0xf099bf, 0x68644b, 0x789f70, 0x24ab81, 0x581faa, 0xa46706, 0x3c0754,
0xe4ce8f, 0xe8040b, 0xb8c75d, 0x403cfc, 0x98fe94, 0xd8004d, 0x98b8e3,
0x80929f, 0x885395, 0x9c04eb, 0xa8968a, 0xdc3714, 0x40331a, 0x94f6a3,
0xd81d72, 0x70ece4, 0x38c986, 0xfcfc48, 0x4c8d79, 0x207d74, 0xf4f15a,
0x042665, 0x2cb43a, 0x689c70, 0x087045, 0x3cab8e, 0x7c6df8, 0x48d705,
0x78fd94, 0xc88550, 0x286ab8, 0x7cc3a1, 0x3cd0f8, 0x98d6bb, 0x4cb199,
0x64e682, 0x804971, 0xcc20e8, 0x209bcd, 0xf0b0e7, 0xa056f3, 0x549963,
0x28ff3c, 0x1094bb, 0xf01898, 0x48a91c, 0x58b10f, 0x304b07, 0x1496e5,
0x80ceb9, 0xcc2119, 0x0057c1, 0x14c697, 0xfc039f, 0x9c0cdf, 0x007204,
0x90e17b, 0x18810e, 0x608c4a, 0xa4d931, 0x6cc7ec, 0x647bce, 0x584498,
0xacc1ee, 0x7802f8, 0x508f4c, 0x04d13a, 0x0cf346, 0x082525, 0xf460e2,
0xa45046, 0x009ec8, 0x7c1dd9, 0xa086c6, 0x102ab3, 0xacf7f3, 0x601d91,
0x38f9d3, 0x44e66e, 0xe83617, 0x344262, 0xc09ad0, 0xa41232, 0xb8bc5b,
0xacf6f7, 0x7c38ad, 0x3c20f6, 0x703c69, 0xb8b2f8, 0x005b94, 0x88b291,
0x5462e2, 0x4418fd, 0xccd281, 0xd09c7a, 0x4c6f9c, 0x201742, 0x902155,
0x64a769, 0xbccfcc, 0xa4516f, 0x3c8375, 0x149a10, 0x0ce725, 0xc0335e,
0x20a99b, 0x4c0bbe, 0x7c1e52, 0xdcb4c4, 0x7c6f06, 0x001dd8, 0x0017fa,
0x000a75, 0x0003ff, 0xf8e079, 0x1430c6, 0xe0757d, 0x9cd35b, 0x60af6d,
0xb85a73, 0x103047, 0x109266, 0xb047bf, 0x7c0bc6, 0x804e81, 0x244b81,
0x50a4c8, 0x8425db, 0xd8c4e9, 0x50c8e5, 0x446d6c, 0x38d40b, 0x647791,
0x781fdb, 0x08fc88, 0x30c7ae, 0x18227e, 0x00f46f, 0x9ce6e7, 0xe498d1,
0x5cca1a, 0x70288b, 0x4849c7, 0x205ef7, 0x182666, 0xc06599, 0xcc07ab,
0xe84e84, 0x50fc9f, 0xe432cb, 0x889b39, 0xbcb1f3, 0x38ece4, 0xccf9e8,
0xf0e77e, 0x5ce8eb, 0xb8d9ce, 0x70f927, 0x301966, 0x28bab5, 0x103b59,
0x6cb7f4, 0x001ee1, 0x0018af, 0xbc72b1, 0x78f7be, 0xf49f54, 0x00214c,
0x001632, 0xd0667b, 0x001377, 0x50b7c3, 0x8018a7, 0x444e1a, 0xe8e5d6,
0x5492be, 0x101dc0, 0x0021d1, 0xcc2d8c, 0x949aa9, 0x20dbab, 0x5c9960,
0x88b4a6, 0x2c5491, 0x5c70a3, 0x10f96f, 0xf01c13, 0x00aa70, 0xbcf5ac,
0xccfa00, 0xf8a9d0, 0x805a04, 0x5caf06, 0xb81daa, 0x10f1f2, 0x0025e5,
0x0022a9, 0xc49a02, 0x344df7, 0xd41a3f, 0xcc6ea4, 0xa46cf1, 0x0ca8a7,
0x54b802, 0x24181d, 0xf4c248, 0xa8515b, 0xc048e6, 0xd07714, 0x2816a8,
0x84a134, 0x1c9148, 0xc0ccf8, 0x80ed2c, 0xe8b2ac, 0x8489ad, 0x20768f,
0x28ed6a, 0x34ab37, 0x60a37d, 0x0056cd, 0xbca920, 0x5082d5, 0x9c84bf,
0x00b362, 0xf86214, 0xb0702d, 0xd0c5f3, 0x0023df, 0x0025bc, 0x00264a,
0x0026b0, 0x041e64, 0xd49a20, 0x9027e4, 0x60334b, 0x5c5948, 0x60f445,
0x5cf7e6, 0xa0d795, 0xcc088d, 0x8c8ef2, 0xf40f24, 0x24f677, 0x7867d7,
0x5433cb, 0xd0d2b0, 0xd88f76, 0x3c2ef9, 0x7081eb, 0x086698, 0x9060f1,
0x741bb2, 0x28cfe9, 0xe425e7, 0xb019c6, 0x58e28f, 0xac1f74, 0x48bf6b,
0x245ba7, 0xdc56e7, 0x347c25, 0xd4909c, 0x080007, 0x000a95, 0x002241,
0x18ee69, 0x748114, 0x18f643, 0xd0a637, 0xa01828, 0xd0034b, 0xa43135,
0x9c35eb, 0x507a55, 0xa0999b, 0x24240e, 0x903c92, 0xa88e24, 0xe8802e,
0x68ae20, 0xe0b52d, 0x80be05, 0xd8bb2c, 0xd04f7e, 0x2c1f23, 0x549f13,
0xb8098a, 0xf0dbe2, 0x8c2937, 0xdc9b9c, 0x98f0ab, 0xf0dbf8, 0xaccf5c,
0x3c15c2, 0x04489a, 0xd8cf9c, 0xa886dd, 0x54eaa8, 0xe4c63d, 0x843835,
0xc06394, 0x8c006d, 0xb09fba, 0xdc86d8, 0x78ca39, 0x18e7f4, 0xb8ff61,
0xdc2b61, 0x1093e9, 0x442a60, 0xe0f847, 0x145a05, 0x28cfda, 0x148fc6,
0x283737, 0x045453, 0xf0cba1, 0x30f7c5, 0x008865, 0x40b395, 0x3090ab,
0x1ce62b, 0xa0edcd, 0x842999, 0x74e2f5, 0x20c9d0, 0x7073cb, 0x9c207b,
0x341298, 0x9c293f, 0x7c0191, 0x70480f, 0xa4b805, 0x587f57, 0x80d605,
0xc869cd, 0xbc6c21, 0x0469f8, 0x749eaf, 0xb841a4, 0xf895ea, 0x50a67f,
0x647033, 0x846878, 0x948bc1, 0x4827ea, 0x388c50, 0xa09347, 0xc8f230,
0x1c77f6, 0xe44790, 0xd4503f, 0x40163b, 0x5c497d, 0xe47dbd, 0x503da1,
0x508569, 0x1077b1, 0x5cf6dc, 0x380195, 0xbc1485, 0x88d50c, 0x947be7,
0x54bd79, 0xdc44b6, 0x1007b6, 0xc0174d, 0xa407b6, 0x149f3c, 0xd868c3,
0xc493d9, 0x00b5d0, 0x8c83e1, 0xfcb6d8, 0x6ce85c, 0x007c2d, 0xf47def,
0x7c8bb5, 0xdcf756, 0x68dfdd, 0x64b473, 0x7451ba, 0x3480b3, 0x2082c0,
0xfc64ba, 0xc46ab7, 0x00ec0a, 0x38e60a, 0x04e598, 0x2ca9f0, 0x586b14,
0x94b01f, 0x94f6d6, 0x40bc60, 0xd85575, 0xd411a3, 0x6489f1, 0x04ba8d,
0x489507, 0xa89ced, 0xc42ad0, 0xe0897e, 0x103025, 0x8c79f5, 0x90735a,
};

View File

@ -24,7 +24,7 @@ void doHousekeeping() {
#ifdef HAS_SPI
spi_housekeeping();
#endif
#ifdef HAS_LORA
#if(HAS_LORA)
lora_housekeeping();
#endif
@ -32,7 +32,7 @@ void doHousekeeping() {
ESP_LOGD(TAG, "IRQhandler %d bytes left | Taskstate = %d",
uxTaskGetStackHighWaterMark(irqHandlerTask),
eTaskGetState(irqHandlerTask));
#ifdef HAS_GPS
#if(HAS_GPS)
ESP_LOGD(TAG, "Gpsloop %d bytes left | Taskstate = %d",
uxTaskGetStackHighWaterMark(GpsTask), eTaskGetState(GpsTask));
#endif

View File

@ -1,4 +1,4 @@
#ifdef HAS_DISPLAY
#if(HAS_DISPLAY)
/*
@ -105,7 +105,7 @@ void init_display(const char *Productname, const char *Version) {
u8x8.print(" v");
u8x8.println(PROGVERSION);
#ifdef HAS_LORA
#if(HAS_LORA)
u8x8.println("DEVEUI:");
os_getDevEui((u1_t *)buf);
DisplayKey(buf, 8, true);
@ -163,7 +163,7 @@ void refreshtheDisplay() {
#endif
// update GPS status (line 2)
#ifdef HAS_GPS
#if(HAS_GPS)
// have we ever got valid gps data?
if (gps.passedChecksum() > 0) {
u8x8.setCursor(9, 2);
@ -186,7 +186,7 @@ void refreshtheDisplay() {
u8x8.printf("%s", "BLTH:off");
#endif
#ifdef HAS_LORA
#if(HAS_LORA)
u8x8.setCursor(11, 3);
u8x8.printf("SF:");
if (cfg.adrmode) // if ADR=on then display SF value inverse
@ -209,7 +209,7 @@ void refreshtheDisplay() {
u8x8.setCursor(10, 5);
u8x8.printf("%4dKB", getFreeRAM() / 1024);
#ifdef HAS_LORA
#if(HAS_LORA)
u8x8.setCursor(0, 6);
#if (!defined HAS_DCF77) && (!defined HAS_IF482)
// update LoRa status display (line 6)

View File

@ -1,4 +1,4 @@
#ifdef HAS_GPS
#if(HAS_GPS)
#include "globals.h"

View File

@ -7,6 +7,7 @@
// Hardware related definitions for lolin32lite (without LoRa shield)
#define HAS_LORA 0 // no LoRa module
#define CFG_sx1272_radio 1 // dummy
#define HAS_LED LED_BUILTIN // on board LED on GPIO5
#define LED_ACTIVE_LOW 1 // Onboard LED is active when pin is LOW

View File

@ -24,7 +24,7 @@ void irqHandler(void *pvParameters) {
#endif
// display needs refresh?
#ifdef HAS_DISPLAY
#if(HAS_DISPLAY)
if (InterruptStatus & DISPLAY_IRQ)
refreshtheDisplay();
#endif
@ -52,7 +52,7 @@ void irqHandler(void *pvParameters) {
// esp32 hardware timer triggered interrupt service routines
// they notify the irq handler task
#ifdef HAS_DISPLAY
#if(HAS_DISPLAY)
void IRAM_ATTR DisplayIRQ() {
BaseType_t xHigherPriorityTaskWoken;
xHigherPriorityTaskWoken = pdFALSE;

View File

@ -137,7 +137,7 @@ void ledLoop(void *parameter) {
// No custom blink, check LoRaWAN state
} else {
#ifdef HAS_LORA
#if(HAS_LORA)
// LED indicators for viusalizing LoRaWAN state
if (LMIC.opmode & (OP_JOINING | OP_REJOIN)) {
LEDColor = COLOR_YELLOW;

View File

@ -1,4 +1,4 @@
#ifdef HAS_LORA
#if(HAS_LORA)
/************************************************************
* LMIC LoRaWAN configuration

View File

@ -1,10 +1,12 @@
// Basic Config
#if(HAS_LORA)
#include "lorawan.h"
#endif
// Local logging Tag
static const char TAG[] = "lora";
#ifdef HAS_LORA
#if(HAS_LORA)
#if CLOCK_ERROR_PROCENTAGE > 7
#warning CLOCK_ERROR_PROCENTAGE value in lmic_config.h is too high; values > 7 will cause side effects

View File

@ -155,7 +155,7 @@ void setup() {
ESP.getFlashChipSpeed());
ESP_LOGI(TAG, "Wifi/BT software coexist version %s", esp_coex_version_get());
#ifdef HAS_LORA
#if(HAS_LORA)
ESP_LOGI(TAG, "IBM LMIC version %d.%d.%d", LMIC_VERSION_MAJOR,
LMIC_VERSION_MINOR, LMIC_VERSION_BUILD);
ESP_LOGI(TAG, "Arduino LMIC version %d.%d.%d.%d",
@ -167,7 +167,7 @@ void setup() {
showLoraKeys();
#endif // HAS_LORA
#ifdef HAS_GPS
#if(HAS_GPS)
ESP_LOGI(TAG, "TinyGPS+ version %s", TinyGPSPlus::libraryVersion());
#endif
@ -269,7 +269,7 @@ void setup() {
#endif // HAS_BUTTON
// initialize gps
#ifdef HAS_GPS
#if(HAS_GPS)
strcat_P(features, " GPS");
if (gps_init()) {
ESP_LOGI(TAG, "Starting GPS Feed...");
@ -284,13 +284,13 @@ void setup() {
#endif
// initialize sensors
#ifdef HAS_SENSORS
#if(HAS_SENSORS)
strcat_P(features, " SENS");
sensor_init();
#endif
// initialize LoRa
#ifdef HAS_LORA
#if(HAS_LORA)
strcat_P(features, " LORA");
assert(lora_stack_init() == ESP_OK);
#endif
@ -306,7 +306,7 @@ void setup() {
#endif
// initialize display
#ifdef HAS_DISPLAY
#if(HAS_DISPLAY)
strcat_P(features, " OLED");
DisplayState = cfg.screenon;
init_display(PRODUCTNAME, PROGVERSION); // note: blocking call
@ -382,7 +382,7 @@ void setup() {
ESP_LOGI(TAG, "Starting Timers...");
// display interrupt
#ifdef HAS_DISPLAY
#if(HAS_DISPLAY)
// https://techtutorialsx.com/2017/10/07/esp32-arduino-timer-interrupts/
// prescaler 80 -> divides 80 MHz CPU freq to 1 MHz, timer 0, count up
displayIRQ = timerBegin(0, 80, true);
@ -425,7 +425,7 @@ void setup() {
void loop() {
while (1) {
#ifdef HAS_LORA
#if(HAS_LORA)
os_runloop_once(); // execute lmic scheduled jobs and events
#endif
delay(2); // yield to CPU

View File

@ -48,7 +48,7 @@ void start_ota_update() {
switch_LED(LED_ON);
#ifdef HAS_DISPLAY
#if(HAS_DISPLAY)
u8x8.begin();
u8x8.setFont(u8x8_font_chroma48medium8_r);
u8x8.clear();
@ -266,7 +266,7 @@ int do_ota_update() {
goto abort;
}
#ifdef HAS_DISPLAY
#if(HAS_DISPLAY)
// register callback function for showing progress while streaming data
Update.onProgress(&show_progress);
#endif
@ -309,7 +309,7 @@ retry:
void display(const uint8_t row, const std::string status,
const std::string msg) {
#ifdef HAS_DISPLAY
#if(HAS_DISPLAY)
u8x8.setCursor(14, row);
u8x8.print((status.substr(0, 2)).c_str());
if (!msg.empty()) {
@ -320,7 +320,7 @@ void display(const uint8_t row, const std::string status,
#endif
}
#ifdef HAS_DISPLAY
#if(HAS_DISPLAY)
// callback function to show download progress while streaming data
void show_progress(unsigned long current, unsigned long size) {
char buf[17];

View File

@ -80,7 +80,7 @@ void PayloadConvert::addStatus(uint16_t voltage, uint64_t uptime, float cputemp,
}
void PayloadConvert::addGPS(gpsStatus_t value) {
#ifdef HAS_GPS
#if(HAS_GPS)
buffer[cursor++] = (byte)((value.latitude & 0xFF000000) >> 24);
buffer[cursor++] = (byte)((value.latitude & 0x00FF0000) >> 16);
buffer[cursor++] = (byte)((value.latitude & 0x0000FF00) >> 8);
@ -98,7 +98,7 @@ void PayloadConvert::addGPS(gpsStatus_t value) {
}
void PayloadConvert::addSensor(uint8_t buf[]) {
#ifdef HAS_SENSORS
#if(HAS_SENSORS)
uint8_t length = buf[0];
memcpy(buffer, buf + 1, length);
cursor += length; // length of buffer
@ -106,7 +106,7 @@ void PayloadConvert::addSensor(uint8_t buf[]) {
}
void PayloadConvert::addBME(bmeStatus_t value) {
#ifdef HAS_BME
#if(HAS_BME)
int16_t temperature = (int16_t)(value.temperature); // float -> int
uint16_t humidity = (uint16_t)(value.humidity); // float -> int
uint16_t pressure = (uint16_t)(value.pressure); // float -> int
@ -191,7 +191,7 @@ void PayloadConvert::addStatus(uint16_t voltage, uint64_t uptime, float cputemp,
}
void PayloadConvert::addGPS(gpsStatus_t value) {
#ifdef HAS_GPS
#if(HAS_GPS)
writeLatLng(value.latitude, value.longitude);
writeUint8(value.satellites);
writeUint16(value.hdop);
@ -200,7 +200,7 @@ void PayloadConvert::addGPS(gpsStatus_t value) {
}
void PayloadConvert::addSensor(uint8_t buf[]) {
#ifdef HAS_SENSORS
#if(HAS_SENSORS)
uint8_t length = buf[0];
memcpy(buffer, buf + 1, length);
cursor += length; // length of buffer
@ -208,7 +208,7 @@ void PayloadConvert::addSensor(uint8_t buf[]) {
}
void PayloadConvert::addBME(bmeStatus_t value) {
#ifdef HAS_BME
#if(HAS_BME)
writeFloat(value.temperature);
writePressure(value.pressure);
writeUFloat(value.humidity);
@ -384,7 +384,7 @@ void PayloadConvert::addStatus(uint16_t voltage, uint64_t uptime, float celsius,
}
void PayloadConvert::addGPS(gpsStatus_t value) {
#ifdef HAS_GPS
#if(HAS_GPS)
int32_t lat = value.latitude / 100;
int32_t lon = value.longitude / 100;
int32_t alt = value.altitude * 100;
@ -405,7 +405,7 @@ void PayloadConvert::addGPS(gpsStatus_t value) {
}
void PayloadConvert::addSensor(uint8_t buf[]) {
#ifdef HAS_SENSORS
#if(HAS_SENSORS)
// to come
/*
uint8_t length = buf[0];
@ -416,7 +416,7 @@ void PayloadConvert::addSensor(uint8_t buf[]) {
}
void PayloadConvert::addBME(bmeStatus_t value) {
#ifdef HAS_BME
#if(HAS_BME)
// data value conversions to meet cayenne data type definition
// 0.1°C per bit => -3276,7 .. +3276,7 °C

View File

@ -8,7 +8,9 @@ static const char TAG[] = __FILE__;
// helper function
void do_reset() {
ESP_LOGI(TAG, "Remote command: restart device");
#if(HAS_LORA)
LMIC_shutdown();
#endif
delay(3000);
esp_restart();
}
@ -130,7 +132,7 @@ void set_gps(uint8_t val[]) {
}
void set_sensor(uint8_t val[]) {
#ifdef HAS_SENSORS
#if(HAS_SENSORS)
switch (val[0]) { // check if valid sensor number 1...4
case 1:
case 2:
@ -168,7 +170,7 @@ void set_monitor(uint8_t val[]) {
}
void set_lorasf(uint8_t val[]) {
#ifdef HAS_LORA
#if(HAS_LORA)
ESP_LOGI(TAG, "Remote command: set LoRa SF to %d", val[0]);
switch_lora(val[0], cfg.txpower);
#else
@ -177,7 +179,7 @@ void set_lorasf(uint8_t val[]) {
}
void set_loraadr(uint8_t val[]) {
#ifdef HAS_LORA
#if(HAS_LORA)
ESP_LOGI(TAG, "Remote command: set LoRa ADR mode to %s",
val[0] ? "on" : "off");
cfg.adrmode = val[0] ? 1 : 0;
@ -220,7 +222,7 @@ void set_rgblum(uint8_t val[]) {
};
void set_lorapower(uint8_t val[]) {
#ifdef HAS_LORA
#if(HAS_LORA)
ESP_LOGI(TAG, "Remote command: set LoRa TXPOWER to %d", val[0]);
switch_lora(cfg.lorasf, val[0]);
#else
@ -250,7 +252,7 @@ void get_status(uint8_t val[]) {
void get_gps(uint8_t val[]) {
ESP_LOGI(TAG, "Remote command: get gps status");
#ifdef HAS_GPS
#if(HAS_GPS)
gps_read();
payload.reset();
payload.addGPS(gps_status);

View File

@ -39,7 +39,7 @@ void SendPayload(uint8_t port, sendprio_t prio) {
memcpy(SendBuffer.Message, payload.getBuffer(), payload.getSize());
// enqueue message in device's send queues
#ifdef HAS_LORA
#if(HAS_LORA)
lora_enqueuedata(&SendBuffer, prio);
#endif
#ifdef HAS_SPI
@ -63,7 +63,7 @@ void sendCounter() {
if (cfg.blescan)
payload.addCount(macs_ble, MAC_SNIFF_BLE);
#ifdef HAS_GPS
#if(HAS_GPS)
if (gps.location.isValid()) { // send GPS position only if we have a fix
gps_read();
payload.addGPS(gps_status);
@ -83,7 +83,7 @@ void sendCounter() {
}
break;
#ifdef HAS_BME
#if(HAS_BME)
case MEMS_DATA:
payload.reset();
payload.addBME(bme_status);
@ -91,7 +91,7 @@ void sendCounter() {
break;
#endif
#ifdef HAS_GPS
#if(HAS_GPS)
case GPS_DATA:
// send GPS position only if we have a fix
if (gps.location.isValid()) {
@ -104,7 +104,7 @@ void sendCounter() {
break;
#endif
#ifdef HAS_SENSORS
#if(HAS_SENSORS)
case SENSOR1_DATA:
payload.reset();
payload.addSensor(sensor_read(1));
@ -138,7 +138,7 @@ void sendCounter() {
} // sendCounter()
void flushQueues() {
#ifdef HAS_LORA
#if(HAS_LORA)
lora_queuereset();
#endif
#ifdef HAS_SPI

View File

@ -22,7 +22,7 @@ time_t timeProvider(void) {
time_t t = 0;
#ifdef HAS_GPS
#if(HAS_GPS)
t = get_gpstime(); // fetch recent time from last NEMA record
if (t) {
#ifdef HAS_RTC