From c3ab7b897bbf8dbe3b80d52983212a2818ac757f Mon Sep 17 00:00:00 2001 From: BlubbFish Date: Tue, 11 Sep 2018 13:47:29 +0000 Subject: [PATCH] Make Deb of 1.2.0 of Lorabot --- Lora-Bot/Lora-Bot.csproj | 16 ++- Lora-Bot/Moduls/Googlelocation.cs | 87 ----------------- Lora-Bot/Moduls/Scral.cs | 92 +++++++++--------- Lora-Bot/Properties/AssemblyInfo.cs | 7 +- Lora-Bot/bin/Release/Bot-Utils.dll | Bin 20992 -> 21504 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 15872 -> 16384 bytes Lora-Bot/bin/Release/Lora.dll | Bin 24064 -> 24064 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 29184 -> 29184 bytes .../Release/config-example/scral.conf.example | 6 ++ Lora-Bot/bin/Release/litjson.dll | Bin 51200 -> 51200 bytes .../googlelocation.conf.example | 2 - Lora-Bot/config-example/scral.conf.example | 2 + Lora-Bot/dpkg/control | 9 ++ Lora-Bot/dpkg/create-Builds.bat | 2 + Lora-Bot/dpkg/lorabot-logrotate | 10 ++ Lora-Bot/dpkg/lorabot.service | 20 ++++ Lora-Bot/dpkg/make-deb.sh | 51 ++++++++++ Lora-Bot/dpkg/postinst | 8 ++ Lora-Bot/dpkg/preinst | 2 + Lora-Bot/dpkg/prerm | 3 + Lora-Bot/resources/google.html | 44 --------- 25 files changed, 174 insertions(+), 187 deletions(-) delete mode 100644 Lora-Bot/Moduls/Googlelocation.cs create mode 100644 Lora-Bot/bin/Release/config-example/scral.conf.example delete mode 100644 Lora-Bot/config-example/googlelocation.conf.example create mode 100644 Lora-Bot/config-example/scral.conf.example create mode 100644 Lora-Bot/dpkg/control create mode 100644 Lora-Bot/dpkg/create-Builds.bat create mode 100644 Lora-Bot/dpkg/lorabot-logrotate create mode 100644 Lora-Bot/dpkg/lorabot.service create mode 100644 Lora-Bot/dpkg/make-deb.sh create mode 100644 Lora-Bot/dpkg/postinst create mode 100644 Lora-Bot/dpkg/preinst create mode 100644 Lora-Bot/dpkg/prerm delete mode 100644 Lora-Bot/resources/google.html diff --git a/Lora-Bot/Lora-Bot.csproj b/Lora-Bot/Lora-Bot.csproj index dc41609..1575b1b 100644 --- a/Lora-Bot/Lora-Bot.csproj +++ b/Lora-Bot/Lora-Bot.csproj @@ -45,7 +45,6 @@ - @@ -86,6 +85,9 @@ Designer + + PreserveNewest + PreserveNewest @@ -95,6 +97,14 @@ PreserveNewest + + + + + + + + PreserveNewest @@ -105,9 +115,5 @@ PreserveNewest - - - - \ No newline at end of file diff --git a/Lora-Bot/Moduls/Googlelocation.cs b/Lora-Bot/Moduls/Googlelocation.cs deleted file mode 100644 index c463338..0000000 --- a/Lora-Bot/Moduls/Googlelocation.cs +++ /dev/null @@ -1,87 +0,0 @@ -/*using System; -using System.Collections.Generic; -using System.IO; -using System.Net; -using System.Text; -using System.Threading; -using BlubbFish.Utils; -using BlubbFish.Utils.IoT.Bots.Moduls; -using Fraunhofer.Fit.Iot.Lora; -using Fraunhofer.Fit.Iot.Lora.Devices; -using LitJson; - -namespace Fraunhofer.Fit.IoT.Bots.LoraBot.Moduls_broken { - class Googlelocation : AModul { - private readonly HttpListener _listener = new HttpListener(); - private readonly Dictionary> locations = new Dictionary>(); - - public override event ModulEvent Update; - - public Googlelocation(LoraController lib, InIReader settings) : base(lib, settings) { - this._listener.Prefixes.Add("http://+:8080/"); - this._listener.Start(); - this.Run(); - } - - private void Run() { - ThreadPool.QueueUserWorkItem((o) => { - Console.WriteLine("Webserver is Running..."); - try { - while(this._listener.IsListening) { - ThreadPool.QueueUserWorkItem((c) => { - HttpListenerContext ctx = c as HttpListenerContext; - try { - String rstr = this.SendResponse(ctx.Request); - Byte[] buf = Encoding.UTF8.GetBytes(rstr); - ctx.Response.ContentLength64 = buf.Length; - ctx.Response.OutputStream.Write(buf, 0, buf.Length); - } - catch { } - finally { - ctx.Response.OutputStream.Close(); - } - }, this._listener.GetContext()); - } - } - catch { }; - }); - } - - private String SendResponse(HttpListenerRequest request) { - if(request.Url.PathAndQuery == "/") { - if(File.Exists("resources/google.html")) { - try { - String file = File.ReadAllText("resources/google.html"); - file = file.Replace("{%YOUR_API_KEY%}", this.config["google"]["api_key"]); - return file; - } - catch { return "500"; } - } - return "404"; - } - if(request.Url.PathAndQuery == "/loc") { - Dictionary ret = new Dictionary(); - foreach (KeyValuePair> devices in this.locations) { - Dictionary subret = new Dictionary(); - Int32 i = 0; - foreach (LoraClient item in devices.Value) { - subret.Add(i++.ToString(), item.ToDictionary()); - } - ret.Add(devices.Key, subret); - } - return JsonMapper.ToJson(ret); - } - return "

Works

"+ request.Url.PathAndQuery; - } - - public override void Dispose() { - this._listener.Stop(); - this._listener.Close(); - } - - protected override void UpdateConfig() { - } - - } -} -*/ \ No newline at end of file diff --git a/Lora-Bot/Moduls/Scral.cs b/Lora-Bot/Moduls/Scral.cs index e26ba80..7c8fbbc 100644 --- a/Lora-Bot/Moduls/Scral.cs +++ b/Lora-Bot/Moduls/Scral.cs @@ -1,16 +1,16 @@ -using System; -using System.Collections.Generic; -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.Devices; +using System; +using System.Collections.Generic; +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.Devices; using Fraunhofer.Fit.Iot.Lora.Events; -using LitJson; - +using LitJson; + namespace Fraunhofer.Fit.IoT.Bots.LoraBot.Moduls { public class Scral : AModul { private readonly List nodes = new List(); @@ -33,40 +33,40 @@ namespace Fraunhofer.Fit.IoT.Bots.LoraBot.Moduls { } this.SendUpdate(l); } catch { } - } - - private void SendUpdate(LoraClient l) { - if (l.Gps.Fix) { - Dictionary d = new Dictionary { - { "type", "uwb" }, - { "tagId", l.Name }, - { "timestamp", DateTime.Now.ToString("o") }, - { "lat", l.Gps.Latitude }, - { "lon", l.Gps.Longitude }, - { "bearing", l.Rssi }, - { "herr", l.Gps.Hdop }, - { "battery_level", l.Snr } - }; + } + + private void SendUpdate(LoraClient l) { + if (l.Gps.Fix) { + Dictionary d = new Dictionary { + { "type", "uwb" }, + { "tagId", l.Name }, + { "timestamp", DateTime.Now.ToString("o") }, + { "lat", l.Gps.Latitude }, + { "lon", l.Gps.Longitude }, + { "bearing", l.Rssi }, + { "herr", l.Gps.Hdop }, + { "battery_level", l.Snr } + }; if(this.RequestString("scral/puetz/dexels/wearable/localization", JsonMapper.ToJson(d), false, RequestMethod.PUT) == null) { this.Register(l); - } - this.Update?.Invoke(this, new BlubbFish.Utils.IoT.Bots.Events.ModulEventArgs("scral/puetz/dexels/wearable/localization", "PUT", JsonMapper.ToJson(d), "SCRAL")); - } - } - - private void Register(LoraClient l) { - Dictionary d = new Dictionary { - { "device", "wearable" }, - { "sensor", "tag" }, - { "type", "uwb" }, - { "tagId", l.Name }, - { "timestamp", DateTime.Now.ToString("o") }, - { "unitOfMeasurements", "meters" }, - { "observationType", "propietary" }, - { "state", "active" } - }; - this.RequestString("scral/puetz/dexels/wearable", JsonMapper.ToJson(d), false, RequestMethod.POST); - this.Update?.Invoke(this, new BlubbFish.Utils.IoT.Bots.Events.ModulEventArgs("scral/puetz/dexels/wearable", "POST", JsonMapper.ToJson(d), "SCRAL")); + } + this.Update?.Invoke(this, new BlubbFish.Utils.IoT.Bots.Events.ModulEventArgs("scral/puetz/dexels/wearable/localization", "PUT", JsonMapper.ToJson(d), "SCRAL")); + } + } + + private void Register(LoraClient l) { + Dictionary d = new Dictionary { + { "device", "wearable" }, + { "sensor", "tag" }, + { "type", "uwb" }, + { "tagId", l.Name }, + { "timestamp", DateTime.Now.ToString("o") }, + { "unitOfMeasurements", "meters" }, + { "observationType", "propietary" }, + { "state", "active" } + }; + this.RequestString("scral/puetz/dexels/wearable", JsonMapper.ToJson(d), false, RequestMethod.POST); + this.Update?.Invoke(this, new BlubbFish.Utils.IoT.Bots.Events.ModulEventArgs("scral/puetz/dexels/wearable", "POST", JsonMapper.ToJson(d), "SCRAL")); } public override void Dispose() { } @@ -114,5 +114,5 @@ namespace Fraunhofer.Fit.IoT.Bots.LoraBot.Moduls { PUT } #endregion - } -} + } +} diff --git a/Lora-Bot/Properties/AssemblyInfo.cs b/Lora-Bot/Properties/AssemblyInfo.cs index 07f824a..61d396e 100644 --- a/Lora-Bot/Properties/AssemblyInfo.cs +++ b/Lora-Bot/Properties/AssemblyInfo.cs @@ -32,8 +32,9 @@ 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.1.0.0")] -[assembly: AssemblyFileVersion("1.1.0.0")] +[assembly: AssemblyVersion("1.2.0")] +[assembly: AssemblyFileVersion("1.2.0")] /* - * 1.1.0.0 Update Scral addresses + * 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 */ \ No newline at end of file diff --git a/Lora-Bot/bin/Release/Bot-Utils.dll b/Lora-Bot/bin/Release/Bot-Utils.dll index 3bd46d56a3d31348420b59d88f088bdfb4168c87..caf4664148f6f54e96a9806fd6edc7287497adbe 100644 GIT binary patch literal 21504 zcmeHvd7M<$mH&B5tzA{!RlTt^TF6%R1`Vj-f;7-T6B=5&0gWhBcR!kf>UzzqYM?{V z#x0tFMn_FxG)gw&j3zN-qDe5(#E@vBgV{}x=)^3>OqR(oznJ)g-}jvRYUzgPFTcO$ z^ZCuwI`3@v+;h)8cYE(O9q;}i8AN2_cltEZ6S(uWP~h8x5r`w_eknqa1)iV$gtqee z$=zF0+4!Ji_dCgfcyBV3v2*brEA9+s;;Br0$?C57fZb;`hr_|CuIbJ;qLrFKANcBr zuFlu?3Y`}((`G>cj#qJivK99@ek1r1RS2#tznS5x5j_P0e7+3YbTg~+|HZpYG7HzO zu)CU(5u#ljh_Tm$L?Q4xQ$%%RWp78viTovUKj`HpbaT$yl>`0C3INEYt*+mo0R0Hg(0nm3dv}*wxrb1;L zknDJX!~_6mBAWpSHu%o%OQ07}U=m={AL}=pwe~rzgXB>u1{2d5aFx)Uj$707Cn7OARpWtGdj=TC zmCudiT;CJmHI})=`5@qchP>0!BNr{E2;88`Sw4!x8FWoF0eR4F00`EU%`?IE`VNNt zb|W}Oq6u*R8z|xr2kd4Lm1fkm(JjFQhDES3rJ55p1LO81SlYCjV?KD6Xo2vf(`t{Q zt(qe2*9G z>algbJf<#R?UiLd@9n9}|8(l~>3Z%vPS!K}Zo-(pb367zxS#KD_^FU=WMuPUmB{hEgj2iQOKfg`YH`}x?K>^9B`n&X6Nm4y~ zDR_G>1JJVz8093@6PE+R=gL{840QwfGHySH0=n?r^6WxL(UId65_AmBO?_{5q7||- z=Q417`{1DFT+c!TQq^1>9F>SK5{svksBSNYg1rO)$=FbXOq8TkdDy7e*5~_X_G>lb zmrigLvqiqFVYhK%ue}tvM!#3LmjS7-s>c{KX)9;b`v}wXq-s>s@t(Zj8E~=y28j`&c?koui@BIB(rZta8-@601?_=#x_Q z@n+0SV4VmymV5Q6xsS!8^wE1`^gW5ryuN22i%03Bi^u4D6IbN*z57^Ps&8W|4<4H| zy3jbUu3}*(x*!()6UOutgg)Z@Bf3JX-mDpzF*WXQ%xr{d0{xB5m#&VYs|^+I(q4YO zrhbJkRThQlc%IwQ5MI~ZoY5tz?X~ROIeF)5>~)}X(3%+ZHio^oHwL^l2krG>)~f=N zLk1z?2(t@pT?tu}*SQhN3Kgbm=lFE{Dk)N9zZ-WR-B;r-Oug3Lz_`qa(^%{M=Y|s3 z07+a6;M@#Dx=dsCMrLkem2>pnNxq+_8+!x+qbJW0(EVv?a)G+0CN)kAc){RaxQG*jvH3w*dqj;%G}67}g7}%BKqX z>;YEE06=cz*7PGauaxlwJp&A^I$XfH2ko;5fi<$n?Z;4MKm)HrxbZ@=H zwBB34PM>zlw+p=NFo2nO4~r2#nde|pF1L=fTSuQ!YS$&iZfVmb5)+lQl+WRic%tK^ zPo*oAhP@j?-F`2i^1(w7=Y7cT0e8=JtdPAPaGLWZ0_8l9-xD_i?zxFkEI2pgUb0=fh1t6q%619sq(M6|hlbEU zQV_W_MYZD(mnYr_Jx(UJ$eW#8aj$-NI&s?={`+122XGhV#6HIM1L*H%PZGE1C2Wp~ zOWs5+rM^mL+IK)SA3l>C9eLsvsMZ$q^|lBc*e6`E1IzZDZH7W(-8_D8@9VoNl!S+A+r zRZln{LYxv0K!Qotxu1y#K{SjqwMaCrdTF;|@CCWX2&FZS3|= zC?(tSK76}S9_lX^%BNj<;-e_c`Svk(6DEFIP-!nV161hm zXkpSjS@73h8S>XH*nax->Do%ub!!GnVgJCp5oZopKgz3)v)D98d-e7P*1nU0s9Ad@ zA12NXEwJI3DV=S93QcZ|D8f?+z(yDo(fqd%Ql}SW_91ARiGSia{WCzNXWo;LVa#Ci z4CWemr{T>$!V+K9YkwL@t^FB5`?COvM*&>+xH0U+=OC-}H&jJ^F~4f^zpyrv34D5JSSdi%pEjjeq5vP=4sh5J=w3~Za)Q})?l3$vobDy_tRX{#YW@# zYPoBi>@IufgJ1F>K$gOwJvc z@UM_GO(IHCdT;>Ai@)ns3*G~$4=F{ z(pn4goc{~-w5oXiPXy(<=OfgJ{|~vA9|2&h>*X6ybw37Tzr>WkVKC~qQ7Tv&knLk7 z<~+E3}?lBCr88e+FTx|_fqSR)ZSmGpJ{U| z^$;2j{uA1s3lvUtulAiDUGn)i`tFz6w-$rX12SIR0UC6l)Cuov(7^yzxnH}7i}3hN zoB-mE&#ms^>u1a=?1f)pP1Mh8{f)R+U|f`JErShLV?WAUOWtnC*7C1trP^989L3`O zRbe8%SWToMeK%LAs=EgN^^@g|hU?RxR)1rcw@lz1)@UjN2-s5=8d>cAlVwABeb4fX!O z!9uH=+~vXaMa`OnaM_?Rt-Xj@x&sBDn3|Zzy`Cw1gNrq1?c9;9YE)Q5b7m46KY6d zHsYK)%W-5?{^&8W5T#4ps`8S;p@ggbHOxr0d8w4+fQlQaNHXYlHSHBM2<_te@Zvh& zbc}hl%=xa?&rP)BhxxJSqc{FT;fU+&DC@?RQHkqsfVgo*4=hJU)qh0Yb%P(Id3BQ? zka=|vKgsgyP6L|A51qW+V{fpTyVU*c`Vlj)%#Z6$S-b?nbClXVLl7{=LN8O&{jmx&%H|mGmW^Iq8$;1AZ?p^e~((@KJ$#1l}v~Nzu8>+zktZ0!`un*nG|Fr6b`B zQ1%w>d)^?O2&@Tt>2X@4dFi~+1^zBN7UWtE3+EAoHP^zQ2z}l6?TD9d3vj)!`I)~0 zFh#PdISxNMi`Bm}-9(krFx;Q&kT7W-EO{{zwZg4Da)$MpvM46hYC_ei}xfkEhh z6QyGGjmTYS#iM?PPYXO0VElRGF2wm#(VrsLE;QNB?@{jrS{kem)X+|8br+LNZ0DTZJm8Mxl~IRnmn*wFp&B zm(wBC^kJ6yh)!-<3laFN#F6tQ7oo!hUPc4 z&3L9C4IBgiPLwri*!YV+l@4pKK_}#8>7N43|77GA)1;r3-GEYxe_fdEFrJ4^`qLhb zmJ0l<#`w5BSvxEcM{=u)TrFMDFN%cZixpL;6lTQ2p5;0CIq zH-x&yf1mdys-`~)wb%bo-fB>9xw3lgCG@(9V;<37|0P;AD0LkTzhNxWumZ|;H2hzn z#!*-_Z$bNhtBCpCs6m1$n&qJiP@5W9^CmjwwTpBUAke(GwnXU+5*p;Yb7#INSKhI3K-EE;sF?;>AB4YFrE&yAvfC)9PKd6YP2 zv*>+7soGoUgRYew-amL+XdyNkTm$HR_}U*^)MT+K~beJ-Ts7pQXO zq0^oV8O8OC=K)^@$_zFbD#qO5#bKpPY#kyt>sP^$LJ={liQ?U##v zu3-}TwzWY0$#+m+M7O%-xV4K%#d--nb`dM9STCV(3Z-gjqaO;zHE7gECkoUiPaE+o zZIuNY=CVkED)TOY$abY*~2)sI{)_&z_Tb zgME!F)4dg-HoLN)=_m2!O~#e|My~+1OQ@q1@tvg3QC@e_cT_pF;VrY1{=GzV%_z+^ zG)+2&Tl{9u?p!}U0CM^fmMFyd<9!DgUTV*XpzaV)boC+v9zqRIT@ue zvq4{{bI=NdPKytWkG9z;nxz(0?Hm~$--NN9Gj)^?91VlQ61T63CPSU>lNyyL%G#M0 zQc|yir8*Cbhou%uIWM4;Ndw9&X?tl570y2EZnR7BQaehMdqgL^l|UQ6j`-;GfZ(MO zF5(8=Dz&pF*8Yfx?#G%s6??Gzu}0pH_woFjig)QezN3I1?7tbG3>c&qK%T7_whC+) zc!j{L1SSQh0IO-c;KKs<3Vaq&qo?VBkpOHgZ^nL|SLoX`9szekx)>bZzuZZ;M>OEP zL%36<2eeRlEgjHqFg8GXZy*UN?{OZY@A|5N^B!j^Js?8nAOK8M-(&z@(o7OR>0 zmB2B2ZkoKRE*8zW3_IvpDWy~svw0QZO^r+Tj zFupB#lHR0)k<*a28b0l5Ivp(6-lXs84(#N!^T9wS(Rm3Z7o$O6QXxC-D zE5JH_o6JcEBo1}%?u=t{n{ZwPT(7-Ip7Luo_I5M$4;VSr^3HWtb+lNxG(=UwY zfDcHkH|Zy|N3}nc{X+XA{m##=ZuOmnCkxQ_L)x!GZ)yRZ=hQ=5t?!g}KpP1f`T_0X zU{D{g-(XarcMjo|SC#B5t7KofQrcA|`^_ri9Z(hVUZ+ZSqgApSt&&{~A|1M1??w-H z>Ko95FVLHGw?C<`l&EfyURz1Oj%)*Gf`7Z-CwQOWRm3~3D&jpA*SH@#tG(Oc3GZyq z*E#+z`V{{I`kVA*=rH)auSkn;IobL43En4lzt+|ZxI|QFE_|5($24`s}_`mj?)K=1U5r&+f@0I+#N%Au%d!Zch z{^-5Z#nbIftTg+jdSK=38ZJxPT@AqE@osVgUjJ^8Pk;`Chn}0FN z^7y(+ztFeJ{J2>7xJ32i(qA8!2s|tic#L>dJ}hmy8=70qv{=i@c>-h8%$YgaXC2Vj zdEa9mkzL&pIg1>Tvq)0=9D4i+@&4`z@lNgt@$T-3oKd!Gt^OJCYOT*kOjZg!9Dd2% zuKzLg5@Pz(AdgnwGau5Y1pb%#ke<@tGPi4g;jyoODXe>jwU2}Yp6|ft@t*HXj|^)Q z{PmtH;(hQD@$-myc%1kobewpvcbs@vcbs@PcU*Lii_UAryRZ9DFV6g#jrma75sP0-qB2ia-jAR{~S?GQN5k(5~0+z&!S2%wHGi z*XyVC!^TnL1LizWm!}_(xUpQ)c+-n@RYSY5q|>LpGqAQ^t}&b$ZUD5)8BX^y{GHz5 z_2aaq<4jizsN-~Rpll_ej-K%VuLjg<1=dB4-UW!A1lC0jd(r^#Rj5b9KC=vXC%(zh z=nB9ISSK&Ui2WozNv8JiT9w|ezgyp>e?fm%UvKmpIpclCL1V4C!R$4!H(xPho++Ld z&%GXVgx6#B!wuJR?4PjpDO{iNRIviIG}M^CHb85%-V>f5@I$aMWiP-!tkgPF{3f0+ zF`-bJjhzcWbyGE)Xam!J_a1cbA@?3}@6Z>$xVm4uKAFlbwVkdlL%BYCXJ$dq#*K3~ z&Z5PRompY`Y-*wQw#?9gHap}hK>0%s1Jxo|FBDo$DpXxU=w8qT7E=JwUJHkV3go7(YJ zrB2x^i1~hBwI&2 z&lJHG$I52U6m&ZFAo_Xu49PMpr@ZL0GH41rCJ0A6PjE=OtX>-mjCQ1uTUkX9Sh+2B zAHgMbq~&Z*_FA;Y8cg$@byp!I*+Hf_I0{3R?U`&YnQ?Vg^QF67G=o1zQB|Qa$$pF4 zGJWlt9riYh7FqqNjEf`7kmy-Xd|G0o(^2Pnbir1RWS_3`l;qFwfRJFi%l6}@d(%DwD(w%hR=u-SWlC{$=6}0WjS(z+m zs-kY*%u@Kg&T`H!R6}CON%AarX4xfHw%17wjuxsoNQpI8I=M@*?3snpzkNf!xibZe z?ZIIu)xYJeqJhC=X1G|!O--&7_4K6Dsa%Pad#xjt;VxJ-?Dm(8e;F4F>yvc1`V_Uy z$|y=q6KLM*8#aPTU+yFJZ zUCa_yHRe|JMvS^`7wH=6$;wMI8K*9);=|=SlDXb347W%)R$7^UpqNFn>r+55Fr1u1 zrH1xQitL`P)S4a6^e#@O(><65i5K1i(VORTqn9LyS8rZ#S=)GpaIna!uq?On9eKVt zgxJCyj(=CGACV^XkXn{_@=NC%&M9GMtV|9A8(d!1TGMG>f16|pZ0-Z4!qsWpX&Ovo z*r#0;^Ion9D8W6ghqU1sX#LD z0?9_&cJ*2^GNnx=Bb94nw@X=)p@=2#f28w~6udn^SLEc5akZ6cR5Uc0-!(~Rmh7TP z7QOb&W}Do}S?~_bVwR)WSRQf?M!l`*{2VXBuC!$h;>#U;rzY*=0psul?qEaH&U**T z!QjKji+2dXdAl%>%)!Wx6w_HOvbcfnM_;bA`};wq)vXwr^_<2KVEph>h4~v<)3yVd zqLu`axKVUpeoVc98EJn2w~N-T3=PSp^&tOUPhE3Tro%SK2#^g%puR zy2E#?AKjSgLqFO@cZ67DK}GR-XtX&FG^7HBmh36>-HE*_qDsviTUwMJ>gidU%5G^^ zx!!JfH>17WDoBw4+<3Pm5N4})8!ypaIVYccOH#@HjGe_QnB}dQ+NcOxvQf#NwH}PH zY_nt|Z(OomTM6Y3h5WQ65__=Aa(1Lxd5l=CC6-f=tF;re5s&Ju8W*Y#HBnRW!vm{5W1GZ$J^stbH$z*IG#?sB)0TLLo z;JPT))z|+a;?B#fwt- zr#G47eQ+x;OqeJ!oL2X2MHchQ!Z$amu>|+3^j2LYX_e<-Pnbu$1~HLQIyC^;-pUIT zMjAGI*c-}?2ixKy$AN?7Zq%g#?g5Y&5rocVS(yPfZ|VFBJX#h$^F(Y$lc9|!aD72 zYF9pj934q7L{m)@IcGS(?~}>9H8V_og;OO0BMUDtO>NtUuvF!S8E?;6d5RryN7}F~ zx&;EgRKS;6JSofBhzC~zr|}(RQwG0g{JHiJupFiEO^1cYAYH)v!AatY=N7;W^#Q}K zo#M0}GNx_XiRVLcND&XfUT9k2Hxn)Ud&;-t*+@6+I4Io<+ZOG}+nLNB_QAI_&%k%D2in$MJDo zU?!kM1z5krjBAM|v8|nAcP5_NvhFn^or*UCRJ{uLPW0sB()=k~k4UEwVT|vD>ZGzRl+B?8R1-C5*fxdQ+X%Gz)JkbBW9V{bIVcZb01lBc=)3o58n98r@j(+ z|D|NaNi*Y`=Jxf@WV?~z@7}4J}owYT4Dnn^t!sB&leleJ^oM_-w49N3SDAcrwEU_;e$LD zh14yqZmeI2c1j&dzsILdiVee!*j~JEitCdg(+#lj=F~v@;e=)|h`<_r-5cNl?G5wi z3HeSyuS5#H!-V0LM(zo4Uyj_YMIvZ?b!-GxaJujvsVgE*98nPsF3iD1q~TH}Vx>Ag z687aIDwRnn_eQ02;hR<`3AeYpt|auV7?a8X4jD+Ok=qbC7_8!6QhtmQ`P|A7257|g zprz4~PnceS%X|#+znfre+|5meqLrg;jUvz%6b<7oM0D>YWk&^bQa)kX2yn?##?dGp z-g9I|SqhJ$kRX*3P&5otgVP?Q6?!VJO^Qr1xYr`yxB+_zDn<8Bz6gIR!kOuh_~C{> zHu6wxr1WF@Ptidg1cnu)Dg+AY6d#7=lAhdhWN6Nvn(M$m6X#wzo}_G9!;fB;K&Ds=|%y3d9ZWAFUE84WHX#LE~N<2d?Rj zjXc`ni-^}e-IR=XH+sy4cOy@_BT%|0Hu5w=Aso&FMT~qNlhj-zIWBJ!%qui>Q>U+3`qux`C(y^|bVWoHV{Ww80TcV;!{>7s|P zI|9W6CE=4)T($TFrtmy8{4ZmxZJ zc6x8`DQ;5R#T(jE{dhMN=SL1HE3;vVy$!G0@Qic=9)aW35%0bWZ|f{e9%8ce^fcJ0C@uRx_&Y^_zjDXldJv6_*5vU@ z*sY(*XT9b4T{(hW=U4ddRcG)=wCkvgHUjebstdcy)!0{Vl-=c0;Cwx4{{EDD$IUeq zfBElVO>os@z}o6sf|~}beC}E*XCDhT`HY5LGp?!fCcGO`K6z!a2jg%-=MLs>lJg*4x`7M%QN z;iv9Im*Q)9O`^kR4hJpeQ)tnnGwW!^S&7f7+^;c|U5Rr2Qi@wVh;uG`+K-bf&WRF* z(Y!dm?2F?+bznSko@<#HmPq( Pj^kgX_@C?lzX<#v2tdEl literal 20992 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 v9Ua?w(xw&O^Sw{M-181$ diff --git a/Lora-Bot/bin/Release/ConnectorDataMqtt.dll b/Lora-Bot/bin/Release/ConnectorDataMqtt.dll index 6779a246c0acde51394732690eed724b4cd7df03..03c5d80cd934edf915392f39a4cbc061cd027f8f 100644 GIT binary patch delta 1478 zcmah}ZD?Cn7=F$@_a_y|W*P z-7xK(qfpweTwyBHQc>9asM9bu{2CJ-2>Qc1MwuWADuSrpkctY^=bjYthu{h4xzGEa z=e*~A&wF#n>c{F&PRPkir)DRMMc3@vynpt;GuoB8Yr^LwDs0L zQ6YM*agoe#rq~`kI5imf^>*OvOh8y=z6PsJ>lcmI`&ue_NIQ}ZxCie94x2e-{;6WB z%JWK_UN8%3Pba2I>B!9UL|jgn|Fp~B;c+>q6LmMWBLdL>Z@<$lVw6x-TJ4`IQPBrC z@w}J(Q%O5^d7l6Ds_I28%;VjJ4pd%0^~PEaqEUZ~YBaa8x>s@`I>;sR@O;5BL-XjAxwX7fz>IAd-X6G?8a zGrrT^xSQxeh#{CU*e?#De%Tl_Hek!D6)~=pEoon&EnsU-tXq^N^juWdIGhZu;TBs9 zjAIGk&ypAgk7_pLW=zmIA`5(lqMIY zfDenTAfM<)B{3Vd3O6a-qOe8bE`|FPb`#ekq4;A8pHMhXEWu@-66W7-(r6$i z4iUvHS6f)ZqU<7{OQIL^SivJWi>Nf|avDPlM{xrMMv^>VoPZFyn8sVUOFTn^3%Bm4TBXNVmCWTv-zZK2&$CPKk!XDOEjXoSB4q-+Vpq)*!-&6}f zTYauVU!3nhul=9#xpm4_DY{aZU2jW$>!I$!)S#zN=&{573G2(-My&_D&DqY+empbU znzi+e`;B9I&!vF%vbWvkbV}c@V#8(qj54b)$_x~@l9dh-3%U~P@m0^=xsgt8 zhKFd3-b|Dmru;|nHaGalMr=*y#ywiD`pm}i3cCKUrf8*3qfZyDQVZs7qFSw+RlCni zAoL_VX9CY!l*7YAM+XODZnvIK*WE>^GmJILYz9L6J6l_L|DO71s?(|vA$8g+NUx^N z=4Gg9D@V;+`TmgU!CQvQQ{pF?g=Y1+)etwS4+@v-Vp4jrDypRqnPP?VE-@}`_dfhHE#OQU|nURaz4y@!I^Lg{maIH)rftYnqys|v}UZJ-Em`{DqNOjv|QF&0tOQs zSmOME1lF)h?FX$b;SYQT6I(b|U@2`9msnO4HIDQH(Ju0+zP{l^yKqnImN3T|2)w51 zyj$bTQoxU8o}h^Ip^D5#gXT`neVVPB9h!$Vd&xW;)$$3=Co~ge85X%qCEt@VYX=#Z zyYVp|5G_d3+lsHrF3K;*(Ti#PiUG``MMh{ctmB#^WRW<<(d6O`-b9_4pnO1{qx>); z5MtDtLb_O%FL1M5d4b*;^Ho08E9YssZd{=3b|i^+xJwct@h<6OH;cr##v*Ewfu8Sp z%fXLiF|tH08&^o)!tH9&sJTnCS=-xiJMCd@>C)`O0a_l#2pPi}u?2@X9=_aA_(r{v zR_s5*e>)rg_gYe4rd5e>%1XZ|Qwy2LgsQPe)r@^t_VvX3MW5u}Xq))xTu(4C_o4d5 zK6Iby75)y(F+@qB

