From 13482c32c95f0c03278ef8653307048743c99bc2 Mon Sep 17 00:00:00 2001 From: BlubbFish Date: Mon, 11 Feb 2019 16:41:29 +0000 Subject: [PATCH] [v1.7.1] Fixing binary data transmission & fixing Scral Plugin --- Lora-Bot/Moduls/Scral.cs | 23 +++++++++++++++++---- Lora-Bot/Properties/AssemblyInfo.cs | 5 +++-- Lora-Bot/bin/Release/Bot-Utils.dll | Bin 23552 -> 23552 bytes Lora-Bot/bin/Release/ConnectorDataMqtt.dll | Bin 6656 -> 6656 bytes Lora-Bot/bin/Release/Iot-Interfaces.dll | Bin 6144 -> 6144 bytes Lora-Bot/bin/Release/Lora-Bot.exe | Bin 16896 -> 17408 bytes Lora-Bot/bin/Release/Lora.dll | Bin 94208 -> 94208 bytes Lora-Bot/bin/Release/M2Mqtt.dll | Bin 50688 -> 50688 bytes Lora-Bot/bin/Release/Utils-IoT.dll | Bin 13824 -> 13824 bytes Lora-Bot/bin/Release/Utils.dll | Bin 31232 -> 31232 bytes Lora-Bot/bin/Release/litjson.dll | Bin 51200 -> 51200 bytes 11 files changed, 22 insertions(+), 6 deletions(-) diff --git a/Lora-Bot/Moduls/Scral.cs b/Lora-Bot/Moduls/Scral.cs index d59f687..0123645 100644 --- a/Lora-Bot/Moduls/Scral.cs +++ b/Lora-Bot/Moduls/Scral.cs @@ -4,10 +4,8 @@ using System.IO; using System.Net; using System.Text; using BlubbFish.Utils; -using BlubbFish.Utils.IoT.Bots; using BlubbFish.Utils.IoT.Bots.Moduls; using Fraunhofer.Fit.Iot.Lora; -using Fraunhofer.Fit.Iot.Lora.Trackers; using Fraunhofer.Fit.Iot.Lora.Events; using LitJson; @@ -16,13 +14,26 @@ namespace Fraunhofer.Fit.IoT.Bots.LoraBot.Moduls { private readonly List nodes = new List(); public override event ModulEvent Update; private readonly Object getLock = new Object(); + private readonly Boolean authRequired; + private String auth; + public Scral(LoraController lib, InIReader settings) : base(lib, settings) { - if(!this.config.ContainsKey("general")) { + if (!this.config.ContainsKey("general")) { throw new ArgumentException("Fraunhofer.Fit.IoT.Bots.LoraBot.Moduls.Scral: Config section [general] not exist"); } - if(!this.config["general"].ContainsKey("server")) { + if (!this.config["general"].ContainsKey("server")) { throw new ArgumentException("Fraunhofer.Fit.IoT.Bots.LoraBot.Moduls.Scral: In config section [general] value server not exist"); } + if (!this.config["general"].ContainsKey("user") && !this.config["general"].ContainsKey("pass")) { + this.authRequired = false; + } else if (!this.config["general"].ContainsKey("user")) { + throw new ArgumentException("Fraunhofer.Fit.IoT.Bots.LoraBot.Moduls.Scral: In config section [general] value user not exist"); + } else if (!this.config["general"].ContainsKey("pass")) { + throw new ArgumentException("Fraunhofer.Fit.IoT.Bots.LoraBot.Moduls.Scral: In config section [general] value pass not exist"); + } else { + this.auth = "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(this.config["general"]["user"] + ":" + this.config["general"]["pass"])); + this.authRequired = true; + } if (!this.config.ContainsKey("update")) { throw new ArgumentException("Fraunhofer.Fit.IoT.Bots.LoraBot.Moduls.Scral: Config section [update] not exist"); } @@ -41,6 +52,7 @@ namespace Fraunhofer.Fit.IoT.Bots.LoraBot.Moduls { if (!this.config["register"].ContainsKey("method")) { throw new ArgumentException("Fraunhofer.Fit.IoT.Bots.LoraBot.Moduls.Scral: In config section [register] value method not exist"); } + } public override void EventLibSetter() { @@ -118,6 +130,9 @@ namespace Fraunhofer.Fit.IoT.Bots.LoraBot.Moduls { lock (this.getLock) { HttpWebRequest request = WebRequest.CreateHttp(this.config["general"]["server"] + address); request.Timeout = 2000; + if (this.authRequired) { + request.Headers.Add(HttpRequestHeader.Authorization, this.auth); + } if (method == RequestMethod.POST || method == RequestMethod.PUT) { Byte[] requestdata = Encoding.ASCII.GetBytes(json); request.ContentLength = requestdata.Length; diff --git a/Lora-Bot/Properties/AssemblyInfo.cs b/Lora-Bot/Properties/AssemblyInfo.cs index 952004d..9006830 100644 --- a/Lora-Bot/Properties/AssemblyInfo.cs +++ b/Lora-Bot/Properties/AssemblyInfo.cs @@ -32,8 +32,8 @@ using System.Runtime.InteropServices; // Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, // übernehmen, indem Sie "*" eingeben: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.7.0")] -[assembly: AssemblyFileVersion("1.7.0")] +[assembly: AssemblyVersion("1.7.1")] +[assembly: AssemblyFileVersion("1.7.1")] /* * 1.1.0 Update Scral addresses * 1.2.0 Run Module Events in threads so that one Module can not block others, TXTOut now appends to the logfile @@ -46,4 +46,5 @@ using System.Runtime.InteropServices; * 1.6.1 Fixing parsing bug with linebreaks in Lora * 1.6.2 Adding a test for LoraBinary * 1.7.0 Adding IC800A Lora-Reciever + * 1.7.1 Fixing binary data transmission & fixing Scral Plugin */ diff --git a/Lora-Bot/bin/Release/Bot-Utils.dll b/Lora-Bot/bin/Release/Bot-Utils.dll index 89311a1067b6b40e2f28eac61394fd2e7471eb64..192ce56d7806e8ab79cbb6e97b3ce457f9774501 100644 GIT binary patch delta 126 zcmZqJ!Pu~aaY6@kj7!MIZb2Ubo?px4rCywLY%uV9=6zvK`{p%18tg$p*%$^OU;<(p zMh1pAg+Lt4zz`Jd61;l{<7FDE9 delta 126 zcmZqJ!Pu~aaY6@ka7Vz#Zb2V`D9t@D+kr4j0_A6&Q>v@#i>QbF~!LlsW~|@F8Rr&xv6<2#W4Xz`B|yiC8?XW I1g~)b0KR}KC;$Ke delta 104 zcmZoLX)u}4!5rKXu(3OmPvAz#miJRr<~c4o$H=`*=0VQpFMLlJL9&x?3rLz72hRD$ zUF+nuSn@ajmwl{j85tNDT&-eUGt*P^QWabhOHwma^I}}`vrBVR^GZ@<9E*}tGfOsW I30~s>0J*0r1ONa4 diff --git a/Lora-Bot/bin/Release/Iot-Interfaces.dll b/Lora-Bot/bin/Release/Iot-Interfaces.dll index 83e65156182e4dd0ab426b7a5801befa97bd5254..f280c52e6820044cbb94efce5eb13fe399c58933 100644 GIT binary patch delta 104 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 delta 4542 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 K!!2F4^Zx@mwcMis diff --git a/Lora-Bot/bin/Release/M2Mqtt.dll b/Lora-Bot/bin/Release/M2Mqtt.dll index ce4acd7702446a3d3ba8a3c5181706f0961251c2..fef20302d823fdc55189b2df699c68c55304edc2 100644 GIT binary patch delta 126 zcmZqZVQ%PQp3uP@;}Wv5`{zc1_$NJ&+Ik$k=6;i&b@TG%6Pu@OI>QwNl#O8k0wy4q zVPs&axDCX685n|sU4j`VeZQypMb%?_k(9OCp^NQ6X$EJjn9$Et7NZ2OJBI+B{{`8Ll9pYzzYsFafa) zBLhRlZ6Myuzz`Jd61+3_e9#2xXMUTLe%|MuT<8RpW^lENam`Fm%}Z5qNi0dtOwEgN Z$z-!5rffva#DzOW@$u;?UxyoX(S%tdq*J+t$1Jiq;(FAfRjv0}wC)u?!;v zLx&F#>oG6{1-k@$a_oF?rz6*Yzd()3qyPzFpfrQCRZM7cYEf}aadJj#PEL$VesXDU WYFgGdwcI*I15GnZp delta 124 zcmZq3X~>z-!5q{Pu(8`xOW@De7Kw@_yPWo&Nsi!I_;mH=D_V1ygMhLz3_!pH#4?Nw z3>`i|tjE9*6zmer#>o(V;k|=XZ|Kv)v=1BJ0HqmRtzuj=(^KXDSi;_|^OEw?UvttJU2Hh+; diff --git a/Lora-Bot/bin/Release/Utils.dll b/Lora-Bot/bin/Release/Utils.dll index feeddc7f34bab69a92fcc81698db4b38a74c65d8..956603ae71e881149c5883707bd36caa4acedffb 100644 GIT binary patch delta 106 zcmZqp!r1VIaY6@kj7!MI?v3dJs!AIqv~%{m%?{hW@_hB9{LMZY8#qC-lm8b=nmKCT z4w^Kp-+TH_+3&#|y*n8h7#N(bVnT~ki;824lQU9ta$;QalS^|`^Gb?i0*dmpQnO1^ KH~STBVg~?LF)N_} delta 106 zcmZqp!r1VIaY6@kP)ESV?v3dJ({Cl-R{UP&Gs&}5Re0~F8Jm4FHgJMuC;u;$G?Ok@ z+Qs)%)S;#O>&*%4oB|jb7#LiwVq7!RQ}a?4ToOxCGgI?oT=KI^b5rw5Qezy8l2S8E KHv1KAVg~?_pDV5a diff --git a/Lora-Bot/bin/Release/litjson.dll b/Lora-Bot/bin/Release/litjson.dll index 6431e01bba3a42a18e6df77e90787922c7ed8a1b..f0a3790df92c34b6885a63950084019c655377b7 100644 GIT binary patch delta 106 zcmV-w0G0oMkOP2_1CWRVTtrl{ixII9y3^jdqgCcgow!2&s>)~$v#haz3TfTO#=hCDH>slZDP1?L>V*?LJcC!9HNwb&n z^TXw*JG!r_j_l~K@zQ2wU|?{yigC?MPt8kJa7ipl%}mXUammjv%}vcKNsVzVN=nTv K*<81;i4y>&vMf0O