From fb322359f7afc86057b1f2320c33ee15ee0753f3 Mon Sep 17 00:00:00 2001 From: "Tod E. Kurt" Date: Wed, 19 Dec 2012 01:10:33 -0800 Subject: [PATCH] Windows .NET library added --- windows/Blink1Lib/Blink1Lib/Blink1.cs | 122 ++++++++++++++++++ windows/Blink1Lib/Blink1Lib/Blink1Lib.csproj | 58 +++++++++ .../Blink1Lib/Properties/AssemblyInfo.cs | 36 ++++++ windows/Blink1Lib/Blink1Lib/blink1-lib.dll | Bin 0 -> 86614 bytes windows/Blink1Lib/Blink1LibDemo.sln | 29 +++++ windows/Blink1Lib/Blink1LibDemo/App.config | 6 + .../Blink1LibDemo/Blink1LibDemo.csproj | 67 ++++++++++ windows/Blink1Lib/Blink1LibDemo/Program.cs | 51 ++++++++ .../Blink1LibDemo/Properties/AssemblyInfo.cs | 36 ++++++ .../bin/Debug/Blink1LibDemo.vshost.exe | Bin 0 -> 22984 bytes .../bin/Debug/Blink1LibDemo.vshost.exe.config | 6 + .../Debug/Blink1LibDemo.vshost.exe.manifest | 11 ++ .../bin/Debug/ConsoleApplication1.exe | Bin 0 -> 5120 bytes .../ConsoleApplication1.vshost.exe.config | 6 + .../ConsoleApplication1.vshost.exe.manifest | 11 ++ windows/Blink1Lib/README.md | 5 + 16 files changed, 444 insertions(+) create mode 100644 windows/Blink1Lib/Blink1Lib/Blink1.cs create mode 100644 windows/Blink1Lib/Blink1Lib/Blink1Lib.csproj create mode 100644 windows/Blink1Lib/Blink1Lib/Properties/AssemblyInfo.cs create mode 100644 windows/Blink1Lib/Blink1Lib/blink1-lib.dll create mode 100644 windows/Blink1Lib/Blink1LibDemo.sln create mode 100644 windows/Blink1Lib/Blink1LibDemo/App.config create mode 100644 windows/Blink1Lib/Blink1LibDemo/Blink1LibDemo.csproj create mode 100644 windows/Blink1Lib/Blink1LibDemo/Program.cs create mode 100644 windows/Blink1Lib/Blink1LibDemo/Properties/AssemblyInfo.cs create mode 100644 windows/Blink1Lib/Blink1LibDemo/bin/Debug/Blink1LibDemo.vshost.exe create mode 100644 windows/Blink1Lib/Blink1LibDemo/bin/Debug/Blink1LibDemo.vshost.exe.config create mode 100644 windows/Blink1Lib/Blink1LibDemo/bin/Debug/Blink1LibDemo.vshost.exe.manifest create mode 100644 windows/Blink1Lib/Blink1LibDemo/bin/Debug/ConsoleApplication1.exe create mode 100644 windows/Blink1Lib/Blink1LibDemo/bin/Debug/ConsoleApplication1.vshost.exe.config create mode 100644 windows/Blink1Lib/Blink1LibDemo/bin/Debug/ConsoleApplication1.vshost.exe.manifest create mode 100644 windows/Blink1Lib/README.md diff --git a/windows/Blink1Lib/Blink1Lib/Blink1.cs b/windows/Blink1Lib/Blink1Lib/Blink1.cs new file mode 100644 index 00000000..c6c19459 --- /dev/null +++ b/windows/Blink1Lib/Blink1Lib/Blink1.cs @@ -0,0 +1,122 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Runtime.InteropServices; + +namespace Blink1Lib +{ + public class Blink1 + { + static void Main(string[] args) + { + } + + /// + /// Library for communicating with blink(1) USB RGB LEDs. + /// On instantiation, enumerates the USB and records any plugged in blink(1) devices. + /// + public Blink1() + { + enumerate(); + } + + /// + /// Open blink(1) device for use. If multiple blink(1)s, opens the first device. + /// + /// true if device was opened, false if no device available. + public Boolean open() + { + dev = blink1_open(); + if (dev == null) return false; + return true; + } + + /// + /// Open a particular blink(1) device, if there are several + /// + /// integer id (0,1,2...) of device to open + /// true if device was opened, false otherwise + public Boolean openById(int i) + { + dev = blink1_openById(i); + if (dev == null) return false; + return true; + } + + /// + /// Close an open blink(1) device. + /// + public void close() + { + blink1_close(dev); + } + + /// + /// Set blink(1) to RGB color immediately. + /// + /// red component + /// green component + /// blue component + public void setRGB(int r, int g, int b) + { + blink1_setRGB(dev, r, g, b); + } + + /// + /// Fade to an RGB color over a period of milliseconds. + /// + /// milliseconds fade time + /// red component + /// green component + /// blue component + public void fadeToRGB(int millis, int r, int g, int b) + { + blink1_fadeToRGB(dev, millis, r, g, b); + } + + /// + /// FIXME: make more like Blink1.m enumerate + /// + /// + public int enumerate() + { + return blink1_enumerate(); + } + + public string getCachedSerial(int i) + { + //Marshal.PtrToStringAuto + IntPtr wcstr = blink1_getCachedSerial(i); + string result = Marshal.PtrToStringAuto(wcstr); + return result; + } + + // see: http://msdn.microsoft.com/en-us/magazine/cc164123.aspx#S7 + private const string DllName = "blink1-lib.dll"; + private System.IntPtr dev; + + [DllImport(DllName, CallingConvention = CallingConvention.Cdecl)] + public static extern System.IntPtr blink1_open(); + + [DllImport(DllName, CallingConvention = CallingConvention.Cdecl)] + public static extern System.IntPtr blink1_openById(int i); + + [DllImport(DllName, CallingConvention = CallingConvention.Cdecl)] + public static extern void blink1_close( System.IntPtr dev ); + + [DllImport(DllName, CallingConvention = CallingConvention.Cdecl)] + public static extern System.IntPtr blink1_setRGB(System.IntPtr dev, int r, int g, int b); + + [DllImport(DllName, CallingConvention = CallingConvention.Cdecl)] + public static extern System.IntPtr blink1_fadeToRGB(System.IntPtr dev, int millis, int r, int g, int b); + + [DllImport(DllName, CallingConvention = CallingConvention.Cdecl)] + public static extern int blink1_enumerate(); + + [DllImport(DllName, CallingConvention = CallingConvention.Cdecl)] + public static extern IntPtr blink1_getCachedSerial(int i); + + } +} diff --git a/windows/Blink1Lib/Blink1Lib/Blink1Lib.csproj b/windows/Blink1Lib/Blink1Lib/Blink1Lib.csproj new file mode 100644 index 00000000..3f9fcae4 --- /dev/null +++ b/windows/Blink1Lib/Blink1Lib/Blink1Lib.csproj @@ -0,0 +1,58 @@ + + + + + Debug + AnyCPU + {4FE2AE76-BA05-44BC-A04E-5CAF5D7A7D2F} + Library + Properties + Blink1 + Blink1 + v4.5 + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + Always + + + + + \ No newline at end of file diff --git a/windows/Blink1Lib/Blink1Lib/Properties/AssemblyInfo.cs b/windows/Blink1Lib/Blink1Lib/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..44d35b63 --- /dev/null +++ b/windows/Blink1Lib/Blink1Lib/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Blink1")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Microsoft")] +[assembly: AssemblyProduct("Blink1")] +[assembly: AssemblyCopyright("Copyright © Microsoft 2012")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("b714d0d3-f611-4ee9-8c75-c5adf344dd40")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/windows/Blink1Lib/Blink1Lib/blink1-lib.dll b/windows/Blink1Lib/Blink1Lib/blink1-lib.dll new file mode 100644 index 0000000000000000000000000000000000000000..6fe0e569652a286d1c24f562f8d2754106c174d1 GIT binary patch literal 86614 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 literal 0 HcmV?d00001 diff --git a/windows/Blink1Lib/Blink1LibDemo.sln b/windows/Blink1Lib/Blink1LibDemo.sln new file mode 100644 index 00000000..72c85b2c --- /dev/null +++ b/windows/Blink1Lib/Blink1LibDemo.sln @@ -0,0 +1,29 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Express 2012 for Windows Desktop +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Blink1LibDemo", "Blink1LibDemo\Blink1LibDemo.csproj", "{F47758A5-F3F8-4B24-AD5A-333E30E5D249}" + ProjectSection(ProjectDependencies) = postProject + {4FE2AE76-BA05-44BC-A04E-5CAF5D7A7D2F} = {4FE2AE76-BA05-44BC-A04E-5CAF5D7A7D2F} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Blink1Lib", "Blink1Lib\Blink1Lib.csproj", "{4FE2AE76-BA05-44BC-A04E-5CAF5D7A7D2F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F47758A5-F3F8-4B24-AD5A-333E30E5D249}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F47758A5-F3F8-4B24-AD5A-333E30E5D249}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F47758A5-F3F8-4B24-AD5A-333E30E5D249}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F47758A5-F3F8-4B24-AD5A-333E30E5D249}.Release|Any CPU.Build.0 = Release|Any CPU + {4FE2AE76-BA05-44BC-A04E-5CAF5D7A7D2F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4FE2AE76-BA05-44BC-A04E-5CAF5D7A7D2F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4FE2AE76-BA05-44BC-A04E-5CAF5D7A7D2F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4FE2AE76-BA05-44BC-A04E-5CAF5D7A7D2F}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/windows/Blink1Lib/Blink1LibDemo/App.config b/windows/Blink1Lib/Blink1LibDemo/App.config new file mode 100644 index 00000000..fad249e4 --- /dev/null +++ b/windows/Blink1Lib/Blink1LibDemo/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/windows/Blink1Lib/Blink1LibDemo/Blink1LibDemo.csproj b/windows/Blink1Lib/Blink1LibDemo/Blink1LibDemo.csproj new file mode 100644 index 00000000..fd9e8c55 --- /dev/null +++ b/windows/Blink1Lib/Blink1LibDemo/Blink1LibDemo.csproj @@ -0,0 +1,67 @@ + + + + + Debug + AnyCPU + {F47758A5-F3F8-4B24-AD5A-333E30E5D249} + Exe + Properties + Blink1LibDemo + Blink1LibDemo + v4.5 + 512 + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + + + {4fe2ae76-ba05-44bc-a04e-5caf5d7a7d2f} + Blink1Lib + + + + + \ No newline at end of file diff --git a/windows/Blink1Lib/Blink1LibDemo/Program.cs b/windows/Blink1Lib/Blink1LibDemo/Program.cs new file mode 100644 index 00000000..0e83c455 --- /dev/null +++ b/windows/Blink1Lib/Blink1LibDemo/Program.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Threading; + +using Blink1Lib; + +namespace Blink1LibDemo +{ + class Program + { + static void Main(string[] args) + { + Console.WriteLine("------------Blink1LibDemo Begin-------------"); + Blink1 blink1 = new Blink1(); + + int count = blink1.enumerate(); + Console.WriteLine("detected " + count + " blink(1 devices"); + + if (count != 0) + { + string serialnum = blink1.getCachedSerial(0); + Console.WriteLine("blink(1) serial number: " + serialnum); + } + + blink1.open(); + + Console.WriteLine("setting white"); + blink1.setRGB(255, 255, 255); + Thread.Sleep(1000); + + Console.WriteLine("fading cyan"); + blink1.fadeToRGB(500, 0, 255, 255); + Thread.Sleep(1000); + + Console.WriteLine("fading red"); + blink1.fadeToRGB(500, 255, 0, 0); + Thread.Sleep(1000); + + Console.WriteLine("fading black"); + blink1.fadeToRGB(1000, 0, 0, 0); + + Console.WriteLine("------------Blink1LibDemo End --------------"); + Thread.Sleep(3000); + + } + + } +} diff --git a/windows/Blink1Lib/Blink1LibDemo/Properties/AssemblyInfo.cs b/windows/Blink1Lib/Blink1LibDemo/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..3b557fb8 --- /dev/null +++ b/windows/Blink1Lib/Blink1LibDemo/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ConsoleApplication1")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Microsoft")] +[assembly: AssemblyProduct("ConsoleApplication1")] +[assembly: AssemblyCopyright("Copyright © Microsoft 2012")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("a8e2303d-c644-4399-8394-c3a7a85d6a3c")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/windows/Blink1Lib/Blink1LibDemo/bin/Debug/Blink1LibDemo.vshost.exe b/windows/Blink1Lib/Blink1LibDemo/bin/Debug/Blink1LibDemo.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..8c84517408d9260be5ab0fbf716b7b046c88c613 GIT binary patch literal 22984 zcmeHv2|SeD+weVO?AZ&+GDxWy_iSb++4rm=S`@P)%P@ve3Q18y5k+N5X%#A3BuS-G zmiEoorjSsyf9D>No_e1D^M2p^|2^;j_q{iB-Df}7xz2U2bDis4Gfqp=At4BYFyQm; z8w6E>H}aSX;9r9{kS(ooS{gbo-l$oHa%|M}@DB*bhVr<6JbEyeNe>C(^05pymKPC% z4G6(nxwvD4xhytLN=jn-_oiK~A;=LW1XwA`D%8<|@MX%&+adb9O4P z{8j^@+HdNME#>(&%Z&HPVRJUNIv2_Dhjq`I*7om9=to44wy#84ND z&kwBIj&~rc>y7Q;Yf)f(NX@?Ug!?-K^S2} zZQF(RR^Xio;(5X#ZV|*~AcesLnnKx5MnmFABV734r6Tn6R#GnUJ zBG3#0v_m6xnF6?408gWLqD7$B=zC~)=o>&z1dp<;RiPaKNVkPeQcekAEp$@oG1Ls*66%C%p>Cn)0E%KB189JG4Ru4dn0}}Oa=}PII3WA7 zQ8;9^1E>H|0h|Vz0H_UF0XRnhi2`T@d4d#6C=9?=f-*(WHenpZgsy>iOY%zVw*sb;r`rkK9PW9N3kL65I!&3l^YPkhnxbKJZ?Cb z!^e3Bgh$YW-1!l#04~lB6b1{!mB(eW!^5HAa3+@*6u^Moqr>^^V915Bg3aVZI3}OV zgPiCAA>T7_ZV@5;fM7Pxlg$ec;D&%EAP+jvkIlCM`yYEHmltTx2TP6-!Ds)mihT&5 z&Etl;vw4vLpi{__8w^kiU<9#$RIzk)2g#v90rU|5kJM45aBgf)5Wos_3z>(9vx6By z(H;T(iPguFt=QpAUO*^P^hYZ{GCA~!Aig>1B>dN0q{{ZeY27~$Lq9zsWVI-eaB6u@U&a>2CI znfza>II|-_Mvxo(dlg4|h+hQVZvx%N#$v?|qDQ+2`2B`#4(wtDx$6sPkecx+JO zNA4J!-}wb0E2zyIpZ)KQBp^3GfDr%&@M~?W0J>iY!l}$~$coK~@bjbp#4e+0fC<4W z809F?iGXl!U?5R~(1bZ2TO;4wV)LB2Aq&IVJWEjf2j+ik#o!k55tIYi;W+o`5GLUD z5T-v5EQpwKzW4CwvFR*ig;+&sofVSvCpf(F~XMY1NF+Cqjffc`ECQi2pQiZxuexmZwXd6Yzb|70Bvu*Y?Kzdyo(u{A9Tq}i zuqc!?0?@)(G)h`p7zE`OA_-z~`OtJA;Nl=C6Er1)NH7q0b2rB$QV-cyM4LZ)T|9cf zzX+FjQ0C|tsqU9wR`jH8_#_k=w9awIR`qhD7d!9YepLH-XN#eNCOTb`H}6AS*4m35 zD`nFziLP{+^^zdH^_6hX)0dj(i{HF_%kp-dw5|5g4&7x8y@PB$wU2j<`OCQa&)%+C zUMh2OyYURw6nRUwGB)`9Hj>klmTeeB4vQT#^;s)-TVgIiN}dhIg+>Cw2nZ8_P-1HG z5n`ff0Kq>61*zbitv$x2o!3uG79pLo;;pq6%ZZ@R+BT3i;ytV5dy(m4h2mb z<3xe9hE!0{lyR=ZT5@@zT%Le;AxH-WVaKyB9L0_baqOrR2XO+7CqNJp1>r6n_)&0T z8#t_aP!Luipu({{z)`$NHVdfs2pV`iP@%{$g+RgKAxH`Zi3w6*98i%ZP>?V?L?0+i z&}V>8#A#q#EJxk2IHEOsO-Aky0=0LUlT2u4r<6D)mPct{`wt+PWx31%=%Ai>DP zqzYbm5{wrF3}J%c{XL&dAQMS=B9iyLAP9k&A)ZL2(dZlwp33In=>#T$j3?0v6e68O zV9{U_fk7b<33v{kLZ;wh0*gaqGw3Y3A&o{LvOzH_2{vRB@N6=J3ggLS0-Zr+fsW~h zWIBOJW`jQHOd6d9n&l8!R6L%|fN3O}A)UlDq?2hZk|CZ(rqY;(G!B_T=fF%7ov(2zx^!c;PqY)GaO znN%|9h()Jxh-@Z|XR~NzLlTorWzmQ%3Z4iW#8U`NDw{y0<6#a=AkqNpOqwABrcj86 z98j4769{AyflgvmNPrx4GKWMYPzfX=p2{GSi8MNy4pS){Dw|AX5jc1vnL}d&oH;}W zg8+~N!~`FhN}`cr5{E%yvgt%XUmAhMq_WsBn?+{l}aTOK{kcN1ha<_ibDb8 zq?1S_GLy)pfYH+Mcn%Eaj!x$gS!5E6jwdhxaan98kwRt=;~_8_sv#gMn~kR$a;PxH z(2z=iX<#&XJb?(BWRuwl1K=rCm`Eq$Nklq>fhQQUSTK>yq5uj|DTWL~8j%XRAh5xZ z@FdU?0cKGE@&v$;FpEJV(MdEWiE7AXzBZ29KVGfB*rE^GzR2mEu!Mw2vOhY^iOdpHFVbGZ* zLkgV?8v;Hh(AY?XO2N~>q>=$aNHjVfOe~84_?AhblGuhU2vSFcg$G*Ei$@Oy`;>JQ zlPyqaz_!9&8IBS|2@WAZe1TPq2p7RKW>Y|9ttyZ;Ltvo~frE~lyOsOH))?yI_6GYS zGb;$%u(~KBk~nj{8DJIjz&_?J(9eR|tN@@-ct?fUVnpg0V9a#v-9#pE0`u1o;3FZ5_oH=*0rfna#$r zf{^nkuqf$3STjNBf5CqO1yBMz05DO+{fw<(tA+qO{F088Lu^Nj%z*7sa5h6ykT3~A zPskmdNIfBIU<+}F>>(G(8N}@Yv;kq{sm8qdI(h<>1S@>zCFE3yyiEnUqbEXSZBBfw zKm-L^r9(W>P5`iVutA$45C`H4icJ@sBRxPa9i)bXd^*Gj<+va=`W(Y3BkCH!i4RHz zfONm#v@`?+2MUaO?2iO75E?)vND8D|g7$*J9~;!>gI<6Q20(w18V=$_hyYI4Y$ytR zkjD`iOvdVj3h;^sRG377R-VlpdKHze*ldA@6!VZN}GfJgTNb^%h6WC1u=v&$jBlA zWPzR`Xq0v?-%BDhkKjH=OC*NO=wHvJFQfs+;0oH{f>t8{?fDZ%|GT+73b646xP^n# zNPk!X=S6_p2*r_H0-!P;K;$tK%+1g3|8a)?dVa(Ke&(PzWc0y+Yl8rV5e$BwY!Dd4qXO(b7PL1o;q0PF=UHWo4DfmX4umgca!k`x|~2TDExCW3S45)dWA zAmMuyj$ik0!A%O5L~xT-z&N?Mx{VD*=ud_MC!n+@(hMaG2_>Lpz|5i~&;Ma) zpyH*5K}Vc(1LV87Dd^mQm32WZp6bwP(+;4uFc^x-b_fJ1YzP@f*--Gj9L;LefB)r~-ckCYQ z5_2>%F}U8+*yo}ZI*idk?{mnlO7q?*ZI~HE6s?7#19I~t?eJU5W0N-!(b=Mq8(1rW=*7JOLUIER7=Bv|{2O z?b{xZ**W~F4O zZ+NxqB#=?3fs85~lTpG7h5|XN@&{tUEB`HWKvTeIKt?J5kWn7s-bo+Wz=K17NGM>s zBolx=5KloQ6tLcmN8$L2e+y=RkWe#W9l-EFV5x^#288;vc~~oVYpk`q^ISZcW~pyZ zw4vw|$P^f_18XA%g%nhOJEHIRBL7mN<&koxHi*w+?m#O>lx*~hEjV+)T>djFqxg<+ zRL#mqJI@S z>^&7`)u`?C#bPaXM7jr=OuNIqe(mk6z^~bgvh8hi`Ri0F4e|*+-=18saMr%fgC3H- zB$BTl#o7<``yY04NG-08b_mP06@BnUr)^in#+wJjt=8U+e>hk@V7Rxz+xk)I5#x4U z|7?~0#k_FOw@R5$zmPL|`FA3H)K^-sTTfMN3STOG+RrVuxIDn%!BokwTlup(BMm$r zPlgwdw4^e=Tx;;L!MmQCsqoYczR8;-lkx8^U}>T++W5VoIhZ5lQNIG`}j)lVx`@w*W}VX=hYq-_YrCx z6E(|$s96HbAfiG6QG|qHA@G_Ydw#12A$qKu45Brml3;le@$W~7DJYDvpkc5bjHjUy z_3KMB-nn%~N>)dXuTcq}yKmmvd;0Ly@j{c)m`Umqz=#q7j2o7a`A@=4`f!4;ndi*x zXF3X>XLm@rXDxoZ7j_*LZuYP(Y@KhJZ=PiO_l4Uyzw-cVGXZA{1e?d0AOnKU4z_`< z#^OM*QU5D~4OuYAdI7Ees(qnR&|;d&+8H*bueoMrgcB=XOB;lg*bl$bxK$b<`+rc+|T}c|Gc~zb}``xwI&)%D$x~(%) zRBfQsd1Q0J)t3sz8O~RxwWRT~W`_mms*I@iyWjDHA>OX2D3fENb}_0C=G=k;B35l zmR%mNc`)c|ZBJ;C*H*9C%+&m8c0x;rZx;DU@QV$5^$nD+Jm*p5hqz_){1QI6m8TLF z+3M0Mk7b{*hPXFuZnY|PM_v9X~_ z`J*&1wYJE(6m7QRTR`siPT3OK;}lo1J9Wlzf`}-P-*3j`x1v8{S_fBJ|AhR8DKH6m z8G@^7n1;x2ydVl34?*;wQ-A-J^xjhtRMz&;ZtLvTfw-w1)tz1SI~HiW9=Y*Y*?GE5 zU-SNE$0K|gEB9LTwnx?!`^;$;TaV^=!!sU0fiG88_auwT3`=9cQTDpVHRALQy9S2* zRP{cuda+UM)eGmMf?93&tEnHYZ;Cf9FKs$zfhqj3FKCcHBCBj~z7MmLoTF7N;cp zX{$*5{K5~3`{isWizn|Gf36}3~%Rct-*TDIw}e4=f0=AypGo>KKFbNtHdxot-4 zwiVFPC)A|MJ`d-Xqi$$9czpXHTz3I0IVQai0qMQ}ucY^H6~mvTx9qqO2GSeIa|n*l zL1e2oCO#dGPmP=WJMmk<+)Mwrs}~8f(MJ>u=I0k5aSUHHB&vX8|HnxE-xwo)Rb>IK zWwTT2yoIa`A9o)=vhv}L=mk!wG8{i_Y49Y4LpRQ?N~^-%k}upG%&780UvtJPxbAoy zW7g?)rgYIx)ebdO(%~~v1Dl$9j8J`@=h7sEucX>__PbAc>~d)9(-)~LZpYO=&m0gj zSTEF_F?+gJ=%@FepGNJ#Nezp3hMrY+-nAuAf|pfQK+E&fuU{bjis5aln6n9M+9|3+ z_;4LRKN4>|hbMXERjBc|^%4qg7bNIg`tMdLy>{NTww^p^c~Q;lv$2vEt8TgTH2dJI zXQJ5NOHoP^lcif8OwM^X?-XZIg}%Xy59^bzFYtW1D>O6cFwODS`{_boNiLSjRd~%g@eVDfVj7Z6OZkxlF*jP?JTTyY$ z$?wV@i*Iq!nsK|Qz?_#B^2=4O?AFq3vh1GIeP+n+y56mOggD0;v+bt)EP3VmX5W(? zyROdVR>#lei^%mwYS!c?)XwxcS+>GBxge5$JfuKjU(G?=etGVf6hct>*R};$HfuL< zs&}bvkY}Nd^-CA0RXx>wcH-Do=J6;G;alc7*Tb2|ilYuyC1bAyTzMYyYJc_({H$-%^-I0)IZZ3L_t9Xt zDQ=-+V1q)@7kq;56gWXw4wz-(_znM{zWkG+_J?^mKYlNwrF}Oeiwof=O)w5)fGPHe z@mLZs4NuISg6M!_6)||A173=Hl3jF9GX~lqY<*$NQr>p&3)_H}^`nVNcteQb`9zT6m(cfsAFWw#U_yuoo=CZo-5tP2{u%1C*7)JdUl-Oflh zcUnD8KI|50bS@+$;y#&&4;6Wq7`SiyY4NE>*e2~ACKa0p@*Cxr7{n4U?|Xnkc_nph z+bOO1$t%`&ejfc`HBtUbTDyPTx5QAHHcdlU}yP*9{<8oPf%=&zMDPh{36LZrV7B%D*yavc z?T5Wh^!rUj{xVqk2fGO2CC4M8D8Odpj3kVgK}=zYQy+{cQ3%u}zpz=D8!bzw>z!xl zlb!^w3yfO zpV`;dTXdtj?|EO{5MO!D<=)OGc=nMY>yL%z^$Rv_7rPcb9Q}Tkg$#TH4Q(;Ls6^5A zd>f|yD)a57lTTjHUNYI()Z*Ypso3Lbl{@BIPRG^Gp6>r}(@dw$2W*m5IS#TbP_6Bj z8}79gFjSw59IEJaVfEVVdE2riwwG52Cur~dvGy=1e1digNJ|>0HF9aBy%Hpa1BSuN zASConvO}?jFleyGVDBH5!Nn0`wEokJBY|OJLR}12i{h^H!EU=9JS3H|_Y3d|t_@6WO5f5^2`-h%MT^!)~y8^??n znd)6TwQTNOyJ6`dk2Q~~W=l*9Hd>szWvY%yld~`X;qko0h4C&erb%%|!sWNjHyvAj z+cvFU-hpoa083A+wwm|!(><=Qs53;&>y=GjkkICO=YIJvli_NyxOB8lc4SK9As%gS z*i4zu&*dW*-yXleCvM=GWs1iaO=if5U5xtGN4thxpPpQ&wb`~-ZMKyO_3cSqRoRgb zQ{Xv?=0)LWc7|rn%1fKkc!O5sIMqNX?_}TXC5N{T8k)#;4$SIyEi}79P@XCJY(F#p zKvD4^bpO-b);v@NuZWDXjyij;I<8qakd-{x#!pwMO>D8gW5#{xEvrAKTk8ScT6feC zp@UorjhO?4gvL4FQ4BS~QbISyn7VE)!%5#5unc2Ldy87w2>)crunS>5a}{n)IH*LS zXq^Zyxf+4a`g1GoZ|{4!q2YpCCBTZ~mq`fk`5-_ars%^|fiZ(VhAl8=EQHOebJOKnY@lMg$>ImQ#rhlX9E-D~Z_dhp9am;^hkPu+^h*~eiKi&H zCZ|!`QbnYD*Q1l-F&l0dKgQI|ExMENv3adil%hlLy!ld)*cPbwWs+69!{fNZ0`;?f z2CUOE+1=8{jb+L6XLM(fIzpe7td?@jb9^nAsWj*HRO<~-*Dfy(UuA(aSvqy!ZV6Ii zzuQ^o^I=cAGERj@OAHv24$11-@AZY{uqvD6a%MnZI#~%>YV$0%-&qiPY*!_1zR<`= ztKGci7DbcwrfqH3i_L0F-FS8Rz9Fl1H%@e)Vg%hqPdN|+m+2n6p<>pvNL^&P*B#}< zCF@VVe`wI3!ShO9OnTBh|LBSjlYHMlbK7J-)5*1RU#Zue^s=)#Cw$=q(HJ1a8Dn-1 z>GT$X+!p!+v%v8i|1E+W*rG=T_pBd+`_GNpKSVel2yozz4g8}877;^16b~cOe|(Ec zK>z9!fJS@*(7-1Ethqz|A9=E>xFh#M4kpMtkxmbsT%@_jV%qG$?j^1Vt3;?O82i&} z>n5o`rUYJ+zbDyGy|6>%*cIAs)MUIxYqC@{Yr~pM-|0c6yY2J3{g=12<+_(k=+%|p zKQQNLjCkqY?TfGast9*;B3}~RX2=`7I3(tJv%;!!*}aQ6p@>8NgV%xw=Xw_?4%wV; zr?L)*u*gyS@|iOFt!CRsx}Jzi-S&Ri6U%5#~#yKhpqdD+Wkmqe9;0)xd*(~b0x5*O81ntUa+RtOoFm6vX% zu4&m7r}xg;GeeWCQ%4J7t#v=0Cv#+~cH*_6(?Ut9!#@2@ZZ(@TH=I4M$=C5w);)QB zrY=<{hc@5v=IXMoM^&}=AK>)RHCA-!+VAq&*r~IuRnx)5?cxb9)9FI}%`r<2Zfkdi zE|Xbcv$A3Y>NtBCo#6BE{FI97X}1vYrf(#$9>wH@oNk}rxo*54|&G~j0qhm1sF7wIW1^Ud06;zCS( zaBQQ}likik+mD^K$q&kDX}_~^^SEKC7i?bL@UOO=9}W?}-HiUiBL9=o=$HF~iJlWY z{kdp-y5*_K!pMbjLiEaagrK2vouD>o<^8oYU?Rt%7U4$M@69mE11Z!Q8sTVtZ^$ z^rZA!whvCvWTcMQ9K7!9In$RCSB+|H4-^dsJY?2rk&CmJu@lo{H`%x@yfJ}9T z)xmido7|d?eF^L`5yj2QeQrFh_|^%vm6^28ZdQYpaa4@3p=&eHHnT6J z$e!7IKzLGaum4AXTvq;U)7gQG?3o(k0U=9rwm)4rbUtm+X3mq(Morb^Hz7JlpOwz+ zZF)Q?UAjXzJI6`dSaLut`Hn^%LAkTPUjN3@-N)@|5|<<{Tsm^}S^52kQ#LNJUPL8? z%~V-iHZ*hOiQZgnKu-DMWd9KE{z`tGnXt${)NEao1XBekj^z0Yr*|D`YgM^ZVy*W_ zJ~NxmE~;DR#z?ADV;W{BwLKUd8Bi?PIkTg&IJ>ED8PmLLsc7B?6Ool7%_3zH8k5h_ z=_mRhU7ChD*JgfMTDR{B+n^`=eS!D(d(fQ%o9e}b*~Q`xcCtI-G@77U^<}xmrq(Of z$(LFR3-`ptXnnNH(m3?VRy*$9?va|nN{8&u*AY=FJ+CM`qLm%K-Ko&_k9c1C@$;tF zl5wvBj7mSly%@(WZEX?3%nak^U7pS^HE~{A1yOPY&6qdl5@n{JO0Mr+R$H(!*DK7^ z+0OdBMMG}nQi(Xbz%S8zYO8~TS2VbVD@et-HsTYe03VkrCk3bdtbcmrLjT$MZNjlI zKfVt507{J6jHY7nz#NVGzqdabj2~siF?cNuHuIcnyUwPyPP>*g&M$}*nlhN5Sk~CI zYem%QL|>`Q({KN6wy4|(tuG7`jqjgZ61}S~+-Lh9n)KpO!|lWb)s*a+^!l2PEr&Oq zJaWq9^4F6nE8$}Lp&0iy%GpmX+rkvB+7(Gs_Gz`)pfz0jIpMGqgAMa`EG|5o5g0k8 zg&y_ovZ7>w&)kxpXYx^&)t6H`JJJ&-wPpK%t*D=WXs)WlhOY)kC8btW?WH|`HL&AuGG8ew3-mD`@pWJuYX#A3UkKKO+rGz+@LTGq$!Qh5n^so5CciTyddg;Z~9*4CrDoe7ms1U^=_ z_`8bxdd=J^%#S&1$`cJ*9{T=jt>g%4-FGN$@@0!*bGHrz)ygg~j7-hwp^LUNaJktfiV>y|ayP zteNghSmbLnu*f!vkf_e5`(^mVdz9VW=D4-?;=X0gbcGPzODZ3d;?A_uKikyKRGaQ6 z&r{J%DRp2ayE4j_eOakt-0u}}xH`qc$!tNhOrD5|-`aPa^FrIL*1TzQ_!9DL=hd>3 zftcA6`2GjZA{i$)ijiMNsUGXz(Kzpgfz|2#LyuV1dr`Gm@oiC!pU<9euv)fUF%Ko| zqUAJZOL-0`)%lm|=xyd)?-YFcpyjI7Hq+{f{!7*eFZ?S9k-x8w-hS_SE$wBYH^aZ# zI5U0e-5WcVFaEze@{X&Eh}{L&hYj@!M1d;$-{8pmCv5{YG+&^GB3?T2S#bPTI6mzs zO*9@h9#bD?p@$;hwEJ6nsOa;J3#2+P zwda_|hY1<)Dk{+AR=nPK{T=??P2tW1Uq5;UPlYQk)N>kEw7q-LA60$1WVcS&hqJwb z9$sQ|79?27e>&y9`TCHrd`jeXGc)ttN8U=`ygw{gBIiu^bl|_SkiAk`v-Z;30ZQx= zQ`LbT(epFhpi-)g(mR9bc=r7RCjy^dzVZHQ48(PSt)^?uyV)yLyghC4tg|P-U^+tg z5a!SPvar

&a(Zh-Vl+J0E(Pb-%r_gOk4b+X}|o$My3iGiG$sdZx|~WA0j|8C;iF zR5-sy4!o=H_@pH7q=nsy$ zs&lK~c0g?}@S=OS%^hajM!g&QS8>(85 zQjhyIEqS&Ft$gW&D^d%0#B2yR5__Jb|0=beh?Af7?!1A=OwHjdhn*kjR+SxixV?P8 zMPb9uspd}YNgrnKERy5Et!MZIhc@P_cRNxHrd`%7U3}u`BddAYu3>izTIv^e1w8Sp zZGHlu|8o7g(4?0`K=G6CLsN$$ z&`tbXq8%BFSLEs_=Sb>az8k>^IB33RlTk*}x4lEJP7Y^n+EKSprDxO2w-ve?eUsLc z7&<^OiO z`hWa(2v9J9r#15JkkL&A81wP}U7O0EwEagb{=f2D5t#PD7f4bigte2qD?XVozaiY% zbg;(hl$@zh#Kq%t{EbZRJH>gcT$jI^dA#U_;bxO46>IsMms7E&mnjmAz4@h#gR!&7 z*t(-z9X`IVTJGS(=Nuj=&<~}CHRl*Etr24O2^N)!|l zRy9p~fIU#_`n+M_dsy^O|O2yBCXN_v=T0d**Sa-n>h+&=R;3waBSWEC@ znt>B{9N-0j7KU2SE*FNilx4tz8$I=b-=-lFmy9QX-|Z13z2yGr{nyBrXpxn+I>VlyZzff|@v+&yN_a=WuwmHeBcY`#WDyKH{agzS7b!TeY(457fbHUhPaT zQm$a6bWhIQ{H0t~U8x*j*ixVo*Yvt6`f_bv%tr&eS6$nRb+?;aeO}n?P%ZOn2DIm( zrdx&iZ7us8nG@$ug|95XSAQO5)i*t4=Go6MW>qegHTZhkg+<*{DOA?X+rDqU<@c%7 zd&1pwuxEi2OBYyqZGx4T^3NXsfG5jO+RQ{-Rsw1ktTJxg0G?A)KbbG!KN_d3dY&@g zp-!WBdq36M*ZywL>`4`kM=JE}^&V<8a4gn6gyZi|XaGG4AKw7SUxIxs2hj*Pf%)DZ>DOO(*4ZQGg74++H7hp-nYd2mbFjl8-Z|J4^DBE|=3O2s zek5^a@3j}Tj)T`@E*uK%emQxmiTWAM;GBbzI!lDLM6QPJT12#0HT-G4VD-$kw5p8UR!p{pIBw)v9hscP%uH+#Y>Arjai_xx977>X$XDt{-KG`snWrQ}L+lGEZ%9l%&XX zS>Jv!vqv)}>D@ciIF~Qf$~(QDyT!e) + + + + + \ No newline at end of file diff --git a/windows/Blink1Lib/Blink1LibDemo/bin/Debug/Blink1LibDemo.vshost.exe.manifest b/windows/Blink1Lib/Blink1LibDemo/bin/Debug/Blink1LibDemo.vshost.exe.manifest new file mode 100644 index 00000000..f96b1d6b --- /dev/null +++ b/windows/Blink1Lib/Blink1LibDemo/bin/Debug/Blink1LibDemo.vshost.exe.manifest @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/windows/Blink1Lib/Blink1LibDemo/bin/Debug/ConsoleApplication1.exe b/windows/Blink1Lib/Blink1LibDemo/bin/Debug/ConsoleApplication1.exe new file mode 100644 index 0000000000000000000000000000000000000000..6fe83a29f5002f72b7a6b86fbb2b1f0078b5c54c GIT binary patch literal 5120 zcmeHKU2I%O6+U{CQR0eNYZ%iwKu69?8NJzI4=IH*LEQo#dq(H*SEfV z@Al5Ut`|bFM2g5;ig+lhDp7c$s1GedA}T@!-Xj(9(g#%K2_YUR5Bx|-rF?Vl?s{#n zz(_nG(OJ(oXU>^9bIzH$Gsn}n?o$I1HKKm>5zzy*x(qY^YuJLg?K5w;(N7LMJoCVq zdU$4G%~qo5dwJh12+MR`FA!NN{LmG)E5>FsqTuCZ;?SYivt`wD<3v+N1N|-c>$%Em zk0@pwG!7EAg3}Ul|9Bp)KpjTaAkf4jyFpR223@vL!PljMR$e4J%zxW$xf>0km!UVK z>0zSxn##=DW`*bz=&yX1sH2wu?`TmqokzByf3s#zB9NN_`hV8`LB_t8?M9D_z_JNn z`4)O?+b{_2s5Ypk48!__FC7m9S+oM7)^!xMrVJB})O4AASH~4a+ZLlHx-W>{#TpIh z88u^Xnr^2Q;d@FRpSMtnciZ2hdJ*tw#5EoT&E5!)l8p{ zJrQfBb;f(K39S4|?E7p)WI+_O!xX2Bh?4Hj32oU+w8&O|i+kTZaSIXA(+pa{2Hk?6 zCmGK$USLcz4lt$}CmEk+{37rqnM~V^&oP#Or|BN>ELPR)e3xE|U7**PevRIU9R~eY zEP+^SX@U;YRbV^a1)ic;ft`#`&<{ZOG5>S)W6-0_&oF+8egn=reF#+4Y9#2Z)DHXx zbr_eaaVy#%xL7V1(dyf+QVhDrWE8gw_myZvaX_ZMTO;Q3_wIH!>`F(0~tU66?-=_{zm z5vB#mWpD%6r+nV?*V6$`b~X%Tb&6bdpb?`ft&}Weozj9Gz{={t3VTc{%eRYq=w2aw zTeb6{&u-Nd7mB7^+ADzXxzGys3P!zR$+z=sbwmrknUe*x)|rZpqoEUoevR?F0yF6b z()WrP>2KJUR0w%t$yRo@*58TH&h53Q9MZjl8@40&2+PZk*=FALRA5_*#$-0k=gl2U zMLcX1jtH#TWh{&?%G3r{WpI4t4ROu$xlA~+NIey)AYujzuLd0mY;rQdFf>8 z(LLNO#;4mF1R0IOFxoW4ngB=Anrvw#Fq=h#(bCe=_?U6@=}Ch=m6#b{s2=D`<=7A5 zUcYS6Lff&bXv|hc$1Kg@=pWT{L{%a%_Jl$0b-qYE3H%+m8FXOUwtP={t9Vw0L8q!m zQvB+5QI(0_o@6i41%u9-{jwJ?ORmehl1g=@`UVEN`uhe_T~?p@q}hKtcg5_}52`_r zCGiH~hZh|kUJrzRxQR~dt9BuF{2AXY&Uo(lrX~5CTUhhG=T&saRB{`A#dLsm2f4%@ zJUH{2v5eK*^yMoZr$*j3zCCqr^YSA-#=5$^sBkANXYJM1naDXhZ$O57j>IriA49ze#5i9PNUcsl+#hArH3Oq81Bv=p4HIOeED?RAz$89+r+W|7Vb4QMsVhaMZbrG!qGR>|WbXG!M`3y_-ND#%R=FwR3S zDsMLa5Fe}on*xlo!Oz#xbeG5UQ014RENG$>XJ(_&SD+%VQG!P%dXm*oL!$+~9@h3? z6)rZKL&j!Q*BHY{#baz}sI^UN)i!(VRT|PFD6MbXha~j%;2zu7w*-AYW^MbJM3&W4 zt$O_v7_Xxg@K_i6oEoe5w{8M+H&Ka}k@*?O*d-#THR<_9DseRPw8lQ~)@1hm2+@zPNCs zt3NJOV7fWe@mx6+FG&@@e(g}}pjl2e1r)eyC?5LmRb{Oqt5aQt%B$ODd4;Q{DkL_N zaZxZ`dsV8S^4#-kP$fiF*<=on8d9De7U^d;E?ndQL-FZSP41mAi^X_%q#^J_6->IT z-ahT=jq^OLt)vwqpDLC6;P~>n5O&JkoNsR+ealO=Ppy3wtpa6R51t+?)LHkG+>nlN zG!Dg0HR*16>(Y;l&`w)OW)a3!(^0bQ6f5bjV@<{M?j5!dc2|Rd0fXI@9YTkX{{BHk Q|7ZURm;J}(|1Sdn1PRwrJ^%m! literal 0 HcmV?d00001 diff --git a/windows/Blink1Lib/Blink1LibDemo/bin/Debug/ConsoleApplication1.vshost.exe.config b/windows/Blink1Lib/Blink1LibDemo/bin/Debug/ConsoleApplication1.vshost.exe.config new file mode 100644 index 00000000..fad249e4 --- /dev/null +++ b/windows/Blink1Lib/Blink1LibDemo/bin/Debug/ConsoleApplication1.vshost.exe.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/windows/Blink1Lib/Blink1LibDemo/bin/Debug/ConsoleApplication1.vshost.exe.manifest b/windows/Blink1Lib/Blink1LibDemo/bin/Debug/ConsoleApplication1.vshost.exe.manifest new file mode 100644 index 00000000..f96b1d6b --- /dev/null +++ b/windows/Blink1Lib/Blink1LibDemo/bin/Debug/ConsoleApplication1.vshost.exe.manifest @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/windows/Blink1Lib/README.md b/windows/Blink1Lib/README.md new file mode 100644 index 00000000..57feca23 --- /dev/null +++ b/windows/Blink1Lib/README.md @@ -0,0 +1,5 @@ +Blink1Lib -- .NET C# library for blink(1) USB RGB LED +===================================================== + + +