ct!Cd|h>A?0l(z0#abcAJl9m88{ms)fNPMZ!&Ee2EP-u|&f znj?j6Q}DPM#wJp;S+$~-U%4)~DuY)EE1u#9ZHn*S!Ej4>ac1R;@96G~^$*3mV||bGMmMABsqOw%wO8Z?);2$XZq}b&*+~ZTjcawO a?SVC+&ilJlcJ6P|FzZwP!gZ0X_x=U0><6a+ diff --git a/Lora-Bot/bin/Release/Iot-Interfaces.dll b/Lora-Bot/bin/Release/Iot-Interfaces.dll index 1172216b8914b0b0386733f6ebdac77c57d173e3..41ce76e7c2faa4c6d06ffbdb7f85dc2a147c9bb4 100644 GIT binary patch delta 120 zcmZoLXfT-2!Q8cf`o`{q+yaj^0`mVEpZ)cX#`@_V=?ryK?S2@xWS&UVo+>ieY6$g%C`M2oKf{99rpGUQ2X?6f_Zi z=^n_AkL@Rl1)shMx1G(4?bWQndDsV07Vbj(PL|>N(haf+w+DBz{X8pRbM5miCuC}M@NDl{BGwSl? z5jlC%HW+G!&+WTq|sVi0lkh3#z4dBfbXniw5`DOu%^CG&C6i*6P z!pI6#N-exNW30fnc*Ghid{d#JJo{!#<5}herYMp|2=Oz+49vj*-pA=W(!3>({Gv(R zFng|pFfbQz-jRP^tss--$93cgIpSd%U*@2zz;l(ArYftc%4)K*VGVhjh7ai$IfYU2 zQQ;xp69Cpk?v(!5Lmu3z*_X^& zNv9wf^d?~#>;}EbjzMoquwJ*TtcRJQ+T2iWZm0u9(n;YqG^@NuJDB%PlOAu@;rkX) z#Y-nj%B1cW1YN7tmGl3uycNoACW3%oK9YJcjdPm?QXZ*kWr7x>PYt5*#9h)WcZt_o zc@=b-ad*qT>P?Jn7o-&oA|_-d0zZbcSPvg>S(#@&mv4h^J z!SH6~G~-q|y_u6nYjXdmB*)p6^MzF%)d;Z0(WGs$u;$`Y?AzBPHVmmuG42q7`*G zY{&3j4hgw?8WxtNQQ7ch-Y7P5vKE`V?9xWm`)T`T=7pGCQHm;B4h*0j9~JI`Igs-V$Lg zm2Ogj?$P!kjyqK7^AK(-UCR)3n3`3jpCS)Imw@srQpn`z3*>);J_DwsT$goGRZD}! zP5Jso!-EcrQQYm&d9Y;@$N|&uV7(i~PlxV|xrj4*f?vpXy{NcViaSGn=m(3sqPnMO z54Wf~SB{KK;iRomPEHX+M-&&CA(ke3anT1#7d}nWjf<-Dq?_&Z7{8xSrVej}3yS-> zo9go=cZN11>bNL(n%XtVEmOMfbWD4Q$I-V1YNX0HfoAw3oD3$BIusWPCTTR7u*xZg z{;HIbU{YwgJb|MVrhae2RLB`UgN-?gN$74)ZFo^JYM6jKFp|?gH4>j2{)ZN48>5K2 z5GM$u2o{)bH>X3o+wGvcEw@|4XYK#xBI3cKA;D0OAuLe}(20+4L&8nd6;>*&Qdp<3 zLE-AKdNczQs7=w`3V){XBv9b9yTsxs9;XGA&CY9eG@aSzGPL2F+DhO?YXeoX$3zS0 zOx6agVi5pctA(hFeWAHQck5fQBZkBdXus3%0fwJMgT+!Ou#OFhy->IF2O)VH`?rA! z-U50()_u2H{R8wFJ3t5MvU!m9)3A0(1u;acnVXMLGwWjSfL^7I;48_H_y^_DPqly2 z3|ghfvNo2<;@K4HwQ@kqUdp4F!&U*yBbyho{glV&uQvNm~YvUBtrJA^tVnw{(%Wtw63Bs*;FWOLM*Idq)% zu+QmnYaeh}dl=ePEIf!u9UFv!&<}$Coi6DCG009bOw0~ovZvVy>kzN9v+Pa%EO3j( z=p36t@3M33UgJYZ{-yl|cnJs6Syqf4bC%83|IRMcaeje)ta3fe>iO4jYhe2Y z8FbX@WYtlWB~5{CCO=1C zV^Pl0WF&Bzy^3vlncal)nyAG!+@vy^4V*#qu+8h#u2@1fkTgIWF2&LLI4{Ku_$go- zy$;N!cYsCo8L&d(Y=sMyd@ZKwlq%2~A@&0E;_zhnhQjgX!GV~cK{JbIWjg;?rztb4$yH6$-N{K|zI-01IYiK?po9sXA7peHmuHTk!Wn3~Q0 z&Jcz+`a{F-r_JNqrtVP4j?Xw{f0D6yxHxk)W9|0qne|zvw1m1TguhZ8DFN!lpPx2@ z_sOrG-EvUw#6i_Kp?WajilM_#Wj*3>PrJI|jlM~1mfZWu-Zei@dH(S5y1XJb*T~{5 z-P3>EG&E0x%jNOwS>)+IX%Yj*^}k{f=b-S9h2$=mj`1#6)atDLqBo7bW54TN#V**> z@~0Mk4fDAE%Q&b#{om?V6f(F2ZR{O)qGD4UfJClpsOM;X|~C0-T(jq delta 4531 zcmb7I4RBP|6+Y*__wK&kESud8`GfrbkR>D`F$kjJPrwjCBnDIpB?%;8*p$?w$n9JoDT*Av~Uh!&zR zgFS_5{%#^a^!MfxRdb;rFM_p0KQ_1XM|GjX3|-MNYWFnLj%#J>Qh=N#+3`{iBAI+oen@bk(WW^iSkfV z3W+YHca=gKs*s6c+sHyH*7iiu!vvr7)c&#jZz3K-@GS^viuepAno5lIU{qTyB^qXA zCU`?!lA|uGI5JAB76d1PPbgUwOgZ~RqDw`T(OK|}-Uz775;Bqse=*X6MdSk?0AG$^ zl0rxgy@rhFY~?uzFjXy|IM$@EGJ&O9^w#5YVt7 zeaYq?=*h?pV0U2waMF}IY`XahQ>He}SM20rhq7UZ1y?xK2%3w2Zn=#1iP$Z0k&%U< zGqNHWx*X@up*z{y9D8P{P3%SCEcX;A`oP4F1Cp7(ukMUB%~C}3Ac0Y=hnyTm=2b?a%&`}S+Ne>?unWU#Ri$M3Jz)`9gaU{z%Zb^I;+KZ= zrhSY5q>8@+eC(v*(CIkPph?wZC7z2YfhjRgFB+74GCKCAtm<(WPe0-2iSyV>UAK z#KOQhUQfxxZ-pBm>7(7(!-&|D4Z;x-f0giF#dj2RwD*`~rz z#II#4HDf|0*~Ugo(jyu-Y9v!J?`Zimjrkh?AqwDoN@J5|t~VYwedMENJ3wV}4PL3g zvz|wrguU1b&>!s43EM}RblBs=5qQ|MjLu`2l3o!rJQ*1387VQC$0$HYZGu}KWJ&Mx zVrvXldVg+9sw|FIePbXcCM8{A$t8|yB6caRn5lH$oP+b!=vU(w4Iu zquruS7_?n$Z`rHGT4B*^No^A}Nf)%H{5A^@T`Z&o98b^=l*3Cm6sa&L=vl4Z=W4v# z+a|meDONT&XbQC?H5JrPd$i^T9Yv?LwvCn{nN%t$QGVNKpV%ToG_%yzR?96SOa;;F_#-$otf$7wt!r(OZQ^da|BFP*Y~ zN_*)=^MFp`5aFv^^iwOh@CT6RoBjBa;mFUagw~mVr%5#5@^c5LavG1Oh2A1Ap%=Vm zypuMevkq2kYcGu!*YLgk6ko?vS@10Grw8c(_0z6|rMfxjozFY@ZDiGhOdC0eHu4?3 zS68J(cQ!yr`2bbWMNb7QqL;;|JfO$d&voK+W**BIxRJNYf8qHB2g!>Lf^>!pRC~zZFpFatx0e@V zFlvg8ggDMeY_FI^d%bNuCyA=0+1h!4KEtF8kYPQAps! zwFpq7-X}}wS};ptEu=13t0;wb0n=y?a4a1L7Sl1{1p2K=R8cJ+Rdj>K+1fClPJ?OE z%rcFu=p2}}lwnj+oQjQB9lBfNvl@?UoXM)o78iw*yERUx!!&`L`EEYQ={O@9zbDjB zNJE`}y~uqe+S(X|Szw$#XhDp@gq(&GK8WQf@y;tm1tt=HJaK{p!t7QXnGt93GVzgs zLuBa66{;`QYUIUFI=80h)((@0aLioU=#=_wxFXnM=b7{}{)zK;`s;mrG7hnKLC4DG zB^%pXJDpisIh7qNW391!U80>9L}RUUT02{{y`7rcH?$?iIqmD(*Yx#dy4Mj#Mww+blSeat2XhPsb?NeD>zhjNQRz$y?N z2zY=w;qG^xZ^n(~lTLQo9emc=RF+$M0q&vhf8taPcYkFSFo*FIk^{K`yp%adriV8n zhVyD!k@IocP0skpUaz0YQ&Uw_Rqgag?!ZUp;D24<>w?7ITZU zr1Hl`HQCPj%0jD#s;IgzR8`ByBvADeOI^xYKe2X{HmU}QdZO>(#03HGO!otG`INrU K^z+OV delta 132 zcmZqJ!`QHgaY6^P&$j-J-LuUY88)k%e-#%{%6|SeN2tMh{(=Ur1jExQn|1t8uzCU& zMKb^a6A;TVGBEHI192z=Lr}0wuxM3kTgRz(|2|9oTV=Q2gaM@)oULL)i&Kk=V~UeA fQgd=*T=J7kb5rw5iYEt!UYqQ|D7slA>;^jk0e3C_ diff --git a/Lora-Bot/bin/Release/M2Mqtt.dll b/Lora-Bot/bin/Release/M2Mqtt.dll index 4d872def22be4bad530dbf364c3454d10ae14023..d1a6c32bd22387b24114de66eb96c3140f6ba301 100644 GIT binary patch delta 142 zcmZqZVQ%PQp3uSEwSW4??w=b4Bx^L+O{w5^Uei$~b|UB!!{#ZQ&Tz#6WuqB@fC-3Y z7#SEUZUgaN28N(um*9E(e+ey5HuCSxW?UAfv!@Rz&ERSkYCnwP5Jl30?OnVJ{l qlAm3go0?aW8WWaTT$-4p5L{B4l9{hyWMF7MdF9?~o2Tr{VFv)sF*MKs delta 125 zcmZqZVQ%PQp3uSUy{&&^_s@+2+wB?K|HoW$Z~hwJvistbz|B)Oo#FEI+SVV<00c}x zEW^maP;ncG_cAa91-k?v`}XNxvQdfaG{*_Y6_-qj21+wHTg8MHrxq2*6enk-=H$e< bz-!Q8!n`o?ZcErG>xY@c}89=I&t=oob`Q}E~JD_V1y`i|tjE9*6zmdws%DAEy1##X)}3)~zh86T5-82!Y8B&}nVy=Ls^F4XlA4*C7vqwj nU7DMkSCSeNmRVeyn4=I}Qks&PuV7?gXg+zT-nGq3^kdine=IZq delta 123 zcmZq3X~>z-!R)=Qe`B|$mVmMAFE+*EN{4-Km*>PUyI8pSiq;%vPoQix0}wC)u?!;v zLx&F#>oG6{1-k@aJv?Re^T$1YE3Zvg&pB=W4k*pwY!wq)oLW>IQ=FWUnv)ablAm0f Xo0?ZrJo%j7waE^QqMMiK$FKnaOuH_L diff --git a/Lora-Bot/bin/Release/Utils.dll b/Lora-Bot/bin/Release/Utils.dll index 3193878778b599e5fa0841ebc2bea6ab9ff950d4..39a51a9472f0cc1a6a11b9a797929fd036cad80b 100644 GIT binary patch delta 177 zcmZp8!r1VHaY6@k*Z%1nyTi2^6*oWD4whzQ+HCIrQc~dTWcSc{tVg_87VCaG|J|&4 zvq9oy4o0KNM>0b|IwnhJNjh;&JSx>tbJ?wd(W0YwfBXqX1_lOKs~FeJ^whjm1((E< z)Xdbp7?=F)(%jU%lGK>6%;M6-9EISL(v-}61tSAP^T~->*EaiPJ27%HF)#ul0|V3M a={c5+j7FO;=0*dl$-4Q*Ku%)*d?o-N=|AfL delta 160 zcmZp8!r1VHaY6^P_qP6x-Qn7djGG^82TKDfbN82$0&XRi3gwdvy*Dg*zP#q|!lj!H z5+`#o8csfv8N%$ft$(s~mZWY#?|jXEiRVuHZ(e49nVNWvk%581*(xTqIJKxarZ_nx zH76&=B|o_|H#M)Mcyd|RwaE^QqMLoPoftV889I002cgTt#VTWo~64L}7GgX=QF)L~m<#ZDnqBWn5Ni cb9G^CAX9X8WNB|8GB7bWlXbq= 5.4.1.6) +Maintainer: BlubbFish +Description: Lora-Bot + Lora-Bot is a Lora gateway diff --git a/Lora-Bot/dpkg/create-Builds.bat b/Lora-Bot/dpkg/create-Builds.bat new file mode 100644 index 0000000..9cc5846 --- /dev/null +++ b/Lora-Bot/dpkg/create-Builds.bat @@ -0,0 +1,2 @@ +bash.exe -c "./make-deb.sh armhf" +pause \ No newline at end of file diff --git a/Lora-Bot/dpkg/lorabot-logrotate b/Lora-Bot/dpkg/lorabot-logrotate new file mode 100644 index 0000000..6a70643 --- /dev/null +++ b/Lora-Bot/dpkg/lorabot-logrotate @@ -0,0 +1,10 @@ +/var/log/lorabot.log { + compress + copytruncate + daily + delaycompress + missingok + notifempty + rotate 4 + size=10M +} \ No newline at end of file diff --git a/Lora-Bot/dpkg/lorabot.service b/Lora-Bot/dpkg/lorabot.service new file mode 100644 index 0000000..d9e1000 --- /dev/null +++ b/Lora-Bot/dpkg/lorabot.service @@ -0,0 +1,20 @@ +# If you modify this, please also make sure to edit init.sh + +[Unit] +Description=Lora-Bot +After=network-online.target + +[Service] +User=root +Group=root +WorkingDirectory=/usr/local/bin/lorabot +ExecStart=/usr/bin/mono /usr/local/bin/lorabot/Lora-Bot.exe +KillMode=control-group +TimeoutStopSec=5 +Restart=on-failure +StandardOutput=null +StandardError=syslog + +[Install] +WantedBy=multi-user.target +Alias=lorabot.service diff --git a/Lora-Bot/dpkg/make-deb.sh b/Lora-Bot/dpkg/make-deb.sh new file mode 100644 index 0000000..15ae06b --- /dev/null +++ b/Lora-Bot/dpkg/make-deb.sh @@ -0,0 +1,51 @@ +#!/bin/bash + +HOMEDIR="/home/blubb" +ROOT="$HOMEDIR/deb" +OUTPUT="../bin/Release" + +EXEC="$ROOT/usr/local/bin/lorabot" +CONFIG="$ROOT/etc/lorabot" +SYSTEMD="$ROOT/lib/systemd/system" +LOGROTATE="$ROOT/etc/logrotate.d" + +DEBIAN="$ROOT/DEBIAN" +VMAJOR=$(grep -e "^\[assembly: AssemblyVersion(\"" ../Properties/AssemblyInfo.cs | cut -d'"' -f 2 | cut -d'.' -f 1) +VMINOR=$(grep -e "^\[assembly: AssemblyVersion(\"" ../Properties/AssemblyInfo.cs | cut -d'"' -f 2 | cut -d'.' -f 2) +VBUILD=$(grep -e "^\[assembly: AssemblyVersion(\"" ../Properties/AssemblyInfo.cs | cut -d'"' -f 2 | cut -d'.' -f 3) +ARCHT=$1 + +mkdir -p $EXEC +mkdir -p $CONFIG +mkdir -p $DEBIAN +mkdir -p $SYSTEMD +mkdir -p $LOGROTATE + +cp control $DEBIAN +cp preinst $DEBIAN +cp postinst $DEBIAN +cp prerm $DEBIAN +sed -i s/Version:\ x\.x-x/"Version: $VMAJOR.$VMINOR-$VBUILD"/ $DEBIAN/control +sed -i s/Architecture:\ any/"Architecture: $ARCHT"/ $DEBIAN/control +chmod 755 $DEBIAN -R + +cp lorabot.service $SYSTEMD +chmod 644 $SYSTEMD/lorabot.service + +cp $OUTPUT/*.exe $EXEC/ +cp $OUTPUT/gpio.2.44 $EXEC/ +cp $OUTPUT/libwiringPi.so.2.44 $EXEC/ +find $OUTPUT -name \*.dll ! -name Mono.Posix.dll -exec cp {} $EXEC/ \; +chmod 644 $EXEC/* +chmod 755 $EXEC + +cp $OUTPUT/config-example/* $CONFIG +chmod 644 $CONFIG/* +chmod 755 $CONFIG + +cp lorabot-logrotate $LOGROTATE/lorabot +chmod 644 $LOGROTATE/* + +dpkg-deb --build $ROOT +mv $HOMEDIR/deb.deb ../../../Builds/"$ARCHT-lorabot_$VMAJOR.$VMINOR-$VBUILD.deb" +rm $HOMEDIR/deb -r \ No newline at end of file diff --git a/Lora-Bot/dpkg/postinst b/Lora-Bot/dpkg/postinst new file mode 100644 index 0000000..6c792d0 --- /dev/null +++ b/Lora-Bot/dpkg/postinst @@ -0,0 +1,8 @@ +#!/bin/bash + +systemctl enable lorabot +systemctl daemon-reload +if [[ $(systemctl is-active lorabot || true) == "active" ]] +then + service lorabot restart +fi diff --git a/Lora-Bot/dpkg/preinst b/Lora-Bot/dpkg/preinst new file mode 100644 index 0000000..05a7907 --- /dev/null +++ b/Lora-Bot/dpkg/preinst @@ -0,0 +1,2 @@ +#!/bin/bash + diff --git a/Lora-Bot/dpkg/prerm b/Lora-Bot/dpkg/prerm new file mode 100644 index 0000000..886ae8b --- /dev/null +++ b/Lora-Bot/dpkg/prerm @@ -0,0 +1,3 @@ +#!/bin/bash + +service lorabot stop diff --git a/Lora-Bot/resources/google.html b/Lora-Bot/resources/google.html deleted file mode 100644 index 918ca16..0000000 --- a/Lora-Bot/resources/google.html +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - Google Map - - - -

Google Map

-
- - - - \ No newline at end of file