From f657340655643aa3e59c47c2e27c315ff7815f0b Mon Sep 17 00:00:00 2001 From: Joachim Hummel Date: Fri, 16 Jul 2021 12:57:56 +0000 Subject: [PATCH] Added Libs and TTN Decoder --- libs/AXP202X_Library.zip | Bin 0 -> 3944 bytes libs/TinyGPSPlus.zip | Bin 0 -> 2524 bytes libs/arduino-lmic.zip | Bin 0 -> 32909 bytes libs/esp8266-oled-ssd1306.zip | Bin 0 -> 15567 bytes thethingsnetwork/decoder.txt | 20 ++++++++++++++++++++ 5 files changed, 20 insertions(+) create mode 100644 libs/AXP202X_Library.zip create mode 100644 libs/TinyGPSPlus.zip create mode 100644 libs/arduino-lmic.zip create mode 100644 libs/esp8266-oled-ssd1306.zip create mode 100644 thethingsnetwork/decoder.txt diff --git a/libs/AXP202X_Library.zip b/libs/AXP202X_Library.zip new file mode 100644 index 0000000000000000000000000000000000000000..3bd7435d1308ed87ed56465782dd18b1a543bd6a GIT binary patch literal 3944 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 Qu>0ihcIaih?*qVp0Q24;Bme*a literal 0 HcmV?d00001 diff --git a/libs/TinyGPSPlus.zip b/libs/TinyGPSPlus.zip new file mode 100644 index 0000000000000000000000000000000000000000..afe66358cedacf39a8ef48f3f7220dbb041a4193 GIT binary patch literal 2524 zcma)7c{r47AAV=XmXXGUgy>6I!)QJd$stQk8487nV(bjVWGts_Std)i;WH+NM9IF^ zltv~?jItD>;gIFvic%Bdb4Gn#;p+I#^Ip$$J^#G-^Skc*_q%ViQxGm;01WT}W8x;J zxoPn>1t0+E1_OWyAPHEwc?TMsnVWgy{Z!8y>KT|As(3kBT5JO#l#E=vwT&l00T9WiDmv`Z2ftxnWJ>ebw-9xRbWxhnj30q7i`K>b~3%D^<)M!$bP-J^ju*lVydk`S)P90eaxw})zFj!yZSpL}^EyZk(TI256LAihDc=-%Jr>=c6R8|92D1>%V z-to6SR?6?!wC{Dy(gf{m1K_4_MG_V8ujg=?-JYi9!RN_e;H_WJzH9Z)iddPq`g&Mb zY^)+`bya8;V#ZOOA6Q#!s(-uu@7Sz5hH%Nt#}nhHx|Ql{a6g;K7vCXso6|%w+yEf9 zsfj!=fdN>Ylb?z|!G9~nv{WW~6ai~~K`tmug({)RheJirx!$PBwSFnZ8=M(8)t96L z`pB+>-#pn)WinS6KVh2`+EVIsEohx;kM5?`9=qw$qw~pqHsW4u{F7Q*TU+i?wcgf* zd>aTPQO5}XVPbr>dno#IX?8*HqN|rj^uj1|*?f?&{WJ>`WdTQ)-%;5Wpp)C$lP0a- zPANUObBFBV!6QvP$637YQ}pr0=$3l&JESX1rj}*E-BCEu@aO1?T*a&1PMvPLZ}Syr z!ksO}!paq`=8A~&4VKq$2^H~M<)AD@7n&-FBEa?a?HGj{2|Tw-j>oB zZ|f?yewagx2_vOTKW1Q9y-8joA;X!J+$1-`Cb4AOq*`*Vs|$DdPRc%xc8szuSl}bY z3IF%AvA=$}Q8E)*eI!s%sXC;VC(eoW}K`r^r*wkrzcERgoPGNjr>g`T=qMGE&^uW%D$agn%b^HW6_^W1DT{9htkAG5{^(8Vj=8e7ilJ)b{H}|=& z9V&$5jn8+DsBUDqcJ6ZO1rEC+9CMc1G*>?u_Q7F&FgSlVjNeu~nzQbm_Q9LPFWDmCshx1`^W-07gC=|4u`Rtdktbw=&q<4_6F z#E02luG5}eXZM@&P{RzV6XLHbO!O!P3J#@cb4R(ZhoRRDf_GD$bsdV$$q6OWyQu+b zIWz6ALyT;-_7W1brgV7w@+iw^vf~7p+YhGuA#&Bd z0^*{61hGtrjc6z%&jbb)om*8@_}C6U(^jFhYuuYD4IZ~nuAi}pCLqbxXqttHhVFps z-AX+3>eG@Xr)Rl66!Qy475B&Xzo`E<6u)*>*e1#RaE|}SR6$@V$WL3{n9X9}{F>7Z zKvme<^>31z`+HJvN@=rGYtX+gQ-m|U-xmy6(PML7SP#7}4z_~+S@p&+SYNdvr;XP` zZ;Xb2hQ85s)}w24ZAAYuAm1(MpP_FYxb^51PPDDB{RjH`@!RT+UsDg;K)o67#y7tA X%ip1L^Q?)+!}$(!c+KSe3jlusS?@j_#_bo*d*# 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 B*2w?> literal 0 HcmV?d00001 diff --git a/libs/esp8266-oled-ssd1306.zip b/libs/esp8266-oled-ssd1306.zip new file mode 100644 index 0000000000000000000000000000000000000000..415b56057631ff171cac86f80a1378581428de76 GIT binary patch literal 15567 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 sW%&c>ua4mVAA<24M2YnekpFfHf2tl7?7xz>% literal 0 HcmV?d00001 diff --git a/thethingsnetwork/decoder.txt b/thethingsnetwork/decoder.txt new file mode 100644 index 0000000..b6ab2e8 --- /dev/null +++ b/thethingsnetwork/decoder.txt @@ -0,0 +1,20 @@ +function Decoder(bytes, port) { + var decoded = {}; + + decoded.latitude = ((bytes[0]<<16)>>>0) + ((bytes[1]<<8)>>>0) + bytes[2]; + decoded.latitude = (decoded.latitude / 16777215.0 * 180) - 90; + + decoded.longitude = ((bytes[3]<<16)>>>0) + ((bytes[4]<<8)>>>0) + bytes[5]; + decoded.longitude = (decoded.longitude / 16777215.0 * 360) - 180; + + var altValue = ((bytes[6]<<8)>>>0) + bytes[7]; + var sign = bytes[6] & (1 << 7); + if(sign) decoded.altitude = 0xFFFF0000 | altValue; + else decoded.altitude = altValue; + + decoded.hdop = bytes[8] / 10.0; + decoded.sats = bytes[9]; + + return decoded; +} +