From ede8a6152ee4b1dbbbc801665c7e788a05fab121 Mon Sep 17 00:00:00 2001 From: Jay Uppaluri Date: Wed, 15 Nov 2023 11:23:14 -0800 Subject: [PATCH 1/4] Adding I2C sample for NXP i.MX8M plus board --- samples/NXP/NXPI2CSample/NXPI2CSample.sln | 51 ++++++ .../NXP/NXPI2CSample/NXPI2CSample/App.xaml | 7 + .../NXP/NXPI2CSample/NXPI2CSample/App.xaml.cs | 100 +++++++++++ .../Assets/LockScreenLogo.scale-200.png | Bin 0 -> 1430 bytes .../Assets/SplashScreen.scale-200.png | Bin 0 -> 7700 bytes .../Assets/Square150x150Logo.scale-200.png | Bin 0 -> 2937 bytes .../Assets/Square44x44Logo.scale-200.png | Bin 0 -> 1647 bytes ...x44Logo.targetsize-24_altform-unplated.png | Bin 0 -> 1255 bytes .../NXPI2CSample/Assets/StoreLogo.png | Bin 0 -> 1451 bytes .../Assets/Wide310x150Logo.scale-200.png | Bin 0 -> 3204 bytes .../NXPI2CSample/NXPI2CSample/MainPage.xaml | 20 +++ .../NXPI2CSample/MainPage.xaml.cs | 118 ++++++++++++ .../NXPI2CSample/NXPI2CSample.csproj | 168 ++++++++++++++++++ .../NXPI2CSample/Package.appxmanifest | 52 ++++++ .../NXPI2CSample/Properties/AssemblyInfo.cs | 29 +++ .../NXPI2CSample/Properties/Default.rd.xml | 31 ++++ samples/NXP/NXPI2CSample/README.md | 31 ++++ 17 files changed, 607 insertions(+) create mode 100644 samples/NXP/NXPI2CSample/NXPI2CSample.sln create mode 100644 samples/NXP/NXPI2CSample/NXPI2CSample/App.xaml create mode 100644 samples/NXP/NXPI2CSample/NXPI2CSample/App.xaml.cs create mode 100644 samples/NXP/NXPI2CSample/NXPI2CSample/Assets/LockScreenLogo.scale-200.png create mode 100644 samples/NXP/NXPI2CSample/NXPI2CSample/Assets/SplashScreen.scale-200.png create mode 100644 samples/NXP/NXPI2CSample/NXPI2CSample/Assets/Square150x150Logo.scale-200.png create mode 100644 samples/NXP/NXPI2CSample/NXPI2CSample/Assets/Square44x44Logo.scale-200.png create mode 100644 samples/NXP/NXPI2CSample/NXPI2CSample/Assets/Square44x44Logo.targetsize-24_altform-unplated.png create mode 100644 samples/NXP/NXPI2CSample/NXPI2CSample/Assets/StoreLogo.png create mode 100644 samples/NXP/NXPI2CSample/NXPI2CSample/Assets/Wide310x150Logo.scale-200.png create mode 100644 samples/NXP/NXPI2CSample/NXPI2CSample/MainPage.xaml create mode 100644 samples/NXP/NXPI2CSample/NXPI2CSample/MainPage.xaml.cs create mode 100644 samples/NXP/NXPI2CSample/NXPI2CSample/NXPI2CSample.csproj create mode 100644 samples/NXP/NXPI2CSample/NXPI2CSample/Package.appxmanifest create mode 100644 samples/NXP/NXPI2CSample/NXPI2CSample/Properties/AssemblyInfo.cs create mode 100644 samples/NXP/NXPI2CSample/NXPI2CSample/Properties/Default.rd.xml create mode 100644 samples/NXP/NXPI2CSample/README.md diff --git a/samples/NXP/NXPI2CSample/NXPI2CSample.sln b/samples/NXP/NXPI2CSample/NXPI2CSample.sln new file mode 100644 index 000000000..0f9362db5 --- /dev/null +++ b/samples/NXP/NXPI2CSample/NXPI2CSample.sln @@ -0,0 +1,51 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.6.33829.357 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NXPI2CSample", "NXPI2CSample\NXPI2CSample.csproj", "{F408975A-0720-4013-8119-39F3421D5B9F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|ARM = Debug|ARM + Debug|ARM64 = Debug|ARM64 + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|ARM = Release|ARM + Release|ARM64 = Release|ARM64 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F408975A-0720-4013-8119-39F3421D5B9F}.Debug|ARM.ActiveCfg = Debug|ARM + {F408975A-0720-4013-8119-39F3421D5B9F}.Debug|ARM.Build.0 = Debug|ARM + {F408975A-0720-4013-8119-39F3421D5B9F}.Debug|ARM.Deploy.0 = Debug|ARM + {F408975A-0720-4013-8119-39F3421D5B9F}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {F408975A-0720-4013-8119-39F3421D5B9F}.Debug|ARM64.Build.0 = Debug|ARM64 + {F408975A-0720-4013-8119-39F3421D5B9F}.Debug|ARM64.Deploy.0 = Debug|ARM64 + {F408975A-0720-4013-8119-39F3421D5B9F}.Debug|x64.ActiveCfg = Debug|x64 + {F408975A-0720-4013-8119-39F3421D5B9F}.Debug|x64.Build.0 = Debug|x64 + {F408975A-0720-4013-8119-39F3421D5B9F}.Debug|x64.Deploy.0 = Debug|x64 + {F408975A-0720-4013-8119-39F3421D5B9F}.Debug|x86.ActiveCfg = Debug|x86 + {F408975A-0720-4013-8119-39F3421D5B9F}.Debug|x86.Build.0 = Debug|x86 + {F408975A-0720-4013-8119-39F3421D5B9F}.Debug|x86.Deploy.0 = Debug|x86 + {F408975A-0720-4013-8119-39F3421D5B9F}.Release|ARM.ActiveCfg = Release|ARM + {F408975A-0720-4013-8119-39F3421D5B9F}.Release|ARM.Build.0 = Release|ARM + {F408975A-0720-4013-8119-39F3421D5B9F}.Release|ARM.Deploy.0 = Release|ARM + {F408975A-0720-4013-8119-39F3421D5B9F}.Release|ARM64.ActiveCfg = Release|ARM64 + {F408975A-0720-4013-8119-39F3421D5B9F}.Release|ARM64.Build.0 = Release|ARM64 + {F408975A-0720-4013-8119-39F3421D5B9F}.Release|ARM64.Deploy.0 = Release|ARM64 + {F408975A-0720-4013-8119-39F3421D5B9F}.Release|x64.ActiveCfg = Release|x64 + {F408975A-0720-4013-8119-39F3421D5B9F}.Release|x64.Build.0 = Release|x64 + {F408975A-0720-4013-8119-39F3421D5B9F}.Release|x64.Deploy.0 = Release|x64 + {F408975A-0720-4013-8119-39F3421D5B9F}.Release|x86.ActiveCfg = Release|x86 + {F408975A-0720-4013-8119-39F3421D5B9F}.Release|x86.Build.0 = Release|x86 + {F408975A-0720-4013-8119-39F3421D5B9F}.Release|x86.Deploy.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {8F8893EA-38B1-444E-A99C-1A3DA007375D} + EndGlobalSection +EndGlobal diff --git a/samples/NXP/NXPI2CSample/NXPI2CSample/App.xaml b/samples/NXP/NXPI2CSample/NXPI2CSample/App.xaml new file mode 100644 index 000000000..282c7c7e0 --- /dev/null +++ b/samples/NXP/NXPI2CSample/NXPI2CSample/App.xaml @@ -0,0 +1,7 @@ + + + diff --git a/samples/NXP/NXPI2CSample/NXPI2CSample/App.xaml.cs b/samples/NXP/NXPI2CSample/NXPI2CSample/App.xaml.cs new file mode 100644 index 000000000..162dcf6db --- /dev/null +++ b/samples/NXP/NXPI2CSample/NXPI2CSample/App.xaml.cs @@ -0,0 +1,100 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices.WindowsRuntime; +using Windows.ApplicationModel; +using Windows.ApplicationModel.Activation; +using Windows.Foundation; +using Windows.Foundation.Collections; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Controls.Primitives; +using Windows.UI.Xaml.Data; +using Windows.UI.Xaml.Input; +using Windows.UI.Xaml.Media; +using Windows.UI.Xaml.Navigation; + +namespace NXPI2CSample +{ + /// + /// Provides application-specific behavior to supplement the default Application class. + /// + sealed partial class App : Application + { + /// + /// Initializes the singleton application object. This is the first line of authored code + /// executed, and as such is the logical equivalent of main() or WinMain(). + /// + public App() + { + this.InitializeComponent(); + this.Suspending += OnSuspending; + } + + /// + /// Invoked when the application is launched normally by the end user. Other entry points + /// will be used such as when the application is launched to open a specific file. + /// + /// Details about the launch request and process. + protected override void OnLaunched(LaunchActivatedEventArgs e) + { + Frame rootFrame = Window.Current.Content as Frame; + + // Do not repeat app initialization when the Window already has content, + // just ensure that the window is active + if (rootFrame == null) + { + // Create a Frame to act as the navigation context and navigate to the first page + rootFrame = new Frame(); + + rootFrame.NavigationFailed += OnNavigationFailed; + + if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) + { + //TODO: Load state from previously suspended application + } + + // Place the frame in the current Window + Window.Current.Content = rootFrame; + } + + if (e.PrelaunchActivated == false) + { + if (rootFrame.Content == null) + { + // When the navigation stack isn't restored navigate to the first page, + // configuring the new page by passing required information as a navigation + // parameter + rootFrame.Navigate(typeof(MainPage), e.Arguments); + } + // Ensure the current window is active + Window.Current.Activate(); + } + } + + /// + /// Invoked when Navigation to a certain page fails + /// + /// The Frame which failed navigation + /// Details about the navigation failure + void OnNavigationFailed(object sender, NavigationFailedEventArgs e) + { + throw new Exception("Failed to load Page " + e.SourcePageType.FullName); + } + + /// + /// Invoked when application execution is being suspended. Application state is saved + /// without knowing whether the application will be terminated or resumed with the contents + /// of memory still intact. + /// + /// The source of the suspend request. + /// Details about the suspend request. + private void OnSuspending(object sender, SuspendingEventArgs e) + { + var deferral = e.SuspendingOperation.GetDeferral(); + //TODO: Save application state and stop any background activity + deferral.Complete(); + } + } +} diff --git a/samples/NXP/NXPI2CSample/NXPI2CSample/Assets/LockScreenLogo.scale-200.png b/samples/NXP/NXPI2CSample/NXPI2CSample/Assets/LockScreenLogo.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..735f57adb5dfc01886d137b4e493d7e97cf13af3 GIT binary patch literal 1430 zcmaJ>TTC2P7~aKltDttVHYH6u8Io4i*}3fO&d$gd*bA_<3j~&e7%8(eXJLfhS!M@! zKrliY>>6yT4+Kr95$!DoD(Qn-5TP|{V_KS`k~E6(LGS@#`v$hQo&^^BKsw3HIsZBT z_y6C2n`lK@apunKojRQ^(_P}Mgewt$(^BBKCTZ;*xa?J3wQ7~@S0lUvbcLeq1Bg4o zH-bvQi|wt~L7q$~a-gDFP!{&TQfc3fX*6=uHv* zT&1&U(-)L%Xp^djI2?~eBF2cxC@YOP$+9d?P&h?lPy-9M2UT9fg5jKm1t$m#iWE{M zIf%q9@;fyT?0UP>tcw-bLkz;s2LlKl2qeP0w zECS7Ate+Awk|KQ+DOk;fl}Xsy4o^CY=pwq%QAAKKl628_yNPsK>?A>%D8fQG6IgdJ ztnxttBz#NI_a@fk7SU`WtrpsfZsNs9^0(2a z@C3#YO3>k~w7?2hipBf{#b6`}Xw1hlG$yi?;1dDs7k~xDAw@jiI*+tc;t2Lflg&bM)0!Y;0_@=w%`LW^8DsYpS#-bLOklX9r?Ei}TScw|4DbpW%+7 zFgAI)f51s}{y-eWb|vrU-Ya!GuYKP)J7z#*V_k^Xo>4!1Yqj*m)x&0L^tg3GJbVAJ zJ-Pl$R=NAabouV=^z_t;^K*0AvFs!vYU>_<|I^#c?>>CR<(T?=%{;U=aI*SbZADLH z&(f2wz_Y0??Tf|g;?|1Znw6}6U43Q#qNRwv1vp9uFn1)V#*4p&%$mP9x&15^OaBiDS(XppT|z^>;B{PLVEbS3IFYV yGvCsSX*m literal 0 HcmV?d00001 diff --git a/samples/NXP/NXPI2CSample/NXPI2CSample/Assets/SplashScreen.scale-200.png b/samples/NXP/NXPI2CSample/NXPI2CSample/Assets/SplashScreen.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..023e7f1feda78d5100569825acedfd213a0d84e9 GIT binary patch literal 7700 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 literal 0 HcmV?d00001 diff --git a/samples/NXP/NXPI2CSample/NXPI2CSample/Assets/Square150x150Logo.scale-200.png b/samples/NXP/NXPI2CSample/NXPI2CSample/Assets/Square150x150Logo.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..af49fec1a5484db1d52a7f9b5ec90a27c7030186 GIT binary patch literal 2937 zcma)84OCO-8BSud5)jwMLRVKgX(S?$n?Ld|vrsm<$CF7)&zTbyy1FE5bU`Q17MRv`9ue$;R(@8kR;#vJ*IM0>cJIAOte!d7oRgdH zd%ySjdB6L9=gX^A6)VzH7p2l@v~3zJAMw|DFy#^)F@@F*`mqUn=Il>l)8_+ab;nOW{%+iPx z+s{Eu|&pIs)Z7{La9~?xKfyl z#43?gjEL15d4WbOZo#SiP%>DB^+BcnJ=7dHEe;r#G=tuw|ka z%q@}##Uh7;tc%L_64m(kHtw74ty%BJMb)_1)#S0j`)F8_1jF7vScpsnH=0V19bO8y zR`0SjIdCUo&=>JwMQF8KHA<{ODHTiQh}0^@5QRmCA?gOH6_H3K^-_sNB^RrdNuK-R zOO*vOrKCVvDwgUck`kF(E7j{I#iiN;b*ZdCt4m@HPA`EuEqGGf4%!K<;(=I=&Vyrw z%TwcWtxa}8mCZ%Cyf&ActJ6_$ox5z6-D!0-dvnRx6t7y3d+h6QYpKWO;8OdnvERo7 zuEf>ih5`wqY)~o@OeVt-wM?Q!>QzdGRj!bz6fzYrfw$hZfAKzr2-M+D+R>}~oT574c;_3zquHcElqKIsryILt3g8n3jcMb+j?i?-L3FpZJ z2WRVBRdDPc+G5aaYg#5hpE+6nQ|(VSoxT3|biF;BUq#==-27Xi=gihDPYP$7?=9cP zYKE$jeQ|3~_L0VG-(F~2ZPyD0=k{J4Q~h(t__{-mz_w8{JDY9{`1ouzz!Vr5!ECdE z6U~O1k8c}24V7~zzXWTV-Pe4)y}wQJS&q%H5`Fo_f_JvIU489aCX$;P`u#!I-=^4ijC2{&9!O&h>mi?9oYD=GC#%)6{GzN6nQYw+Fal50!#x^asjBBR50i`+mho*ttoqV)ubM2KD9S~k7+FR4>{29?6 z{!l6kDdyTN0YJ9LgkPWeXm|gyi@zM3?0@{&pXT12w|78&W-q!RRF)&iLCEZVH<|fR zN0fr2^t8H(>L?>K#>^+jWROLral(Qy-xoBq1U7A&DV||wClb)Otd9?(gZ|8znMF}D zf<1haWz^s0qgecz;RFGt0C-B4g`jNGHsFU+;{<%t65v^sjk^h$lmWn#B0#_)9ij&d z-~lc`A)YYExi^7sBuPM^Y|wA2g*5?`K?#7tzELQYNxGo$UB$4J8RJp1k(8Jj+~hMT zlN~>M@KTTh^--8y3PK_NZ@AC!{PT=CziBzGd+wTJ^@icH!Bd}%)g8V)%K?|c&WTUk zy}qv1C%(fjRoZ4ozC3{O%@5?)XzH35zHns$pgU*Q?fj4v?fp1Qbm+j;3l;9jam9Da zXVcKjPlQ73x78QPu|Ffm6x?`~e3oD=gl=4kYK?={kD5j~QCXU)`HSdduNNENzA*2$ zOm3PzF!lN5e*06-f1Uot67wY#{o-S1!KZ7E=!~7ynnk9_iJR#kFoNbAOT#^2Gd17F zMmvU6>lndZQGd|ax9kUoXXO+$N?|j@6qpsF&_j7YXvwo_C{JpmLw5&#e6k>atv%es z5)7r*Wvv_JkUpT}M!_o!nVlEk1Zbl=a*2hQ*<|%*K1Glj^FcF`6kTzGQ3lz~2tCc@ z&x|tj;aH&1&9HwcJBcT`;{?a+pnej;M1HO(6Z{#J!cZA04hnFl;NXA+&`=7bjW_^o zfC40u3LMG?NdPtwGl>Tq6u}*QG)}-y;)lu-_>ee3kibW(69n0$0Zy!}9rQz%*v1iO zT9_H>99yIrSPYVy6^);rR}7Yo=J_T@hi+qhTZXnVWyf;JDYm5#eYLTxr*?kiNn!+Y zQ+LUkBafNJ#rH#C(?d5^;gw9o#%daEI{mA*LHPIHPU`#|H$hD zwm>0&+kahQ)E#%~k>&5@&#Vg82H?s%71=)(soi@174pi9--2{w{1$}Sz4zGn3Du&x bht0Iza^2ykEt4(epJ78uh5nDlX8(TxzDYwP literal 0 HcmV?d00001 diff --git a/samples/NXP/NXPI2CSample/NXPI2CSample/Assets/Square44x44Logo.scale-200.png b/samples/NXP/NXPI2CSample/NXPI2CSample/Assets/Square44x44Logo.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..ce342a2ec8a61291ba76c54604aea7e9d20af11b GIT binary patch literal 1647 zcmaJ?eM}Q)7(e+G1Q(|`V9JhTI2>MkceK4;p;PR&$Pi?ejk3YQ_3o`S&|W_dsOZ8# zWPTt69g`t$ab`0cj-Y0yiBSOqmd)tG7G(}M5aP0_%&9TijB#&)I{zSE^4@#z^FF`l z`8{8`o%wlL(UI|y2!cdsuVamHH~H86F!*-15em4)NqUpCQM5?aoC_eCf@lV4wvF2a zjDQn1JBL69f&@2M3rvzJcfE!eZ8FZUBlFlC5RD)it33{mF9#B82AiyQE%w)`vlwa> zv{<1sm&kSKK$&%2jSFn7$t&P%%6Ue>R=EAnG8N7fqynWG8L3p!4801a;8{+nliO(qd(jNJ_?+9W3#hLIDLoT6~3fx9=`CC-D}-AMrpEO7HK zt3$GicGPc?GmDjy7K2P@La;eu4!$zWCZ`ym{Z$b zu-O6RM&K4JT|BIZB`E-gxqG%FzanI#+2FFmqHqXG7yxWB=w55RGOM)$xMb(>kSNR z2w=1AZi%z=AmG~yea~XaXJR!v7vLn(RUnELfiB1|6D84ICOS}^Zo2AdN}<&*h}G_u z{xZ!(%>tLT3J3<5XhWy-tg+6)0nmUUENLW8TWA{R6bgVd3X;anYFZ^IRis*_P-C-r z;i>%1^eL3UI2-{w8nuFFcs0e~7J{O2k^~Ce%+Ly4U?|=!0LH=t6()xi<^I-rs+9sF z*q{E-CxZbGPeu#a;XJwE;9S1?#R&uns>^0G3p`hEUF*v`M?@h%T%J%RChmD|EVydq zmHWh*_=S%emRC*mhxaVLzT@>Z2SX0u9v*DIJ@WC^kLVdlGV6LpK$KIrlJqc zpJ921)+3JJdTx|<`G&kXpKkjGJv=76R`yYIQ{#c-`%+`#V(7}Q;&@6U8!Td1`d;?N z_9mnI#?AA}4J!r)LN4!E-@H5eXauuB7TOawS>Y|{-P?NNx-lq+z1W-+y(;39P&&LP zL{N80?&=C*qKmdA^moMZRuPcD!B<*mq$ch=0Cnlitw#txRWhb3%TQvPqjkC`F69G4b! ze7z9MZ#+;_#l?H37UqUhDFb^l&s2{oM$3I0o^Q!yx;;V)QmCMo)Tb_ui|mit8MS?U zm##6$sZZ1$@|s%?l@>4Z<*Q}sRBSKMhb4I{e5LdEhsHIHTe8Bod5c>6QtT>$XgUBz z6MK`kO$=jmt@FqggOhJ5j~e@ygRbG;<{Vu)*+nn9aQeo0;$#j;|MS=S$&L?BeV25z xs3B`@=#`5TF{^6(A1rvdY@|-RtQ|iS5{tyX+wH?;n8E)G$kykv-D^wh{{!TZT%7;_ literal 0 HcmV?d00001 diff --git a/samples/NXP/NXPI2CSample/NXPI2CSample/Assets/Square44x44Logo.targetsize-24_altform-unplated.png b/samples/NXP/NXPI2CSample/NXPI2CSample/Assets/Square44x44Logo.targetsize-24_altform-unplated.png new file mode 100644 index 0000000000000000000000000000000000000000..f6c02ce97e0a802b85f6021e822c89f8bf57d5cd GIT binary patch literal 1255 zcmaJ>TWs4@7*5+{G#S+&C!qC#> zf>5N3P6jO*Cz>ug*(_DmW=)kea&m$gZ^+nyiF`;j%w@}y8)>p*SH}C`m?DXeieF2U zyQHecc_L%Gh!7GMt+hG06y;+|p4>m~}PjA}rKViGiEnn7G0ZO<>G|7q;2?NwGCM3s?eued6%hd$B+ z*kQJ{#~$S=DFE(%=E+UkmlEI*%3llUf~8Ja9YU1Vui0IbGBkW_gHB%Rd&!!ioX zs40O?i9I{};kle7GMvE7(rk`la=gTI)47=>%?q@^iL-nUo3}h4S}N-KHn8t5mVP8w z&bSErwp+37 zNJJ8?a|{r5Q3R0Z5s-LB1WHOwYC@7pCHWND#cL1cZ?{kJ368_*(UDWUDyb<}0y@o# zfMF016iMWPCb6obAxT$JlB6(2DrlXDTB&!0`!m??4F(qWMhjVZo?JXQmz`1*58Z=& zcDmB|S-E@j?BoFGix0flckqdS4jsPNzhfWyWIM98GxcLs89C(~dw%$_t;JjX-SD}E zfiGV;{8Q%8r}w9x>EEigW81>`kvnU@pK)4+xk9@+bNj9L!AAZ@SZ@q|)&BmY3+HZx zul~BeG4|}-;L%cHViQGQX?^zFfO0&#cHwel=d`lH9sJ-@Sl@n*(8J2>%Ac`IxyY?Q z{=GhWvC#gu-~Ia7*n{=+;qM?Ul_wy1+u7ho;=`>EwP^g~R@{unBds`!#@}tluZQpS zm)M~nYEifJWJGx?_6DcTy>#uh%>!H9=hb^(v`=m3F1{L>db=<5_tm+_&knAQ2EU$s Mu9UqpbNZeC0BbUo^Z)<= literal 0 HcmV?d00001 diff --git a/samples/NXP/NXPI2CSample/NXPI2CSample/Assets/StoreLogo.png b/samples/NXP/NXPI2CSample/NXPI2CSample/Assets/StoreLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..7385b56c0e4d3c6b0efe3324aa1194157d837826 GIT binary patch literal 1451 zcmaJ>eN5D57_Z|bH;{0+1#mbl)eTU3{h)Wf7EZV?;HD@XL@{B`Ui%(2aMxQ~xdXSv z5nzWi(LW)U2=Vc-cY@s7nPt{i0hc6!7xN4NNHI#EQl>YNBy8l4%x9gr_W-j zEZMQmmTIy(>;lblRfh`dIyTgc9W5d!VP$L4(kKrN1c5G~(O_#xG zAJCNTstD^5SeXFB+&$h=ToJP2H>xr$iqPs-#O*;4(!Fjw25-!gEb*)mU}=)J;Iu>w zxK(5XoD0wrPSKQ~rbL^Cw6O_03*l*}i=ydbu7adJ6y;%@tjFeXIXT+ms30pmbOP%Q zX}S;+LBh8Tea~TSkHzvX6$rYb)+n&{kSbIqh|c7hmlxmwSiq5iVhU#iEQ<>a18|O^Sln-8t&+t`*{qBWo5M?wFM(JuimAOb5!K#D}XbslM@#1ZVz_;!9U zpfEpLAOz=0g@bd6Xj_ILi-x^!M}73h^o@}hM$1jflTs|Yuj9AL@A3<-?MV4!^4q`e z)fO@A;{9K^?W?DbnesnPr6kK>$zaKo&;FhFd(GYFCIU^T+OIMb%Tqo+P%oq(IdX7S zf6+HLO?7o0m+p>~Tp5UrXWh!UH!wZ5kv!E`_w)PTpI(#Iw{AS`gH4^b(bm^ZCq^FZ zY9DD7bH}rq9mg88+KgA$Zp!iWncuU2n1AuIa@=sWvUR-s`Qb{R*kk(SPU^`$6BXz8 zn#7yaFOIK%qGxyi`dYtm#&qqox0$h=pNi#u=M8zUG@bpiZ=3sT=1}Trr}39cC)H|v zbL?W)=&s4zrh)7>L(|cc%$1#!zfL?HjpeP%T+x_a+jZ16b^iKOHxFEX$7d|8${H-* zIrOJ5w&i$>*D>AKaIoYg`;{L@jM((Kt?$N$5OnuPqVvq**Nm}(f0wwOF%iX_Pba;V z;m@wxX&NcV3?<1+u?A{y_DIj7#m3Af1rCE)o`D&Y3}0%7E;iX1yMDiS)sh0wKi!36 zL!Wmq?P^Ku&rK~HJd97KkLTRl>ScGFYZNlYytWnhmuu|)L&ND8_PmkayQb{HOY640 bno1(wj@u8DCVuFR|31B*4ek@pZJqxCDDe1x literal 0 HcmV?d00001 diff --git a/samples/NXP/NXPI2CSample/NXPI2CSample/Assets/Wide310x150Logo.scale-200.png b/samples/NXP/NXPI2CSample/NXPI2CSample/Assets/Wide310x150Logo.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..288995b397fdbef1fb7e85afd71445d5de1952c5 GIT binary patch literal 3204 zcmbVPeQXow8NYmBd90>}0NP?GhXW~VaeThm=a0tV#EwJMI!)6M3}|c4_Bl3=Kd>G0 z(GHx1wl<7(tP?FsOQkTilSo*iIvF%uArExJ73~P zSv1xEy!U(Wd4A9D`FQV@W3@F^qJ@PEF$@z`Z!*BbFsS(^?B zyiAzJ+q})bkgiQHWqEb*jJD-coHYr1^iocg)l!Qa{Xqs-l~6J}p-|##ZHYofskQ3$ zI0;xzXyhazBeXhIsg5A=%ufo@f)1yy&ScKS0;HF^!r_2UE^lpZEom(+@duma3awTv zCrCL-%D_SvYWIcdHkmI}#50(fkUi)Qgx!80ju>g1za^}ff>JI8Z@^-iCiaCgg@TgF z+vtE?Q9{VQUX&MW9SYYmGcxA14%N2@7FwBTD4N<(2{nWgV8$e3?-F=L^&FrtWn~(U_Q~~^uYiyeY6-KoTnfh9AWz@ zIKje0)u!_Lw)E}G!#kEfwKVdNt(UAf9*f>tEL_(=xco-T%jTi@7YlC3hs2ik%Le0H ztj}RTeCF(5mwvi3_56>-yB?l;J>-1%!9~=fs|QcNG3J~a@JCu`4SB460s0ZO+##4fFUSGLcj_ja^fL4&BKALfb#$6$O?>P@qx2Agl^x0i&ugt zsy5Pyu=()`7HRMG3IB7F1@`_ z+-!J%#i6e^U$e#+C%Q>_qVRzWRsG^W_n+@OcX@vzI&z;mzHNb!GQ?LWA(wtpqHqTM z1OFw_{Zn?fD)p)`c`kOgv{de=v@suGRqY{N^U7gI1VF3*F=obwaXI6ob5__Yn zVTguS!%(NI09J8x#AO_aW!9W7k*UvB;IWDFC3srwftr{kHj%g)fvnAm;&h_dnl~

MY- zf+K}sCe8qU6Ujs`3ua{U0Of$R_gVQBuUA za0v=mu#vIOqiiAZOr&h*$WyOw&k-xr$;G4Ixa!#TJNr>95(h>l%)PUy4p+^SgR(uR zta%k*?ny-+nAr8spEk1fo{J4i!b^Fia`N{_F6@zidA2ZTTrjl#^5Z-2KfB@Cu}l9s z(*|Z2jc?p~vn2f)3y9i*7zJV1L{$?|&q)4oaT;uXi6>1GkRXVTOzAz(RHEmr=eFIi z`}<>-Q?K0GN8!IYxeP1XKXO+jsJbp~o^);Bc;%b7Flpe7;1`Ny@3r7ZR;?R)aJt8C ziNlEC<@3f_lIV4TwV}&e;D!Ee5_|e#g0LUh=5vmYWYm7&2h*M>QPKvGh9-)wfMMW3 z8J9b%1k7dzPzO0_NGQy92BZ^FR6R~6;^6?lqO;-QUP4BY%cG%3vEhbm#>4vIhPBh3 z-+pZGjh$x%Hp{?=FHsMp0&wNPlj00us{&`1ZOZTqs8%4X&xH=UDr*xyBW(Zp&Em94 zf)ZSfn#yg0N)>!1kWdkqJ^S*z0FF5|fj&qcE#Na|%OY0$uO>!&hP+1ywfD_WXk@4J(?MBftK7>$Nvqh@tDuarN%PrTLQ2Uzysx>UV=V zk^RrDSvdQ?0;=hY67EgII-f4`t=+i*yS=Y~!XlqIy_4x&%+OdfbKOFPXS2X5%4R{N z$SQMX^AK6(fA + + + + + + + + + + + diff --git a/samples/NXP/NXPI2CSample/NXPI2CSample/MainPage.xaml.cs b/samples/NXP/NXPI2CSample/NXPI2CSample/MainPage.xaml.cs new file mode 100644 index 000000000..41d1c2846 --- /dev/null +++ b/samples/NXP/NXPI2CSample/NXPI2CSample/MainPage.xaml.cs @@ -0,0 +1,118 @@ +using System; +using System.Diagnostics; +using System.Threading.Tasks; +using Windows.Devices.Enumeration; +using Windows.Devices.I2c; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; + +namespace NXPI2CSample +{ + public sealed partial class MainPage : Page + { + private const string I2C_CONTROLLER_NAME = "I2C3"; + private const int TCS34725_ADDRESS = 0x29; + + private I2cDevice tcs34725; + private DispatcherTimer timer; + private const byte TCS34725_ENABLE = 0x00; + private const byte TCS34725_ENABLE_PON = 0x01; // Power on + private const byte TCS34725_ENABLE_AEN = 0x02; // RGBC Enable + + // Change these to control the gain and integration time of the sensor, and + // uncomment the lines in 'InitialiseSensor' to set the values to the sensor + + //private const byte TCS34725_ATIME = 0x01; // RGBC time + //private const byte TCS34725_INTEGRATIONTIME_700MS = 0x00; // Max count: 65535 + //private const byte TCS34725_CONTROL = 0x0F; // Gain control register + //private const byte TCS34725_GAIN_60X = 0x03; // 60x gain + + + public MainPage() + { + this.InitializeComponent(); + InitI2C(); + + // Create a timer to update the sensor values every 500 milliseconds + timer = new DispatcherTimer(); + timer.Interval = TimeSpan.FromMilliseconds(500); + timer.Tick += Timer_Tick; + timer.Start(); + } + + private async void InitI2C() + { + var settings = new I2cConnectionSettings(TCS34725_ADDRESS); + settings.BusSpeed = I2cBusSpeed.FastMode; + + string aqs = I2cDevice.GetDeviceSelector(I2C_CONTROLLER_NAME); + var dis = await DeviceInformation.FindAllAsync(aqs); + + if (dis.Count == 0) + { + Debug.WriteLine("No I2C devices found."); + return; + } + + foreach (var device in dis) + { + Debug.WriteLine($"Device ID: {device.Id}"); + Debug.WriteLine($"Device Name: {device.Name}"); + Debug.WriteLine($"Device Kind: {device.Kind}"); + Debug.WriteLine($"Device Properties: {device.Properties}"); + } + + tcs34725 = await I2cDevice.FromIdAsync(dis[0].Id, settings); + + if (tcs34725 == null) + { + Debug.WriteLine("Failed to connect to TCS34725 sensor."); + return; + } + + Debug.WriteLine("Connected to TCS34725 sensor."); + + // Initialize the sensor + InitialiseSensor(); + } + + private void Timer_Tick(object sender, object e) + { + // Read data from the sensor + byte[] data = new byte[8]; + tcs34725.WriteRead(new byte[] { 0x94 }, data); + + ushort clear = (ushort)(data[1] << 8 | data[0]); + ushort red = (ushort)(data[3] << 8 | data[2]); + ushort green = (ushort)(data[5] << 8 | data[4]); + ushort blue = (ushort)(data[7] << 8 | data[6]); + + // Update the UI with the new sensor values + ClearTextBlock.Text = $"Clear: {clear}"; + RedTextBlock.Text = $"Red: {red}"; + GreenTextBlock.Text = $"Green: {green}"; + BlueTextBlock.Text = $"Blue: {blue}"; + } + + private void write8(byte addr, byte cmd) + { + tcs34725.Write(new byte[] { addr, cmd }); + } + + private void InitialiseSensor() + { + // Turn on + write8(TCS34725_ENABLE, TCS34725_ENABLE_PON); + Task.Delay(3).Wait(); + write8(TCS34725_ENABLE, TCS34725_ENABLE_PON | TCS34725_ENABLE_AEN); + + // Integration Time + // write8(TCS34725_ATIME, TCS34725_INTEGRATIONTIME_700MS); + + // Gain + // write8(TCS34725_CONTROL, TCS34725_GAIN_60X); + + write8(0x80, 0x03); + } + } +} diff --git a/samples/NXP/NXPI2CSample/NXPI2CSample/NXPI2CSample.csproj b/samples/NXP/NXPI2CSample/NXPI2CSample/NXPI2CSample.csproj new file mode 100644 index 000000000..ea605027f --- /dev/null +++ b/samples/NXP/NXPI2CSample/NXPI2CSample/NXPI2CSample.csproj @@ -0,0 +1,168 @@ + + + + + Debug + x86 + {F408975A-0720-4013-8119-39F3421D5B9F} + AppContainerExe + Properties + NXPI2CSample + NXPI2CSample + en-US + UAP + 10.0.19041.0 + 10.0.17134.0 + 14 + 512 + {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + true + false + + + true + bin\x86\Debug\ + DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP + ;2008 + full + x86 + false + prompt + true + + + bin\x86\Release\ + TRACE;NETFX_CORE;WINDOWS_UWP + true + ;2008 + pdbonly + x86 + false + prompt + true + true + + + true + bin\ARM\Debug\ + DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP + ;2008 + full + ARM + false + prompt + true + + + bin\ARM\Release\ + TRACE;NETFX_CORE;WINDOWS_UWP + true + ;2008 + pdbonly + ARM + false + prompt + true + true + + + true + bin\ARM64\Debug\ + DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP + ;2008 + full + ARM64 + false + prompt + true + true + + + bin\ARM64\Release\ + TRACE;NETFX_CORE;WINDOWS_UWP + true + ;2008 + pdbonly + ARM64 + false + prompt + true + true + + + true + bin\x64\Debug\ + DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP + ;2008 + full + x64 + false + prompt + true + + + bin\x64\Release\ + TRACE;NETFX_CORE;WINDOWS_UWP + true + ;2008 + pdbonly + x64 + false + prompt + true + true + + + PackageReference + + + + App.xaml + + + MainPage.xaml + + + + + + Designer + + + + + + + + + + + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + + 6.2.14 + + + + 14.0 + + + + \ No newline at end of file diff --git a/samples/NXP/NXPI2CSample/NXPI2CSample/Package.appxmanifest b/samples/NXP/NXPI2CSample/NXPI2CSample/Package.appxmanifest new file mode 100644 index 000000000..488cc1203 --- /dev/null +++ b/samples/NXP/NXPI2CSample/NXPI2CSample/Package.appxmanifest @@ -0,0 +1,52 @@ + + + + + + + + + + TestRemoteDebug + jayuppaluri + Assets\StoreLogo.png + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/samples/NXP/NXPI2CSample/NXPI2CSample/Properties/AssemblyInfo.cs b/samples/NXP/NXPI2CSample/NXPI2CSample/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..6f7a0f905 --- /dev/null +++ b/samples/NXP/NXPI2CSample/NXPI2CSample/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +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("TestRemoteDebug")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("TestRemoteDebug")] +[assembly: AssemblyCopyright("Copyright © 2023")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 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")] +[assembly: ComVisible(false)] \ No newline at end of file diff --git a/samples/NXP/NXPI2CSample/NXPI2CSample/Properties/Default.rd.xml b/samples/NXP/NXPI2CSample/NXPI2CSample/Properties/Default.rd.xml new file mode 100644 index 000000000..af00722cd --- /dev/null +++ b/samples/NXP/NXPI2CSample/NXPI2CSample/Properties/Default.rd.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/samples/NXP/NXPI2CSample/README.md b/samples/NXP/NXPI2CSample/README.md new file mode 100644 index 000000000..b3decd2da --- /dev/null +++ b/samples/NXP/NXPI2CSample/README.md @@ -0,0 +1,31 @@ +# NXP I2C Sample Project + +This project is a C# application developed in Visual Studio, designed to validate the I2C bus on the NXP i.MX8M Plus board. It communicates with a TCS34725 color sensor using the I2C protocol. + +## Features + +- **I2C Communication**: The application uses the I2C protocol for communication with the TCS34725 color sensor, operating at FastMode bus speed. + +- **Sensor Initialization**: The TCS34725 sensor is initialized by powering on and enabling the RGBC (Red, Green, Blue, Clear) channels. + +- **Sensor Data Reading**: The application reads data from the sensor every 500 milliseconds and updates the user interface with the new sensor values. + +## Code Structure + +The `MainPage` class is the core of the application. It includes methods for initializing the I2C device, initializing the sensor, reading data from the sensor, and updating the user interface with the sensor values. + +## Usage + +To run this project, ensure that Visual Studio is installed on your machine. Open the `.sln` file in Visual Studio, build the solution, and run the project. + +To run this application on an NXP device, ensure that the NXP device is on the same network as your host machine and that Visual Studio remote tools are installed. Build this application for ARM64, set the debug mode to 'remote debug', and set the target machine to the IP address of the NXP device. + +Please note that you will need to connect the TCS34725 sensor to a breadboard, and use male-to-female jumper cables to connect the corresponding ports on the sensor to the NXP board. The NXP Plus board's 40-pin I/O connector is labeled with the same names. + +## Key Aspects of the Code + +A crucial aspect of this code is the use of the friendly name 'I2C3' to access the I2C bus. This is specific to NXP - any other name would not work, as the I2C bus identifier is unique to the hardware and software configuration of the NXP device. + +## Note + +This project is designed to work with a TCS34725 color sensor. You will need to have this sensor connected to your machine in order to run the project. Always ensure to follow the correct setup and connection procedures to avoid any hardware issues. From 1b628cd13b28e760ccbc882a2b2dccd2b0a75d8c Mon Sep 17 00:00:00 2001 From: Jay Uppaluri Date: Wed, 15 Nov 2023 11:28:48 -0800 Subject: [PATCH 2/4] renaming project to NXPI2CSample --- samples/NXP/NXPI2CSample/NXPI2CSample/Package.appxmanifest | 2 +- .../NXP/NXPI2CSample/NXPI2CSample/Properties/AssemblyInfo.cs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/NXP/NXPI2CSample/NXPI2CSample/Package.appxmanifest b/samples/NXP/NXPI2CSample/NXPI2CSample/Package.appxmanifest index 488cc1203..24a79212b 100644 --- a/samples/NXP/NXPI2CSample/NXPI2CSample/Package.appxmanifest +++ b/samples/NXP/NXPI2CSample/NXPI2CSample/Package.appxmanifest @@ -15,7 +15,7 @@ - TestRemoteDebug + NXPI2CSample jayuppaluri Assets\StoreLogo.png diff --git a/samples/NXP/NXPI2CSample/NXPI2CSample/Properties/AssemblyInfo.cs b/samples/NXP/NXPI2CSample/NXPI2CSample/Properties/AssemblyInfo.cs index 6f7a0f905..93aa07bae 100644 --- a/samples/NXP/NXPI2CSample/NXPI2CSample/Properties/AssemblyInfo.cs +++ b/samples/NXP/NXPI2CSample/NXPI2CSample/Properties/AssemblyInfo.cs @@ -5,11 +5,11 @@ // 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("TestRemoteDebug")] +[assembly: AssemblyTitle("NXPI2CSample")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("TestRemoteDebug")] +[assembly: AssemblyProduct("NXPI2CSample")] [assembly: AssemblyCopyright("Copyright © 2023")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] From e23ccf98d2699643f3a67c7a5c12489363b6c5a0 Mon Sep 17 00:00:00 2001 From: Jay Uppaluri Date: Wed, 29 Nov 2023 10:45:13 -0800 Subject: [PATCH 3/4] Adding samples for GPIO and I2C on the i.MX8M Plus NXP board --- samples/NXP/NXPGPIOSample/NXPGPIO.jpg | Bin 0 -> 181027 bytes samples/NXP/NXPGPIOSample/NXPGPIOSample.sln | 51 ++++++ .../NXP/NXPGPIOSample/NXPGPIOSample/App.xaml | 7 + .../NXPGPIOSample/NXPGPIOSample/App.xaml.cs | 100 +++++++++++ .../Assets/LockScreenLogo.scale-200.png | Bin 0 -> 1430 bytes .../Assets/SplashScreen.scale-200.png | Bin 0 -> 7700 bytes .../Assets/Square150x150Logo.scale-200.png | Bin 0 -> 2937 bytes .../Assets/Square44x44Logo.scale-200.png | Bin 0 -> 1647 bytes ...x44Logo.targetsize-24_altform-unplated.png | Bin 0 -> 1255 bytes .../NXPGPIOSample/Assets/StoreLogo.png | Bin 0 -> 1451 bytes .../Assets/Wide310x150Logo.scale-200.png | Bin 0 -> 3204 bytes .../NXPGPIOSample/NXPGPIOSample/MainPage.xaml | 15 ++ .../NXPGPIOSample/MainPage.xaml.cs | 79 ++++++++ .../NXPGPIOSample/NXPGPIOSample.csproj | 168 ++++++++++++++++++ .../NXPGPIOSample/Package.appxmanifest | 50 ++++++ .../NXPGPIOSample/Properties/AssemblyInfo.cs | 29 +++ .../NXPGPIOSample/Properties/Default.rd.xml | 31 ++++ samples/NXP/NXPGPIOSample/README.md | 33 ++++ samples/NXP/SPITemperatureAndSensor/README.md | 31 ++++ .../SPITemperatureAndSensor.sln | 51 ++++++ .../SPITemperatureAndSensor/App.xaml | 7 + .../SPITemperatureAndSensor/App.xaml.cs | 100 +++++++++++ .../Assets/LockScreenLogo.scale-200.png | Bin 0 -> 1430 bytes .../Assets/SplashScreen.scale-200.png | Bin 0 -> 7700 bytes .../Assets/Square150x150Logo.scale-200.png | Bin 0 -> 2937 bytes .../Assets/Square44x44Logo.scale-200.png | Bin 0 -> 1647 bytes ...x44Logo.targetsize-24_altform-unplated.png | Bin 0 -> 1255 bytes .../Assets/StoreLogo.png | Bin 0 -> 1451 bytes .../Assets/Wide310x150Logo.scale-200.png | Bin 0 -> 3204 bytes .../SPITemperatureAndSensor/MainPage.xaml | 15 ++ .../SPITemperatureAndSensor/MainPage.xaml.cs | 98 ++++++++++ .../Package.appxmanifest | 52 ++++++ .../Properties/AssemblyInfo.cs | 29 +++ .../Properties/Default.rd.xml | 31 ++++ .../SPITemperatureAndSensor.csproj | 168 ++++++++++++++++++ 35 files changed, 1145 insertions(+) create mode 100644 samples/NXP/NXPGPIOSample/NXPGPIO.jpg create mode 100644 samples/NXP/NXPGPIOSample/NXPGPIOSample.sln create mode 100644 samples/NXP/NXPGPIOSample/NXPGPIOSample/App.xaml create mode 100644 samples/NXP/NXPGPIOSample/NXPGPIOSample/App.xaml.cs create mode 100644 samples/NXP/NXPGPIOSample/NXPGPIOSample/Assets/LockScreenLogo.scale-200.png create mode 100644 samples/NXP/NXPGPIOSample/NXPGPIOSample/Assets/SplashScreen.scale-200.png create mode 100644 samples/NXP/NXPGPIOSample/NXPGPIOSample/Assets/Square150x150Logo.scale-200.png create mode 100644 samples/NXP/NXPGPIOSample/NXPGPIOSample/Assets/Square44x44Logo.scale-200.png create mode 100644 samples/NXP/NXPGPIOSample/NXPGPIOSample/Assets/Square44x44Logo.targetsize-24_altform-unplated.png create mode 100644 samples/NXP/NXPGPIOSample/NXPGPIOSample/Assets/StoreLogo.png create mode 100644 samples/NXP/NXPGPIOSample/NXPGPIOSample/Assets/Wide310x150Logo.scale-200.png create mode 100644 samples/NXP/NXPGPIOSample/NXPGPIOSample/MainPage.xaml create mode 100644 samples/NXP/NXPGPIOSample/NXPGPIOSample/MainPage.xaml.cs create mode 100644 samples/NXP/NXPGPIOSample/NXPGPIOSample/NXPGPIOSample.csproj create mode 100644 samples/NXP/NXPGPIOSample/NXPGPIOSample/Package.appxmanifest create mode 100644 samples/NXP/NXPGPIOSample/NXPGPIOSample/Properties/AssemblyInfo.cs create mode 100644 samples/NXP/NXPGPIOSample/NXPGPIOSample/Properties/Default.rd.xml create mode 100644 samples/NXP/NXPGPIOSample/README.md create mode 100644 samples/NXP/SPITemperatureAndSensor/README.md create mode 100644 samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor.sln create mode 100644 samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/App.xaml create mode 100644 samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/App.xaml.cs create mode 100644 samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/Assets/LockScreenLogo.scale-200.png create mode 100644 samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/Assets/SplashScreen.scale-200.png create mode 100644 samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/Assets/Square150x150Logo.scale-200.png create mode 100644 samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/Assets/Square44x44Logo.scale-200.png create mode 100644 samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/Assets/Square44x44Logo.targetsize-24_altform-unplated.png create mode 100644 samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/Assets/StoreLogo.png create mode 100644 samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/Assets/Wide310x150Logo.scale-200.png create mode 100644 samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/MainPage.xaml create mode 100644 samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/MainPage.xaml.cs create mode 100644 samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/Package.appxmanifest create mode 100644 samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/Properties/AssemblyInfo.cs create mode 100644 samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/Properties/Default.rd.xml create mode 100644 samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/SPITemperatureAndSensor.csproj diff --git a/samples/NXP/NXPGPIOSample/NXPGPIO.jpg b/samples/NXP/NXPGPIOSample/NXPGPIO.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6dbfa789fda8a37953fd5ce2a42034b582c4e044 GIT binary patch literal 181027 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 + + diff --git a/samples/NXP/NXPGPIOSample/NXPGPIOSample/App.xaml.cs b/samples/NXP/NXPGPIOSample/NXPGPIOSample/App.xaml.cs new file mode 100644 index 000000000..2336a3596 --- /dev/null +++ b/samples/NXP/NXPGPIOSample/NXPGPIOSample/App.xaml.cs @@ -0,0 +1,100 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices.WindowsRuntime; +using Windows.ApplicationModel; +using Windows.ApplicationModel.Activation; +using Windows.Foundation; +using Windows.Foundation.Collections; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Controls.Primitives; +using Windows.UI.Xaml.Data; +using Windows.UI.Xaml.Input; +using Windows.UI.Xaml.Media; +using Windows.UI.Xaml.Navigation; + +namespace NXPGPIOSample +{ + ///

+ /// Provides application-specific behavior to supplement the default Application class. + /// + sealed partial class App : Application + { + /// + /// Initializes the singleton application object. This is the first line of authored code + /// executed, and as such is the logical equivalent of main() or WinMain(). + /// + public App() + { + this.InitializeComponent(); + this.Suspending += OnSuspending; + } + + /// + /// Invoked when the application is launched normally by the end user. Other entry points + /// will be used such as when the application is launched to open a specific file. + /// + /// Details about the launch request and process. + protected override void OnLaunched(LaunchActivatedEventArgs e) + { + Frame rootFrame = Window.Current.Content as Frame; + + // Do not repeat app initialization when the Window already has content, + // just ensure that the window is active + if (rootFrame == null) + { + // Create a Frame to act as the navigation context and navigate to the first page + rootFrame = new Frame(); + + rootFrame.NavigationFailed += OnNavigationFailed; + + if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) + { + //TODO: Load state from previously suspended application + } + + // Place the frame in the current Window + Window.Current.Content = rootFrame; + } + + if (e.PrelaunchActivated == false) + { + if (rootFrame.Content == null) + { + // When the navigation stack isn't restored navigate to the first page, + // configuring the new page by passing required information as a navigation + // parameter + rootFrame.Navigate(typeof(MainPage), e.Arguments); + } + // Ensure the current window is active + Window.Current.Activate(); + } + } + + /// + /// Invoked when Navigation to a certain page fails + /// + /// The Frame which failed navigation + /// Details about the navigation failure + void OnNavigationFailed(object sender, NavigationFailedEventArgs e) + { + throw new Exception("Failed to load Page " + e.SourcePageType.FullName); + } + + /// + /// Invoked when application execution is being suspended. Application state is saved + /// without knowing whether the application will be terminated or resumed with the contents + /// of memory still intact. + /// + /// The source of the suspend request. + /// Details about the suspend request. + private void OnSuspending(object sender, SuspendingEventArgs e) + { + var deferral = e.SuspendingOperation.GetDeferral(); + //TODO: Save application state and stop any background activity + deferral.Complete(); + } + } +} diff --git a/samples/NXP/NXPGPIOSample/NXPGPIOSample/Assets/LockScreenLogo.scale-200.png b/samples/NXP/NXPGPIOSample/NXPGPIOSample/Assets/LockScreenLogo.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..735f57adb5dfc01886d137b4e493d7e97cf13af3 GIT binary patch literal 1430 zcmaJ>TTC2P7~aKltDttVHYH6u8Io4i*}3fO&d$gd*bA_<3j~&e7%8(eXJLfhS!M@! zKrliY>>6yT4+Kr95$!DoD(Qn-5TP|{V_KS`k~E6(LGS@#`v$hQo&^^BKsw3HIsZBT z_y6C2n`lK@apunKojRQ^(_P}Mgewt$(^BBKCTZ;*xa?J3wQ7~@S0lUvbcLeq1Bg4o zH-bvQi|wt~L7q$~a-gDFP!{&TQfc3fX*6=uHv* zT&1&U(-)L%Xp^djI2?~eBF2cxC@YOP$+9d?P&h?lPy-9M2UT9fg5jKm1t$m#iWE{M zIf%q9@;fyT?0UP>tcw-bLkz;s2LlKl2qeP0w zECS7Ate+Awk|KQ+DOk;fl}Xsy4o^CY=pwq%QAAKKl628_yNPsK>?A>%D8fQG6IgdJ ztnxttBz#NI_a@fk7SU`WtrpsfZsNs9^0(2a z@C3#YO3>k~w7?2hipBf{#b6`}Xw1hlG$yi?;1dDs7k~xDAw@jiI*+tc;t2Lflg&bM)0!Y;0_@=w%`LW^8DsYpS#-bLOklX9r?Ei}TScw|4DbpW%+7 zFgAI)f51s}{y-eWb|vrU-Ya!GuYKP)J7z#*V_k^Xo>4!1Yqj*m)x&0L^tg3GJbVAJ zJ-Pl$R=NAabouV=^z_t;^K*0AvFs!vYU>_<|I^#c?>>CR<(T?=%{;U=aI*SbZADLH z&(f2wz_Y0??Tf|g;?|1Znw6}6U43Q#qNRwv1vp9uFn1)V#*4p&%$mP9x&15^OaBiDS(XppT|z^>;B{PLVEbS3IFYV yGvCsSX*m literal 0 HcmV?d00001 diff --git a/samples/NXP/NXPGPIOSample/NXPGPIOSample/Assets/SplashScreen.scale-200.png b/samples/NXP/NXPGPIOSample/NXPGPIOSample/Assets/SplashScreen.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..023e7f1feda78d5100569825acedfd213a0d84e9 GIT binary patch literal 7700 zcmeHLYj~4Yw%(;oxoEH#Kxq-eR|+VkP17b#Vk;?4QwkI+A{L04G+#<<(x#Un1#+h5>eArRq zTw$)ZvTWW_Y?bDho0nPVTh08+s`sp!j74rJTTtXIDww0SILedFv?sZ?yb@@}GN;#8 znk_b~Q(A0YR#uV4ef!osoV1M3;vQ8N$O|fStfgf$S5;ddUNv`tWtGjM;koG#N;7M< zP*84lnx(bn_KF&9Z5Ai$)#Cs3a|$OFw>WKCT$of*L7_CqQEinflT|W{JT+aKp-E0v zsxmYg)1(T>DROm+LN1eQw8}KCTp=C!$H7`PU!t9_Hw@TsTI2`udRZv*!a5`#A9hK6Y95L(CDUX&_@QxKV z_feX{UhA#ZWlvgpL$#w^D#lq`_A4AzDqd|Zv6y9PX&DNcN|l}_D^{q@GG&H^Pg583 z8FI6N8^H7b5WjGp;urW)d7F+_lcp%KsLX0viCmE(OHH+=%ZfD_=`voUuoUxFO^L;- z;!;2{g-YiiO6m4bs89OuF9!p{FGtH-f%8<2gY!h9s)4ciN%{Kh1+`}{^}M~+TDH9N z^Z5PlgVXMC&2&k*Hw^Lb9gny#ro$MOIxIt{+r)EA10$VR3 zanN8D{TUkl+v0CQ_>ZoHP<M-x#8@8ZiT#$Kh`(uRaX1g$Bg|qy$<#7 zSSAi{Nb8Y=lvNVeio+UGLCAtoLBfL`iOv`)yoJMDJBN>4IH@(l7YRF;61@>qq1iM9 zr@b#OC~SAxSle?5Pp8Z78{VO0YFr1x7kZU64Z23eLf2T2#6J_t;-E}DkB?NufZ0Ug zi?J&byXeaB-uTNVhuiM!UVQw}bZrJ3GtAETYp->!{q#zfN7D3AS9@Q7*V^85jGx#R z(QxYV(wW#F0XF9^^s>>H8pPlVJ>)3Oz z&_X8Sf@~?cH_O*cgi$U#`v`RRfv#y3m(ZpKk^5uLup+lVs$~}FZU$r_+}#hl%?g5m z-u-}-666ssp-xWQak~>PPy$mRc|~?pVSs1_@mBEXpPVfLF6(Ktf1S* zPPh@QZ=tFMs?LM2(5P3L2;l_6XX6s&cYsP1ip#eg0`ZEP0HGYh{UmS@o`MihLLvkU zgyAG0G`b1|qjxxh1(ODKFE%AP}Dq=3vK$P7TXP4GrM1kQ72!GUVMDl`rDC&2;TA}*nF z8$nQD&6ys_nc1*E7$*1S@R8$ymy(sQV}imGSedB@{!QR5P&N_H=-^o!?LsWs+2|mH z-e=)T^SvI)=_JIm7}j4;@*Z17=(#}m=~YF~z~CLI+vdAGlJDcdF$TM?CVI1%LhUrN zaa6DJ=Yh$)$k&Oz{-~8yw^GM^8prYxSxo zvI4k#ibryMa%%*8oI-5m61Koa_A_xg=(fwp0aBX{;X4Q;NXUhtaoJDo1>TqhWtn=_ zd5~chq#&6~c%8JZK#t_&J(9EVUU&upYeIovLt1>vaHe}UUq>#RGQj!EN#5+0@T`(@ z^g~>*c`VGRiSt;!$_4+0hk^I!@O3``5=sZ8IwlxWW7km1B&_t&E*u0_9UBa#VqwY* zz>nxv?FAsVnRaD(Bui=6i==BFUw0k4n$>`umU`F2l?7CYTD^)c2X+d9X&ddS9|gj? zM?knGkGCX&W8offw8aLC2$D{PjC3nVZwd4k?eZH8*mZ)U@3Qk8RDFOz_#WUA#vnzy zyP>KrCfKwSXea7}jgJjBc}PGY+4#6%lbZyjhy`5sZd_Vy6Wz;ixa?czkN}J9It1K6 zY!eu>|AwF^fwZlLAYyQI*lM@^>O>Iu6Vf6i>Q$?v!SeUS<{>UYMwz$*%Aq?w^`j{h z!$GZbhu=^D{&ET8;))LL%ZBDZkQqRd2;u~!d9bHGmLRhLDctNgYyjsuvoSZ#iVdoB z2!f--UUA#U;<{je#?cYt^{PIyKa%hW>}uepWMyAI{{Zo7?2>?$c9;whJae%oN|I-kpTQSx_C$Z&;f zi2i)qmEn=y4U0uvk)$m;zKfjPK@oc?I`}1Jzl$Q~aoKBd3kt7L#7gyt|A_qgz6ai< z=X%D1i!d2h?rHR^R8SUj&G||dkC?DT>{o#Yau<@uqVT{Xef&XG}5*E4aPk{}~ zplx&XhaV)&1EfI3Em;Bw#O5SV^c;{twb-1Rw)+=0!e_BLbd7tYmXCH0wrlOSS+~`7He8Iqx0{CN+DVit9;*6L~JAN zD&cyT)2?h}xnYmL?^)<7YyzZ3$FHU^Eg;DLqAV{#wv#Wj7S`Jdl1pX&{3(uZ?!uh} zDc$ZTNV*7le_W6}Hju~GMTxZQ1aWCeUc%!jv3MHAzt>Y-nQK%zfT*3ebDQA5b?iGn; zBjv3B+GhLTexd_(CzZDP4|#n5^~scvB6#Pk%Ho!kQ>yYw((Dv{6=$g3jT1!u6gORW zx5#`7Wy-ZHRa~IxGHdrp(bm%lf>2%J660nj$fCqN(epv@y!l9s7@k6EvxS{AMP>WY zX4$@F8^kayphIx-RGO$+LYl9YdoI5d|4#q9##`_F5Xnx`&GPzp2fB{-{P@ATw=X@~ z_|&^UMWAKD;jjBKTK(~o?cUFRK8EX=6>cXpfzg4ZpMB>*w_^8GSiT-Jp|xBOnzM+j z*09-@-~qJ(eqWq5@R4i^u4^{McCP(!3}C|v_WsTR*bIUxN(Nx`u##3B4{sE`Z`v8w zAwIG`?1~PkID~W{uDzmqH98Pew_1(;x2%8r^vY{)_&J2K)cN{W+h5+g)ZcjP&Ci#O zgy|8K@4kyMfwilHd&6TDlhb%++Pk!>9HRld6HT7gwyZGrxS$}CsD6`>6!!2K1@Mjf z(P0WYB7V_OFZyeWrbOFb>O54BNXf~K&?}3=^v;v_wT{DKr?jN^DtN&DXwX%u?s*c6`%8>WFz z7}YW^tp0bp^NriE)AB6M2l<7rn7fzePtR*omOevpfm9n?}2V*+0iW;S)C zhg`NAjL?D=W#k*$aR{>pGf~lD-rVtD;5jW1_*Jn1j1=es@Kcx4ySM_bwcQCT=d+DV z>Sz~L=Hj@(X%31nK$mWI@7d>}ORB`K(p=+`UD)+99YUGQc7y^bHZ1F(8|tL0 zdK*DT0kSXG_{BKTpP2*2PecdKV9;dq$^ZZDP;Nyq1kp-&GI5eAyZsK!e3V zK@rPy*{(`KIfo+lc878mDKk^V#`VT05}64kBtk%DgwLrOvLMj5-;*GNKv6c6pzMuL z6EP%ob|_0IW}lLRXCP2!9wWhEw3LA7iF#1O1mIZ@Z=6&bz41F;@S_GvYAG-#CW3z{ zP3+6vHhvP&A3$##Vo9$dT^#MoGg^|MDm=Bt1d2RRwSZ<;ZHICpLBv5Xs!D?BH^(9_ z7`H=N&^v|Z-%mP}wNzG{aiFCsRgwzwq!N6obW9+7(R; z(SZ=23`|`>qil!LMGG{_Heq!BD>(Y-zV9wD)}hz25JA37YR%39;kI4y9pgtcUass6 zP24}ZY$vvYeI`zy&)A_X#nY3017ap*0&jx|mVwyGhg3;!keU53a}Uhm3BZI$N$6Se zLWlAmy1S0xKJm4G_U@sN_Tm=`$xWJSEwKU98rZ&)1R^*$$1vA3oG#&*%SMxY_~oGP zP&PFJatFLM-Ps%84IV-+Ow)T{C7cqUAvauy4C z(FRz&?6$Rypj{xO!`y=*J5o4@U8Q-(y5(*=YoKeZ+-1YdljXxkA#B)zo=FeQH#?Le zycNUmEEHWO9a=X^pb#&cOq7-`7UA87#|S22)<7RUtZo|(zibX=w;K3qur9vy#`MNV z6UUcf9ZwEnKCCp+OoBnF@OdbvH)ANXO0o~Pi9l8=x3))}L<#vO0-~O4!~--Ket?d} zJaqsj<@CD1%S2cTW%rOP{Vto%0sGW~1RMa_j^)5nil0Yw- z0EE#bP+l4#P^%PQ+N*oxu1Zq05xZ!bXfYTg>9c{(Iw*lnjR^>kz%lAN^zFce7rppy zY8zA~3GD=A6d*hze&l4D_wA~+O!56)BZTe_rEu}Ezi<4!kG|W#amBZ5{&XS2@6R~H z{9o^y*BkH4$~yX9U&@CgbOzX1bn9xqF|zh$Dh0Y5y*E0e90*$!ObrHY3Ok0`2=O~r zCuke6KrP9KOf?V(YDsM<6pX2nVoN%M$LT^q#FmtaF?1^27F*IcNX~XRB(|hCFvdcc zc)$=S-)acdk$g4?_>jRqxpI6M3vHZk?0c^3=byamYDNf;uB{3NlKW5IhnOS3DNkMV z?tK8?kJ}pmvp%&&eTVOVjHP`q34hN1@!aK}H(K!vI`~gf|Gv+FNEQD5Yd<~yX7k_l h&G-K)@HZb3BABY{)U1?^%I#E6`MGoTtustd{~yM6srvu` literal 0 HcmV?d00001 diff --git a/samples/NXP/NXPGPIOSample/NXPGPIOSample/Assets/Square150x150Logo.scale-200.png b/samples/NXP/NXPGPIOSample/NXPGPIOSample/Assets/Square150x150Logo.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..af49fec1a5484db1d52a7f9b5ec90a27c7030186 GIT binary patch literal 2937 zcma)84OCO-8BSud5)jwMLRVKgX(S?$n?Ld|vrsm<$CF7)&zTbyy1FE5bU`Q17MRv`9ue$;R(@8kR;#vJ*IM0>cJIAOte!d7oRgdH zd%ySjdB6L9=gX^A6)VzH7p2l@v~3zJAMw|DFy#^)F@@F*`mqUn=Il>l)8_+ab;nOW{%+iPx z+s{Eu|&pIs)Z7{La9~?xKfyl z#43?gjEL15d4WbOZo#SiP%>DB^+BcnJ=7dHEe;r#G=tuw|ka z%q@}##Uh7;tc%L_64m(kHtw74ty%BJMb)_1)#S0j`)F8_1jF7vScpsnH=0V19bO8y zR`0SjIdCUo&=>JwMQF8KHA<{ODHTiQh}0^@5QRmCA?gOH6_H3K^-_sNB^RrdNuK-R zOO*vOrKCVvDwgUck`kF(E7j{I#iiN;b*ZdCt4m@HPA`EuEqGGf4%!K<;(=I=&Vyrw z%TwcWtxa}8mCZ%Cyf&ActJ6_$ox5z6-D!0-dvnRx6t7y3d+h6QYpKWO;8OdnvERo7 zuEf>ih5`wqY)~o@OeVt-wM?Q!>QzdGRj!bz6fzYrfw$hZfAKzr2-M+D+R>}~oT574c;_3zquHcElqKIsryILt3g8n3jcMb+j?i?-L3FpZJ z2WRVBRdDPc+G5aaYg#5hpE+6nQ|(VSoxT3|biF;BUq#==-27Xi=gihDPYP$7?=9cP zYKE$jeQ|3~_L0VG-(F~2ZPyD0=k{J4Q~h(t__{-mz_w8{JDY9{`1ouzz!Vr5!ECdE z6U~O1k8c}24V7~zzXWTV-Pe4)y}wQJS&q%H5`Fo_f_JvIU489aCX$;P`u#!I-=^4ijC2{&9!O&h>mi?9oYD=GC#%)6{GzN6nQYw+Fal50!#x^asjBBR50i`+mho*ttoqV)ubM2KD9S~k7+FR4>{29?6 z{!l6kDdyTN0YJ9LgkPWeXm|gyi@zM3?0@{&pXT12w|78&W-q!RRF)&iLCEZVH<|fR zN0fr2^t8H(>L?>K#>^+jWROLral(Qy-xoBq1U7A&DV||wClb)Otd9?(gZ|8znMF}D zf<1haWz^s0qgecz;RFGt0C-B4g`jNGHsFU+;{<%t65v^sjk^h$lmWn#B0#_)9ij&d z-~lc`A)YYExi^7sBuPM^Y|wA2g*5?`K?#7tzELQYNxGo$UB$4J8RJp1k(8Jj+~hMT zlN~>M@KTTh^--8y3PK_NZ@AC!{PT=CziBzGd+wTJ^@icH!Bd}%)g8V)%K?|c&WTUk zy}qv1C%(fjRoZ4ozC3{O%@5?)XzH35zHns$pgU*Q?fj4v?fp1Qbm+j;3l;9jam9Da zXVcKjPlQ73x78QPu|Ffm6x?`~e3oD=gl=4kYK?={kD5j~QCXU)`HSdduNNENzA*2$ zOm3PzF!lN5e*06-f1Uot67wY#{o-S1!KZ7E=!~7ynnk9_iJR#kFoNbAOT#^2Gd17F zMmvU6>lndZQGd|ax9kUoXXO+$N?|j@6qpsF&_j7YXvwo_C{JpmLw5&#e6k>atv%es z5)7r*Wvv_JkUpT}M!_o!nVlEk1Zbl=a*2hQ*<|%*K1Glj^FcF`6kTzGQ3lz~2tCc@ z&x|tj;aH&1&9HwcJBcT`;{?a+pnej;M1HO(6Z{#J!cZA04hnFl;NXA+&`=7bjW_^o zfC40u3LMG?NdPtwGl>Tq6u}*QG)}-y;)lu-_>ee3kibW(69n0$0Zy!}9rQz%*v1iO zT9_H>99yIrSPYVy6^);rR}7Yo=J_T@hi+qhTZXnVWyf;JDYm5#eYLTxr*?kiNn!+Y zQ+LUkBafNJ#rH#C(?d5^;gw9o#%daEI{mA*LHPIHPU`#|H$hD zwm>0&+kahQ)E#%~k>&5@&#Vg82H?s%71=)(soi@174pi9--2{w{1$}Sz4zGn3Du&x bht0Iza^2ykEt4(epJ78uh5nDlX8(TxzDYwP literal 0 HcmV?d00001 diff --git a/samples/NXP/NXPGPIOSample/NXPGPIOSample/Assets/Square44x44Logo.scale-200.png b/samples/NXP/NXPGPIOSample/NXPGPIOSample/Assets/Square44x44Logo.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..ce342a2ec8a61291ba76c54604aea7e9d20af11b GIT binary patch literal 1647 zcmaJ?eM}Q)7(e+G1Q(|`V9JhTI2>MkceK4;p;PR&$Pi?ejk3YQ_3o`S&|W_dsOZ8# zWPTt69g`t$ab`0cj-Y0yiBSOqmd)tG7G(}M5aP0_%&9TijB#&)I{zSE^4@#z^FF`l z`8{8`o%wlL(UI|y2!cdsuVamHH~H86F!*-15em4)NqUpCQM5?aoC_eCf@lV4wvF2a zjDQn1JBL69f&@2M3rvzJcfE!eZ8FZUBlFlC5RD)it33{mF9#B82AiyQE%w)`vlwa> zv{<1sm&kSKK$&%2jSFn7$t&P%%6Ue>R=EAnG8N7fqynWG8L3p!4801a;8{+nliO(qd(jNJ_?+9W3#hLIDLoT6~3fx9=`CC-D}-AMrpEO7HK zt3$GicGPc?GmDjy7K2P@La;eu4!$zWCZ`ym{Z$b zu-O6RM&K4JT|BIZB`E-gxqG%FzanI#+2FFmqHqXG7yxWB=w55RGOM)$xMb(>kSNR z2w=1AZi%z=AmG~yea~XaXJR!v7vLn(RUnELfiB1|6D84ICOS}^Zo2AdN}<&*h}G_u z{xZ!(%>tLT3J3<5XhWy-tg+6)0nmUUENLW8TWA{R6bgVd3X;anYFZ^IRis*_P-C-r z;i>%1^eL3UI2-{w8nuFFcs0e~7J{O2k^~Ce%+Ly4U?|=!0LH=t6()xi<^I-rs+9sF z*q{E-CxZbGPeu#a;XJwE;9S1?#R&uns>^0G3p`hEUF*v`M?@h%T%J%RChmD|EVydq zmHWh*_=S%emRC*mhxaVLzT@>Z2SX0u9v*DIJ@WC^kLVdlGV6LpK$KIrlJqc zpJ921)+3JJdTx|<`G&kXpKkjGJv=76R`yYIQ{#c-`%+`#V(7}Q;&@6U8!Td1`d;?N z_9mnI#?AA}4J!r)LN4!E-@H5eXauuB7TOawS>Y|{-P?NNx-lq+z1W-+y(;39P&&LP zL{N80?&=C*qKmdA^moMZRuPcD!B<*mq$ch=0Cnlitw#txRWhb3%TQvPqjkC`F69G4b! ze7z9MZ#+;_#l?H37UqUhDFb^l&s2{oM$3I0o^Q!yx;;V)QmCMo)Tb_ui|mit8MS?U zm##6$sZZ1$@|s%?l@>4Z<*Q}sRBSKMhb4I{e5LdEhsHIHTe8Bod5c>6QtT>$XgUBz z6MK`kO$=jmt@FqggOhJ5j~e@ygRbG;<{Vu)*+nn9aQeo0;$#j;|MS=S$&L?BeV25z xs3B`@=#`5TF{^6(A1rvdY@|-RtQ|iS5{tyX+wH?;n8E)G$kykv-D^wh{{!TZT%7;_ literal 0 HcmV?d00001 diff --git a/samples/NXP/NXPGPIOSample/NXPGPIOSample/Assets/Square44x44Logo.targetsize-24_altform-unplated.png b/samples/NXP/NXPGPIOSample/NXPGPIOSample/Assets/Square44x44Logo.targetsize-24_altform-unplated.png new file mode 100644 index 0000000000000000000000000000000000000000..f6c02ce97e0a802b85f6021e822c89f8bf57d5cd GIT binary patch literal 1255 zcmaJ>TWs4@7*5+{G#S+&C!qC#> zf>5N3P6jO*Cz>ug*(_DmW=)kea&m$gZ^+nyiF`;j%w@}y8)>p*SH}C`m?DXeieF2U zyQHecc_L%Gh!7GMt+hG06y;+|p4>m~}PjA}rKViGiEnn7G0ZO<>G|7q;2?NwGCM3s?eued6%hd$B+ z*kQJ{#~$S=DFE(%=E+UkmlEI*%3llUf~8Ja9YU1Vui0IbGBkW_gHB%Rd&!!ioX zs40O?i9I{};kle7GMvE7(rk`la=gTI)47=>%?q@^iL-nUo3}h4S}N-KHn8t5mVP8w z&bSErwp+37 zNJJ8?a|{r5Q3R0Z5s-LB1WHOwYC@7pCHWND#cL1cZ?{kJ368_*(UDWUDyb<}0y@o# zfMF016iMWPCb6obAxT$JlB6(2DrlXDTB&!0`!m??4F(qWMhjVZo?JXQmz`1*58Z=& zcDmB|S-E@j?BoFGix0flckqdS4jsPNzhfWyWIM98GxcLs89C(~dw%$_t;JjX-SD}E zfiGV;{8Q%8r}w9x>EEigW81>`kvnU@pK)4+xk9@+bNj9L!AAZ@SZ@q|)&BmY3+HZx zul~BeG4|}-;L%cHViQGQX?^zFfO0&#cHwel=d`lH9sJ-@Sl@n*(8J2>%Ac`IxyY?Q z{=GhWvC#gu-~Ia7*n{=+;qM?Ul_wy1+u7ho;=`>EwP^g~R@{unBds`!#@}tluZQpS zm)M~nYEifJWJGx?_6DcTy>#uh%>!H9=hb^(v`=m3F1{L>db=<5_tm+_&knAQ2EU$s Mu9UqpbNZeC0BbUo^Z)<= literal 0 HcmV?d00001 diff --git a/samples/NXP/NXPGPIOSample/NXPGPIOSample/Assets/StoreLogo.png b/samples/NXP/NXPGPIOSample/NXPGPIOSample/Assets/StoreLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..7385b56c0e4d3c6b0efe3324aa1194157d837826 GIT binary patch literal 1451 zcmaJ>eN5D57_Z|bH;{0+1#mbl)eTU3{h)Wf7EZV?;HD@XL@{B`Ui%(2aMxQ~xdXSv z5nzWi(LW)U2=Vc-cY@s7nPt{i0hc6!7xN4NNHI#EQl>YNBy8l4%x9gr_W-j zEZMQmmTIy(>;lblRfh`dIyTgc9W5d!VP$L4(kKrN1c5G~(O_#xG zAJCNTstD^5SeXFB+&$h=ToJP2H>xr$iqPs-#O*;4(!Fjw25-!gEb*)mU}=)J;Iu>w zxK(5XoD0wrPSKQ~rbL^Cw6O_03*l*}i=ydbu7adJ6y;%@tjFeXIXT+ms30pmbOP%Q zX}S;+LBh8Tea~TSkHzvX6$rYb)+n&{kSbIqh|c7hmlxmwSiq5iVhU#iEQ<>a18|O^Sln-8t&+t`*{qBWo5M?wFM(JuimAOb5!K#D}XbslM@#1ZVz_;!9U zpfEpLAOz=0g@bd6Xj_ILi-x^!M}73h^o@}hM$1jflTs|Yuj9AL@A3<-?MV4!^4q`e z)fO@A;{9K^?W?DbnesnPr6kK>$zaKo&;FhFd(GYFCIU^T+OIMb%Tqo+P%oq(IdX7S zf6+HLO?7o0m+p>~Tp5UrXWh!UH!wZ5kv!E`_w)PTpI(#Iw{AS`gH4^b(bm^ZCq^FZ zY9DD7bH}rq9mg88+KgA$Zp!iWncuU2n1AuIa@=sWvUR-s`Qb{R*kk(SPU^`$6BXz8 zn#7yaFOIK%qGxyi`dYtm#&qqox0$h=pNi#u=M8zUG@bpiZ=3sT=1}Trr}39cC)H|v zbL?W)=&s4zrh)7>L(|cc%$1#!zfL?HjpeP%T+x_a+jZ16b^iKOHxFEX$7d|8${H-* zIrOJ5w&i$>*D>AKaIoYg`;{L@jM((Kt?$N$5OnuPqVvq**Nm}(f0wwOF%iX_Pba;V z;m@wxX&NcV3?<1+u?A{y_DIj7#m3Af1rCE)o`D&Y3}0%7E;iX1yMDiS)sh0wKi!36 zL!Wmq?P^Ku&rK~HJd97KkLTRl>ScGFYZNlYytWnhmuu|)L&ND8_PmkayQb{HOY640 bno1(wj@u8DCVuFR|31B*4ek@pZJqxCDDe1x literal 0 HcmV?d00001 diff --git a/samples/NXP/NXPGPIOSample/NXPGPIOSample/Assets/Wide310x150Logo.scale-200.png b/samples/NXP/NXPGPIOSample/NXPGPIOSample/Assets/Wide310x150Logo.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..288995b397fdbef1fb7e85afd71445d5de1952c5 GIT binary patch literal 3204 zcmbVPeQXow8NYmBd90>}0NP?GhXW~VaeThm=a0tV#EwJMI!)6M3}|c4_Bl3=Kd>G0 z(GHx1wl<7(tP?FsOQkTilSo*iIvF%uArExJ73~P zSv1xEy!U(Wd4A9D`FQV@W3@F^qJ@PEF$@z`Z!*BbFsS(^?B zyiAzJ+q})bkgiQHWqEb*jJD-coHYr1^iocg)l!Qa{Xqs-l~6J}p-|##ZHYofskQ3$ zI0;xzXyhazBeXhIsg5A=%ufo@f)1yy&ScKS0;HF^!r_2UE^lpZEom(+@duma3awTv zCrCL-%D_SvYWIcdHkmI}#50(fkUi)Qgx!80ju>g1za^}ff>JI8Z@^-iCiaCgg@TgF z+vtE?Q9{VQUX&MW9SYYmGcxA14%N2@7FwBTD4N<(2{nWgV8$e3?-F=L^&FrtWn~(U_Q~~^uYiyeY6-KoTnfh9AWz@ zIKje0)u!_Lw)E}G!#kEfwKVdNt(UAf9*f>tEL_(=xco-T%jTi@7YlC3hs2ik%Le0H ztj}RTeCF(5mwvi3_56>-yB?l;J>-1%!9~=fs|QcNG3J~a@JCu`4SB460s0ZO+##4fFUSGLcj_ja^fL4&BKALfb#$6$O?>P@qx2Agl^x0i&ugt zsy5Pyu=()`7HRMG3IB7F1@`_ z+-!J%#i6e^U$e#+C%Q>_qVRzWRsG^W_n+@OcX@vzI&z;mzHNb!GQ?LWA(wtpqHqTM z1OFw_{Zn?fD)p)`c`kOgv{de=v@suGRqY{N^U7gI1VF3*F=obwaXI6ob5__Yn zVTguS!%(NI09J8x#AO_aW!9W7k*UvB;IWDFC3srwftr{kHj%g)fvnAm;&h_dnl~

MY- zf+K}sCe8qU6Ujs`3ua{U0Of$R_gVQBuUA za0v=mu#vIOqiiAZOr&h*$WyOw&k-xr$;G4Ixa!#TJNr>95(h>l%)PUy4p+^SgR(uR zta%k*?ny-+nAr8spEk1fo{J4i!b^Fia`N{_F6@zidA2ZTTrjl#^5Z-2KfB@Cu}l9s z(*|Z2jc?p~vn2f)3y9i*7zJV1L{$?|&q)4oaT;uXi6>1GkRXVTOzAz(RHEmr=eFIi z`}<>-Q?K0GN8!IYxeP1XKXO+jsJbp~o^);Bc;%b7Flpe7;1`Ny@3r7ZR;?R)aJt8C ziNlEC<@3f_lIV4TwV}&e;D!Ee5_|e#g0LUh=5vmYWYm7&2h*M>QPKvGh9-)wfMMW3 z8J9b%1k7dzPzO0_NGQy92BZ^FR6R~6;^6?lqO;-QUP4BY%cG%3vEhbm#>4vIhPBh3 z-+pZGjh$x%Hp{?=FHsMp0&wNPlj00us{&`1ZOZTqs8%4X&xH=UDr*xyBW(Zp&Em94 zf)ZSfn#yg0N)>!1kWdkqJ^S*z0FF5|fj&qcE#Na|%OY0$uO>!&hP+1ywfD_WXk@4J(?MBftK7>$Nvqh@tDuarN%PrTLQ2Uzysx>UV=V zk^RrDSvdQ?0;=hY67EgII-f4`t=+i*yS=Y~!XlqIy_4x&%+OdfbKOFPXS2X5%4R{N z$SQMX^AK6(fA + + + + + + diff --git a/samples/NXP/NXPGPIOSample/NXPGPIOSample/MainPage.xaml.cs b/samples/NXP/NXPGPIOSample/NXPGPIOSample/MainPage.xaml.cs new file mode 100644 index 000000000..f82dfd734 --- /dev/null +++ b/samples/NXP/NXPGPIOSample/NXPGPIOSample/MainPage.xaml.cs @@ -0,0 +1,79 @@ +// Copyright (c) Microsoft. All rights reserved. + +using System; +using Windows.Devices.Gpio; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Controls.Primitives; +using Windows.UI.Xaml.Media; + +namespace NXPGPIOSample +{ + public sealed partial class MainPage : Page + { + private int[] LED_PINS = new int[] { 155, 154, 147, 146, 141, 140, 139, 138, 137, 136, 88, 87, 86, 85, 84, 83 }; + private GpioPin[] pins; + private GpioPinValue[] pinValues; + private DispatcherTimer timer; + private SolidColorBrush redBrush = new SolidColorBrush(Windows.UI.Colors.Red); + private SolidColorBrush grayBrush = new SolidColorBrush(Windows.UI.Colors.LightGray); + + public MainPage() + { + InitializeComponent(); + + timer = new DispatcherTimer(); + timer.Interval = TimeSpan.FromMilliseconds(500); + timer.Tick += Timer_Tick; + InitGPIO(); + if (pins != null) + { + timer.Start(); + } + } + + private void InitGPIO() + { + var gpio = GpioController.GetDefault(); + + // Show an error if there is no GPIO controller + if (gpio == null) + { + pins = null; + GpioStatus.Text = "There is no GPIO controller on this device."; + return; + } + + pins = new GpioPin[LED_PINS.Length]; + pinValues = new GpioPinValue[LED_PINS.Length]; + for (int i = 0; i < LED_PINS.Length; i++) + { + pins[i] = gpio.OpenPin(LED_PINS[i]); + pinValues[i] = GpioPinValue.High; + pins[i].Write(pinValues[i]); + pins[i].SetDriveMode(GpioPinDriveMode.Output); + } + + GpioStatus.Text = "GPIO pins initialized correctly."; + } + + private void Timer_Tick(object sender, object e) + { + for (int i = 0; i < LED_PINS.Length; i++) + { + if (pinValues[i] == GpioPinValue.High) + { + pinValues[i] = GpioPinValue.Low; + pins[i].Write(pinValues[i]); + LED.Fill = redBrush; + } + else + { + pinValues[i] = GpioPinValue.High; + pins[i].Write(pinValues[i]); + LED.Fill = grayBrush; + } + } + } + } +} diff --git a/samples/NXP/NXPGPIOSample/NXPGPIOSample/NXPGPIOSample.csproj b/samples/NXP/NXPGPIOSample/NXPGPIOSample/NXPGPIOSample.csproj new file mode 100644 index 000000000..8daf22b12 --- /dev/null +++ b/samples/NXP/NXPGPIOSample/NXPGPIOSample/NXPGPIOSample.csproj @@ -0,0 +1,168 @@ + + + + + Debug + x86 + {A41EB9AB-5990-4B2F-9BB0-4DF9DECED77B} + AppContainerExe + Properties + NXPGPIOSample + NXPGPIOSample + en-US + UAP + 10.0.19041.0 + 10.0.10586.0 + 14 + 512 + {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + true + false + + + true + bin\x86\Debug\ + DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP + ;2008 + full + x86 + false + prompt + true + + + bin\x86\Release\ + TRACE;NETFX_CORE;WINDOWS_UWP + true + ;2008 + pdbonly + x86 + false + prompt + true + true + + + true + bin\ARM\Debug\ + DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP + ;2008 + full + ARM + false + prompt + true + + + bin\ARM\Release\ + TRACE;NETFX_CORE;WINDOWS_UWP + true + ;2008 + pdbonly + ARM + false + prompt + true + true + + + true + bin\ARM64\Debug\ + DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP + ;2008 + full + ARM64 + false + prompt + true + true + + + bin\ARM64\Release\ + TRACE;NETFX_CORE;WINDOWS_UWP + true + ;2008 + pdbonly + ARM64 + false + prompt + true + true + + + true + bin\x64\Debug\ + DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP + ;2008 + full + x64 + false + prompt + true + + + bin\x64\Release\ + TRACE;NETFX_CORE;WINDOWS_UWP + true + ;2008 + pdbonly + x64 + false + prompt + true + true + + + PackageReference + + + + App.xaml + + + MainPage.xaml + + + + + + Designer + + + + + + + + + + + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + + 6.2.14 + + + + 14.0 + + + + \ No newline at end of file diff --git a/samples/NXP/NXPGPIOSample/NXPGPIOSample/Package.appxmanifest b/samples/NXP/NXPGPIOSample/NXPGPIOSample/Package.appxmanifest new file mode 100644 index 000000000..891876973 --- /dev/null +++ b/samples/NXP/NXPGPIOSample/NXPGPIOSample/Package.appxmanifest @@ -0,0 +1,50 @@ + + + + + + + + + + NXPGPIOSample + jayuppaluri + Assets\StoreLogo.png + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/samples/NXP/NXPGPIOSample/NXPGPIOSample/Properties/AssemblyInfo.cs b/samples/NXP/NXPGPIOSample/NXPGPIOSample/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..3da4e4ef4 --- /dev/null +++ b/samples/NXP/NXPGPIOSample/NXPGPIOSample/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +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("NXPGPIOSample")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("NXPGPIOSample")] +[assembly: AssemblyCopyright("Copyright © 2023")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 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")] +[assembly: ComVisible(false)] \ No newline at end of file diff --git a/samples/NXP/NXPGPIOSample/NXPGPIOSample/Properties/Default.rd.xml b/samples/NXP/NXPGPIOSample/NXPGPIOSample/Properties/Default.rd.xml new file mode 100644 index 000000000..af00722cd --- /dev/null +++ b/samples/NXP/NXPGPIOSample/NXPGPIOSample/Properties/Default.rd.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/samples/NXP/NXPGPIOSample/README.md b/samples/NXP/NXPGPIOSample/README.md new file mode 100644 index 000000000..27c5cebd7 --- /dev/null +++ b/samples/NXP/NXPGPIOSample/README.md @@ -0,0 +1,33 @@ +# NXP GPIO Sample Project + +This project is a C# application developed in Visual Studio, designed to validate the GPIO pins on the NXP i.MX8M Plus board. + +## Features + +- **GPIO Communication**: The application uses the GPIO pins for communication. + +- **GPIO Pin Control**: The application controls the state of the GPIO pins. + +## Code Structure + +The `MainPage` class is the core of the application. It includes methods for initializing the GPIO pins and controlling their state. + +## Usage + +To run this project, ensure that Visual Studio is installed on your machine. Open the `.sln` file in Visual Studio, build the solution, and run the project. + +To run this application on an NXP device, ensure that the NXP device is on the same network as your host machine and that Visual Studio remote tools are installed. Build this application for ARM64, set the debug mode to 'remote debug', and set the target machine to the IP address of the NXP device. + +## Key Aspects of the Code + +A crucial aspect of this code is the use of specific GPIO index numbers. These index numbers (155, 154, 147, 146, 141, 140, 139, 138, 137, 136, 88, 87, 86, 85, 84, 83) are used to access the GPIO pins on the NXP device. Any other index numbers would not work, as the GPIO pin indexes are unique to the hardware and software configuration of the NXP device. + +![NXPGPIOLayout](./NXPGPIO.jpg) + +## Measuring GPIO Pins + +Once the application is running, you can measure the voltage levels of the GPIO pins on the NXP board using a multimeter. Connect the COM wire of the multimeter to the GND pin on the NXP board, and the V wire to each of the individual GPIO pins that you want to measure. + +## Note + +This project is designed to work with the specified GPIO pins on an NXP i.MX8M Plus board. Always ensure to follow the correct setup and connection procedures to avoid any hardware issues. \ No newline at end of file diff --git a/samples/NXP/SPITemperatureAndSensor/README.md b/samples/NXP/SPITemperatureAndSensor/README.md new file mode 100644 index 000000000..73952c166 --- /dev/null +++ b/samples/NXP/SPITemperatureAndSensor/README.md @@ -0,0 +1,31 @@ +# NXP SPI Sample Project + +This project is a C# application developed in Visual Studio, designed to validate the SPI bus on the NXP i.MX8M Plus board. It communicates with a BMP280 pressure and temperature sensor using the SPI protocol. + +## Features + +- **SPI Communication**: The application uses the SPI protocol for communication with the BMP280 pressure and temperature sensor. + +- **Sensor Initialization**: The BMP280 sensor is initialized by powering on and enabling the pressure and temperature channels. + +- **Sensor Data Reading**: The application reads data from the sensor every 500 milliseconds and updates the user interface with the new sensor values. + +## Code Structure + +The `MainPage` class is the core of the application. It includes methods for initializing the SPI device, initializing the sensor, reading data from the sensor, and updating the user interface with the sensor values. + +## Usage + +To run this project, ensure that Visual Studio is installed on your machine. Open the `.sln` file in Visual Studio, build the solution, and run the project. + +To run this application on an NXP device, ensure that the NXP device is on the same network as your host machine and that Visual Studio remote tools are installed. Build this application for ARM64, set the debug mode to 'remote debug', and set the target machine to the IP address of the NXP device. + +Please note that you will need to connect the BMP280 sensor to a breadboard, and use male-to-female jumper cables to connect the corresponding ports on the sensor to the NXP board. The NXP Plus board's 40-pin I/O connector is labeled with the same names. + +## Key Aspects of the Code + +A crucial aspect of this code is the use of the friendly name 'SPI2' to access the SPI bus. This is specific to NXP - any other name would not work, as the SPI bus identifier is unique to the hardware and software configuration of the NXP device. The line `SpiDevice.GetDeviceSelector("SPI2")` in the `InitSPI` method is particularly important as it uses the 'SPI2' name to access the SPI bus on the NXP device. + +## Note + +This project is designed to work with a BMP280 pressure and temperature sensor. You will need to have this sensor connected to your machine in order to run the project. Always ensure to follow the correct setup and connection procedures to avoid any hardware issues. \ No newline at end of file diff --git a/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor.sln b/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor.sln new file mode 100644 index 000000000..7760cf41e --- /dev/null +++ b/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor.sln @@ -0,0 +1,51 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.7.34009.444 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SPITemperatureAndSensor", "SPITemperatureAndSensor\SPITemperatureAndSensor.csproj", "{6163540C-52CA-4009-8F76-409D15529E26}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|ARM = Debug|ARM + Debug|ARM64 = Debug|ARM64 + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|ARM = Release|ARM + Release|ARM64 = Release|ARM64 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6163540C-52CA-4009-8F76-409D15529E26}.Debug|ARM.ActiveCfg = Debug|ARM + {6163540C-52CA-4009-8F76-409D15529E26}.Debug|ARM.Build.0 = Debug|ARM + {6163540C-52CA-4009-8F76-409D15529E26}.Debug|ARM.Deploy.0 = Debug|ARM + {6163540C-52CA-4009-8F76-409D15529E26}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {6163540C-52CA-4009-8F76-409D15529E26}.Debug|ARM64.Build.0 = Debug|ARM64 + {6163540C-52CA-4009-8F76-409D15529E26}.Debug|ARM64.Deploy.0 = Debug|ARM64 + {6163540C-52CA-4009-8F76-409D15529E26}.Debug|x64.ActiveCfg = Debug|x64 + {6163540C-52CA-4009-8F76-409D15529E26}.Debug|x64.Build.0 = Debug|x64 + {6163540C-52CA-4009-8F76-409D15529E26}.Debug|x64.Deploy.0 = Debug|x64 + {6163540C-52CA-4009-8F76-409D15529E26}.Debug|x86.ActiveCfg = Debug|x86 + {6163540C-52CA-4009-8F76-409D15529E26}.Debug|x86.Build.0 = Debug|x86 + {6163540C-52CA-4009-8F76-409D15529E26}.Debug|x86.Deploy.0 = Debug|x86 + {6163540C-52CA-4009-8F76-409D15529E26}.Release|ARM.ActiveCfg = Release|ARM + {6163540C-52CA-4009-8F76-409D15529E26}.Release|ARM.Build.0 = Release|ARM + {6163540C-52CA-4009-8F76-409D15529E26}.Release|ARM.Deploy.0 = Release|ARM + {6163540C-52CA-4009-8F76-409D15529E26}.Release|ARM64.ActiveCfg = Release|ARM64 + {6163540C-52CA-4009-8F76-409D15529E26}.Release|ARM64.Build.0 = Release|ARM64 + {6163540C-52CA-4009-8F76-409D15529E26}.Release|ARM64.Deploy.0 = Release|ARM64 + {6163540C-52CA-4009-8F76-409D15529E26}.Release|x64.ActiveCfg = Release|x64 + {6163540C-52CA-4009-8F76-409D15529E26}.Release|x64.Build.0 = Release|x64 + {6163540C-52CA-4009-8F76-409D15529E26}.Release|x64.Deploy.0 = Release|x64 + {6163540C-52CA-4009-8F76-409D15529E26}.Release|x86.ActiveCfg = Release|x86 + {6163540C-52CA-4009-8F76-409D15529E26}.Release|x86.Build.0 = Release|x86 + {6163540C-52CA-4009-8F76-409D15529E26}.Release|x86.Deploy.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D459D964-62D0-4D03-B0C6-47737D02147A} + EndGlobalSection +EndGlobal diff --git a/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/App.xaml b/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/App.xaml new file mode 100644 index 000000000..8546f4222 --- /dev/null +++ b/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/App.xaml @@ -0,0 +1,7 @@ + + + diff --git a/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/App.xaml.cs b/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/App.xaml.cs new file mode 100644 index 000000000..75fe5ac41 --- /dev/null +++ b/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/App.xaml.cs @@ -0,0 +1,100 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices.WindowsRuntime; +using Windows.ApplicationModel; +using Windows.ApplicationModel.Activation; +using Windows.Foundation; +using Windows.Foundation.Collections; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Controls.Primitives; +using Windows.UI.Xaml.Data; +using Windows.UI.Xaml.Input; +using Windows.UI.Xaml.Media; +using Windows.UI.Xaml.Navigation; + +namespace SPITemperatureAndSensor +{ + ///

+ /// Provides application-specific behavior to supplement the default Application class. + /// + sealed partial class App : Application + { + /// + /// Initializes the singleton application object. This is the first line of authored code + /// executed, and as such is the logical equivalent of main() or WinMain(). + /// + public App() + { + this.InitializeComponent(); + this.Suspending += OnSuspending; + } + + /// + /// Invoked when the application is launched normally by the end user. Other entry points + /// will be used such as when the application is launched to open a specific file. + /// + /// Details about the launch request and process. + protected override void OnLaunched(LaunchActivatedEventArgs e) + { + Frame rootFrame = Window.Current.Content as Frame; + + // Do not repeat app initialization when the Window already has content, + // just ensure that the window is active + if (rootFrame == null) + { + // Create a Frame to act as the navigation context and navigate to the first page + rootFrame = new Frame(); + + rootFrame.NavigationFailed += OnNavigationFailed; + + if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) + { + //TODO: Load state from previously suspended application + } + + // Place the frame in the current Window + Window.Current.Content = rootFrame; + } + + if (e.PrelaunchActivated == false) + { + if (rootFrame.Content == null) + { + // When the navigation stack isn't restored navigate to the first page, + // configuring the new page by passing required information as a navigation + // parameter + rootFrame.Navigate(typeof(MainPage), e.Arguments); + } + // Ensure the current window is active + Window.Current.Activate(); + } + } + + /// + /// Invoked when Navigation to a certain page fails + /// + /// The Frame which failed navigation + /// Details about the navigation failure + void OnNavigationFailed(object sender, NavigationFailedEventArgs e) + { + throw new Exception("Failed to load Page " + e.SourcePageType.FullName); + } + + /// + /// Invoked when application execution is being suspended. Application state is saved + /// without knowing whether the application will be terminated or resumed with the contents + /// of memory still intact. + /// + /// The source of the suspend request. + /// Details about the suspend request. + private void OnSuspending(object sender, SuspendingEventArgs e) + { + var deferral = e.SuspendingOperation.GetDeferral(); + //TODO: Save application state and stop any background activity + deferral.Complete(); + } + } +} diff --git a/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/Assets/LockScreenLogo.scale-200.png b/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/Assets/LockScreenLogo.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..735f57adb5dfc01886d137b4e493d7e97cf13af3 GIT binary patch literal 1430 zcmaJ>TTC2P7~aKltDttVHYH6u8Io4i*}3fO&d$gd*bA_<3j~&e7%8(eXJLfhS!M@! zKrliY>>6yT4+Kr95$!DoD(Qn-5TP|{V_KS`k~E6(LGS@#`v$hQo&^^BKsw3HIsZBT z_y6C2n`lK@apunKojRQ^(_P}Mgewt$(^BBKCTZ;*xa?J3wQ7~@S0lUvbcLeq1Bg4o zH-bvQi|wt~L7q$~a-gDFP!{&TQfc3fX*6=uHv* zT&1&U(-)L%Xp^djI2?~eBF2cxC@YOP$+9d?P&h?lPy-9M2UT9fg5jKm1t$m#iWE{M zIf%q9@;fyT?0UP>tcw-bLkz;s2LlKl2qeP0w zECS7Ate+Awk|KQ+DOk;fl}Xsy4o^CY=pwq%QAAKKl628_yNPsK>?A>%D8fQG6IgdJ ztnxttBz#NI_a@fk7SU`WtrpsfZsNs9^0(2a z@C3#YO3>k~w7?2hipBf{#b6`}Xw1hlG$yi?;1dDs7k~xDAw@jiI*+tc;t2Lflg&bM)0!Y;0_@=w%`LW^8DsYpS#-bLOklX9r?Ei}TScw|4DbpW%+7 zFgAI)f51s}{y-eWb|vrU-Ya!GuYKP)J7z#*V_k^Xo>4!1Yqj*m)x&0L^tg3GJbVAJ zJ-Pl$R=NAabouV=^z_t;^K*0AvFs!vYU>_<|I^#c?>>CR<(T?=%{;U=aI*SbZADLH z&(f2wz_Y0??Tf|g;?|1Znw6}6U43Q#qNRwv1vp9uFn1)V#*4p&%$mP9x&15^OaBiDS(XppT|z^>;B{PLVEbS3IFYV yGvCsSX*m literal 0 HcmV?d00001 diff --git a/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/Assets/SplashScreen.scale-200.png b/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/Assets/SplashScreen.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..023e7f1feda78d5100569825acedfd213a0d84e9 GIT binary patch literal 7700 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 literal 0 HcmV?d00001 diff --git a/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/Assets/Square150x150Logo.scale-200.png b/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/Assets/Square150x150Logo.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..af49fec1a5484db1d52a7f9b5ec90a27c7030186 GIT binary patch literal 2937 zcma)84OCO-8BSud5)jwMLRVKgX(S?$n?Ld|vrsm<$CF7)&zTbyy1FE5bU`Q17MRv`9ue$;R(@8kR;#vJ*IM0>cJIAOte!d7oRgdH zd%ySjdB6L9=gX^A6)VzH7p2l@v~3zJAMw|DFy#^)F@@F*`mqUn=Il>l)8_+ab;nOW{%+iPx z+s{Eu|&pIs)Z7{La9~?xKfyl z#43?gjEL15d4WbOZo#SiP%>DB^+BcnJ=7dHEe;r#G=tuw|ka z%q@}##Uh7;tc%L_64m(kHtw74ty%BJMb)_1)#S0j`)F8_1jF7vScpsnH=0V19bO8y zR`0SjIdCUo&=>JwMQF8KHA<{ODHTiQh}0^@5QRmCA?gOH6_H3K^-_sNB^RrdNuK-R zOO*vOrKCVvDwgUck`kF(E7j{I#iiN;b*ZdCt4m@HPA`EuEqGGf4%!K<;(=I=&Vyrw z%TwcWtxa}8mCZ%Cyf&ActJ6_$ox5z6-D!0-dvnRx6t7y3d+h6QYpKWO;8OdnvERo7 zuEf>ih5`wqY)~o@OeVt-wM?Q!>QzdGRj!bz6fzYrfw$hZfAKzr2-M+D+R>}~oT574c;_3zquHcElqKIsryILt3g8n3jcMb+j?i?-L3FpZJ z2WRVBRdDPc+G5aaYg#5hpE+6nQ|(VSoxT3|biF;BUq#==-27Xi=gihDPYP$7?=9cP zYKE$jeQ|3~_L0VG-(F~2ZPyD0=k{J4Q~h(t__{-mz_w8{JDY9{`1ouzz!Vr5!ECdE z6U~O1k8c}24V7~zzXWTV-Pe4)y}wQJS&q%H5`Fo_f_JvIU489aCX$;P`u#!I-=^4ijC2{&9!O&h>mi?9oYD=GC#%)6{GzN6nQYw+Fal50!#x^asjBBR50i`+mho*ttoqV)ubM2KD9S~k7+FR4>{29?6 z{!l6kDdyTN0YJ9LgkPWeXm|gyi@zM3?0@{&pXT12w|78&W-q!RRF)&iLCEZVH<|fR zN0fr2^t8H(>L?>K#>^+jWROLral(Qy-xoBq1U7A&DV||wClb)Otd9?(gZ|8znMF}D zf<1haWz^s0qgecz;RFGt0C-B4g`jNGHsFU+;{<%t65v^sjk^h$lmWn#B0#_)9ij&d z-~lc`A)YYExi^7sBuPM^Y|wA2g*5?`K?#7tzELQYNxGo$UB$4J8RJp1k(8Jj+~hMT zlN~>M@KTTh^--8y3PK_NZ@AC!{PT=CziBzGd+wTJ^@icH!Bd}%)g8V)%K?|c&WTUk zy}qv1C%(fjRoZ4ozC3{O%@5?)XzH35zHns$pgU*Q?fj4v?fp1Qbm+j;3l;9jam9Da zXVcKjPlQ73x78QPu|Ffm6x?`~e3oD=gl=4kYK?={kD5j~QCXU)`HSdduNNENzA*2$ zOm3PzF!lN5e*06-f1Uot67wY#{o-S1!KZ7E=!~7ynnk9_iJR#kFoNbAOT#^2Gd17F zMmvU6>lndZQGd|ax9kUoXXO+$N?|j@6qpsF&_j7YXvwo_C{JpmLw5&#e6k>atv%es z5)7r*Wvv_JkUpT}M!_o!nVlEk1Zbl=a*2hQ*<|%*K1Glj^FcF`6kTzGQ3lz~2tCc@ z&x|tj;aH&1&9HwcJBcT`;{?a+pnej;M1HO(6Z{#J!cZA04hnFl;NXA+&`=7bjW_^o zfC40u3LMG?NdPtwGl>Tq6u}*QG)}-y;)lu-_>ee3kibW(69n0$0Zy!}9rQz%*v1iO zT9_H>99yIrSPYVy6^);rR}7Yo=J_T@hi+qhTZXnVWyf;JDYm5#eYLTxr*?kiNn!+Y zQ+LUkBafNJ#rH#C(?d5^;gw9o#%daEI{mA*LHPIHPU`#|H$hD zwm>0&+kahQ)E#%~k>&5@&#Vg82H?s%71=)(soi@174pi9--2{w{1$}Sz4zGn3Du&x bht0Iza^2ykEt4(epJ78uh5nDlX8(TxzDYwP literal 0 HcmV?d00001 diff --git a/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/Assets/Square44x44Logo.scale-200.png b/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/Assets/Square44x44Logo.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..ce342a2ec8a61291ba76c54604aea7e9d20af11b GIT binary patch literal 1647 zcmaJ?eM}Q)7(e+G1Q(|`V9JhTI2>MkceK4;p;PR&$Pi?ejk3YQ_3o`S&|W_dsOZ8# zWPTt69g`t$ab`0cj-Y0yiBSOqmd)tG7G(}M5aP0_%&9TijB#&)I{zSE^4@#z^FF`l z`8{8`o%wlL(UI|y2!cdsuVamHH~H86F!*-15em4)NqUpCQM5?aoC_eCf@lV4wvF2a zjDQn1JBL69f&@2M3rvzJcfE!eZ8FZUBlFlC5RD)it33{mF9#B82AiyQE%w)`vlwa> zv{<1sm&kSKK$&%2jSFn7$t&P%%6Ue>R=EAnG8N7fqynWG8L3p!4801a;8{+nliO(qd(jNJ_?+9W3#hLIDLoT6~3fx9=`CC-D}-AMrpEO7HK zt3$GicGPc?GmDjy7K2P@La;eu4!$zWCZ`ym{Z$b zu-O6RM&K4JT|BIZB`E-gxqG%FzanI#+2FFmqHqXG7yxWB=w55RGOM)$xMb(>kSNR z2w=1AZi%z=AmG~yea~XaXJR!v7vLn(RUnELfiB1|6D84ICOS}^Zo2AdN}<&*h}G_u z{xZ!(%>tLT3J3<5XhWy-tg+6)0nmUUENLW8TWA{R6bgVd3X;anYFZ^IRis*_P-C-r z;i>%1^eL3UI2-{w8nuFFcs0e~7J{O2k^~Ce%+Ly4U?|=!0LH=t6()xi<^I-rs+9sF z*q{E-CxZbGPeu#a;XJwE;9S1?#R&uns>^0G3p`hEUF*v`M?@h%T%J%RChmD|EVydq zmHWh*_=S%emRC*mhxaVLzT@>Z2SX0u9v*DIJ@WC^kLVdlGV6LpK$KIrlJqc zpJ921)+3JJdTx|<`G&kXpKkjGJv=76R`yYIQ{#c-`%+`#V(7}Q;&@6U8!Td1`d;?N z_9mnI#?AA}4J!r)LN4!E-@H5eXauuB7TOawS>Y|{-P?NNx-lq+z1W-+y(;39P&&LP zL{N80?&=C*qKmdA^moMZRuPcD!B<*mq$ch=0Cnlitw#txRWhb3%TQvPqjkC`F69G4b! ze7z9MZ#+;_#l?H37UqUhDFb^l&s2{oM$3I0o^Q!yx;;V)QmCMo)Tb_ui|mit8MS?U zm##6$sZZ1$@|s%?l@>4Z<*Q}sRBSKMhb4I{e5LdEhsHIHTe8Bod5c>6QtT>$XgUBz z6MK`kO$=jmt@FqggOhJ5j~e@ygRbG;<{Vu)*+nn9aQeo0;$#j;|MS=S$&L?BeV25z xs3B`@=#`5TF{^6(A1rvdY@|-RtQ|iS5{tyX+wH?;n8E)G$kykv-D^wh{{!TZT%7;_ literal 0 HcmV?d00001 diff --git a/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/Assets/Square44x44Logo.targetsize-24_altform-unplated.png b/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/Assets/Square44x44Logo.targetsize-24_altform-unplated.png new file mode 100644 index 0000000000000000000000000000000000000000..f6c02ce97e0a802b85f6021e822c89f8bf57d5cd GIT binary patch literal 1255 zcmaJ>TWs4@7*5+{G#S+&C!qC#> zf>5N3P6jO*Cz>ug*(_DmW=)kea&m$gZ^+nyiF`;j%w@}y8)>p*SH}C`m?DXeieF2U zyQHecc_L%Gh!7GMt+hG06y;+|p4>m~}PjA}rKViGiEnn7G0ZO<>G|7q;2?NwGCM3s?eued6%hd$B+ z*kQJ{#~$S=DFE(%=E+UkmlEI*%3llUf~8Ja9YU1Vui0IbGBkW_gHB%Rd&!!ioX zs40O?i9I{};kle7GMvE7(rk`la=gTI)47=>%?q@^iL-nUo3}h4S}N-KHn8t5mVP8w z&bSErwp+37 zNJJ8?a|{r5Q3R0Z5s-LB1WHOwYC@7pCHWND#cL1cZ?{kJ368_*(UDWUDyb<}0y@o# zfMF016iMWPCb6obAxT$JlB6(2DrlXDTB&!0`!m??4F(qWMhjVZo?JXQmz`1*58Z=& zcDmB|S-E@j?BoFGix0flckqdS4jsPNzhfWyWIM98GxcLs89C(~dw%$_t;JjX-SD}E zfiGV;{8Q%8r}w9x>EEigW81>`kvnU@pK)4+xk9@+bNj9L!AAZ@SZ@q|)&BmY3+HZx zul~BeG4|}-;L%cHViQGQX?^zFfO0&#cHwel=d`lH9sJ-@Sl@n*(8J2>%Ac`IxyY?Q z{=GhWvC#gu-~Ia7*n{=+;qM?Ul_wy1+u7ho;=`>EwP^g~R@{unBds`!#@}tluZQpS zm)M~nYEifJWJGx?_6DcTy>#uh%>!H9=hb^(v`=m3F1{L>db=<5_tm+_&knAQ2EU$s Mu9UqpbNZeC0BbUo^Z)<= literal 0 HcmV?d00001 diff --git a/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/Assets/StoreLogo.png b/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/Assets/StoreLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..7385b56c0e4d3c6b0efe3324aa1194157d837826 GIT binary patch literal 1451 zcmaJ>eN5D57_Z|bH;{0+1#mbl)eTU3{h)Wf7EZV?;HD@XL@{B`Ui%(2aMxQ~xdXSv z5nzWi(LW)U2=Vc-cY@s7nPt{i0hc6!7xN4NNHI#EQl>YNBy8l4%x9gr_W-j zEZMQmmTIy(>;lblRfh`dIyTgc9W5d!VP$L4(kKrN1c5G~(O_#xG zAJCNTstD^5SeXFB+&$h=ToJP2H>xr$iqPs-#O*;4(!Fjw25-!gEb*)mU}=)J;Iu>w zxK(5XoD0wrPSKQ~rbL^Cw6O_03*l*}i=ydbu7adJ6y;%@tjFeXIXT+ms30pmbOP%Q zX}S;+LBh8Tea~TSkHzvX6$rYb)+n&{kSbIqh|c7hmlxmwSiq5iVhU#iEQ<>a18|O^Sln-8t&+t`*{qBWo5M?wFM(JuimAOb5!K#D}XbslM@#1ZVz_;!9U zpfEpLAOz=0g@bd6Xj_ILi-x^!M}73h^o@}hM$1jflTs|Yuj9AL@A3<-?MV4!^4q`e z)fO@A;{9K^?W?DbnesnPr6kK>$zaKo&;FhFd(GYFCIU^T+OIMb%Tqo+P%oq(IdX7S zf6+HLO?7o0m+p>~Tp5UrXWh!UH!wZ5kv!E`_w)PTpI(#Iw{AS`gH4^b(bm^ZCq^FZ zY9DD7bH}rq9mg88+KgA$Zp!iWncuU2n1AuIa@=sWvUR-s`Qb{R*kk(SPU^`$6BXz8 zn#7yaFOIK%qGxyi`dYtm#&qqox0$h=pNi#u=M8zUG@bpiZ=3sT=1}Trr}39cC)H|v zbL?W)=&s4zrh)7>L(|cc%$1#!zfL?HjpeP%T+x_a+jZ16b^iKOHxFEX$7d|8${H-* zIrOJ5w&i$>*D>AKaIoYg`;{L@jM((Kt?$N$5OnuPqVvq**Nm}(f0wwOF%iX_Pba;V z;m@wxX&NcV3?<1+u?A{y_DIj7#m3Af1rCE)o`D&Y3}0%7E;iX1yMDiS)sh0wKi!36 zL!Wmq?P^Ku&rK~HJd97KkLTRl>ScGFYZNlYytWnhmuu|)L&ND8_PmkayQb{HOY640 bno1(wj@u8DCVuFR|31B*4ek@pZJqxCDDe1x literal 0 HcmV?d00001 diff --git a/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/Assets/Wide310x150Logo.scale-200.png b/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/Assets/Wide310x150Logo.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..288995b397fdbef1fb7e85afd71445d5de1952c5 GIT binary patch literal 3204 zcmbVPeQXow8NYmBd90>}0NP?GhXW~VaeThm=a0tV#EwJMI!)6M3}|c4_Bl3=Kd>G0 z(GHx1wl<7(tP?FsOQkTilSo*iIvF%uArExJ73~P zSv1xEy!U(Wd4A9D`FQV@W3@F^qJ@PEF$@z`Z!*BbFsS(^?B zyiAzJ+q})bkgiQHWqEb*jJD-coHYr1^iocg)l!Qa{Xqs-l~6J}p-|##ZHYofskQ3$ zI0;xzXyhazBeXhIsg5A=%ufo@f)1yy&ScKS0;HF^!r_2UE^lpZEom(+@duma3awTv zCrCL-%D_SvYWIcdHkmI}#50(fkUi)Qgx!80ju>g1za^}ff>JI8Z@^-iCiaCgg@TgF z+vtE?Q9{VQUX&MW9SYYmGcxA14%N2@7FwBTD4N<(2{nWgV8$e3?-F=L^&FrtWn~(U_Q~~^uYiyeY6-KoTnfh9AWz@ zIKje0)u!_Lw)E}G!#kEfwKVdNt(UAf9*f>tEL_(=xco-T%jTi@7YlC3hs2ik%Le0H ztj}RTeCF(5mwvi3_56>-yB?l;J>-1%!9~=fs|QcNG3J~a@JCu`4SB460s0ZO+##4fFUSGLcj_ja^fL4&BKALfb#$6$O?>P@qx2Agl^x0i&ugt zsy5Pyu=()`7HRMG3IB7F1@`_ z+-!J%#i6e^U$e#+C%Q>_qVRzWRsG^W_n+@OcX@vzI&z;mzHNb!GQ?LWA(wtpqHqTM z1OFw_{Zn?fD)p)`c`kOgv{de=v@suGRqY{N^U7gI1VF3*F=obwaXI6ob5__Yn zVTguS!%(NI09J8x#AO_aW!9W7k*UvB;IWDFC3srwftr{kHj%g)fvnAm;&h_dnl~

MY- zf+K}sCe8qU6Ujs`3ua{U0Of$R_gVQBuUA za0v=mu#vIOqiiAZOr&h*$WyOw&k-xr$;G4Ixa!#TJNr>95(h>l%)PUy4p+^SgR(uR zta%k*?ny-+nAr8spEk1fo{J4i!b^Fia`N{_F6@zidA2ZTTrjl#^5Z-2KfB@Cu}l9s z(*|Z2jc?p~vn2f)3y9i*7zJV1L{$?|&q)4oaT;uXi6>1GkRXVTOzAz(RHEmr=eFIi z`}<>-Q?K0GN8!IYxeP1XKXO+jsJbp~o^);Bc;%b7Flpe7;1`Ny@3r7ZR;?R)aJt8C ziNlEC<@3f_lIV4TwV}&e;D!Ee5_|e#g0LUh=5vmYWYm7&2h*M>QPKvGh9-)wfMMW3 z8J9b%1k7dzPzO0_NGQy92BZ^FR6R~6;^6?lqO;-QUP4BY%cG%3vEhbm#>4vIhPBh3 z-+pZGjh$x%Hp{?=FHsMp0&wNPlj00us{&`1ZOZTqs8%4X&xH=UDr*xyBW(Zp&Em94 zf)ZSfn#yg0N)>!1kWdkqJ^S*z0FF5|fj&qcE#Na|%OY0$uO>!&hP+1ywfD_WXk@4J(?MBftK7>$Nvqh@tDuarN%PrTLQ2Uzysx>UV=V zk^RrDSvdQ?0;=hY67EgII-f4`t=+i*yS=Y~!XlqIy_4x&%+OdfbKOFPXS2X5%4R{N z$SQMX^AK6(fA + + + + + + diff --git a/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/MainPage.xaml.cs b/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/MainPage.xaml.cs new file mode 100644 index 000000000..d0c9267e8 --- /dev/null +++ b/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/MainPage.xaml.cs @@ -0,0 +1,98 @@ +using System; +using Windows.Devices.Spi; +using Windows.Devices.Enumeration; +using System.Threading.Tasks; +using Windows.UI.Xaml.Controls; +using System.Diagnostics; + +namespace SPITemperatureAndSensor +{ + public sealed partial class MainPage : Page + { + private SpiDevice SpiDevice; + private BMP280 BMP280Sensor; + + public MainPage() + { + this.InitializeComponent(); + InitSPI(); + } + + private async void InitSPI() + { + try + { + var settings = new SpiConnectionSettings(0); // Use chip select line 0 + settings.ClockFrequency = 500000; // 500KHz clock rate + settings.Mode = SpiMode.Mode0; // SPI mode 0 + + string spiQuery = SpiDevice.GetDeviceSelector("SPI2"); // Find the selector string for the SPI bus controller + var deviceInfo = await DeviceInformation.FindAllAsync(spiQuery); // Find the SPI bus controller device with our selector string + SpiDevice = await SpiDevice.FromIdAsync(deviceInfo[0].Id, settings); // Create an SpiDevice with our bus controller and SPI settings + + BMP280Sensor = new BMP280(SpiDevice); + + ReadSensor(); + } + catch (Exception ex) + { + throw new Exception("SPI Initialization Failed", ex); + } + } + + private async void ReadSensor() + { + while (true) + { + double temperature = BMP280Sensor.ReadTemperature(); + //double pressure = BMP280Sensor.ReadPressure(); + + TemperatureTextBlock.Text = $"Temperature: {temperature} °C"; + //PressureTextBlock.Text = $"Pressure: {pressure} hPa"; + + await Task.Delay(1000); // Wait for one second + } + } + } + + public class BMP280 + { + private SpiDevice SpiDevice; + + public BMP280(SpiDevice spiDevice) + { + this.SpiDevice = spiDevice; + } + + public double ReadTemperature() + { + byte[] readBuffer = new byte[3]; // Buffer to hold read data + byte[] writeBuffer = new byte[] { 0xFA }; // Command to read temperature + + SpiDevice.Write(writeBuffer); // Send the command + SpiDevice.Read(readBuffer); // Read the response + + // Convert the data to temperature in degrees Celsius + int rawTemp = readBuffer[1] << 8 | readBuffer[2]; + double temp = rawTemp / 16.0; + + return temp; + } + + public double ReadPressure() + { + byte[] readBuffer = new byte[3]; // Buffer to hold read data + byte[] writeBuffer = new byte[] { 0xF7 }; // Command to read pressure + + SpiDevice.Write(writeBuffer); // Send the command + SpiDevice.Read(readBuffer); // Read the response + + // Convert the data to pressure in hPa + int rawPressure = readBuffer[1] << 8 | readBuffer[2]; + double pressure = rawPressure / 16.0; + + return pressure; + } + } + +} diff --git a/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/Package.appxmanifest b/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/Package.appxmanifest new file mode 100644 index 000000000..99379a041 --- /dev/null +++ b/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/Package.appxmanifest @@ -0,0 +1,52 @@ + + + + + + + + + + SPITemperatureAndSensor + jayuppaluri + Assets\StoreLogo.png + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/Properties/AssemblyInfo.cs b/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..31f302cf1 --- /dev/null +++ b/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +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("SPITemperatureAndSensor")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("SPITemperatureAndSensor")] +[assembly: AssemblyCopyright("Copyright © 2023")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 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")] +[assembly: ComVisible(false)] \ No newline at end of file diff --git a/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/Properties/Default.rd.xml b/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/Properties/Default.rd.xml new file mode 100644 index 000000000..af00722cd --- /dev/null +++ b/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/Properties/Default.rd.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/SPITemperatureAndSensor.csproj b/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/SPITemperatureAndSensor.csproj new file mode 100644 index 000000000..b322afb30 --- /dev/null +++ b/samples/NXP/SPITemperatureAndSensor/SPITemperatureAndSensor/SPITemperatureAndSensor.csproj @@ -0,0 +1,168 @@ + + + + + Debug + x86 + {6163540C-52CA-4009-8F76-409D15529E26} + AppContainerExe + Properties + SPITemperatureAndSensor + SPITemperatureAndSensor + en-US + UAP + 10.0.19041.0 + 10.0.17763.0 + 14 + 512 + {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + true + false + + + true + bin\x86\Debug\ + DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP + ;2008 + full + x86 + false + prompt + true + + + bin\x86\Release\ + TRACE;NETFX_CORE;WINDOWS_UWP + true + ;2008 + pdbonly + x86 + false + prompt + true + true + + + true + bin\ARM\Debug\ + DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP + ;2008 + full + ARM + false + prompt + true + + + bin\ARM\Release\ + TRACE;NETFX_CORE;WINDOWS_UWP + true + ;2008 + pdbonly + ARM + false + prompt + true + true + + + true + bin\ARM64\Debug\ + DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP + ;2008 + full + ARM64 + false + prompt + true + true + + + bin\ARM64\Release\ + TRACE;NETFX_CORE;WINDOWS_UWP + true + ;2008 + pdbonly + ARM64 + false + prompt + true + true + + + true + bin\x64\Debug\ + DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP + ;2008 + full + x64 + false + prompt + true + + + bin\x64\Release\ + TRACE;NETFX_CORE;WINDOWS_UWP + true + ;2008 + pdbonly + x64 + false + prompt + true + true + + + PackageReference + + + + App.xaml + + + MainPage.xaml + + + + + + Designer + + + + + + + + + + + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + + 6.2.14 + + + + 14.0 + + + + \ No newline at end of file From d054145614f565bd4507c9660112f0543aa5cfac Mon Sep 17 00:00:00 2001 From: Jay Uppaluri Date: Thu, 7 Dec 2023 10:15:39 -0800 Subject: [PATCH 4/4] minor fixes to account for updated GPIO indexes --- samples/NXP/NXPGPIOSample/NXPGPIOSample/MainPage.xaml | 9 ++++++--- samples/NXP/NXPGPIOSample/NXPGPIOSample/MainPage.xaml.cs | 2 +- samples/NXP/NXPI2CSample/NXPI2CSample/MainPage.xaml.cs | 6 +++--- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/samples/NXP/NXPGPIOSample/NXPGPIOSample/MainPage.xaml b/samples/NXP/NXPGPIOSample/NXPGPIOSample/MainPage.xaml index cfbbe3fcf..24dd1620b 100644 --- a/samples/NXP/NXPGPIOSample/NXPGPIOSample/MainPage.xaml +++ b/samples/NXP/NXPGPIOSample/NXPGPIOSample/MainPage.xaml @@ -8,8 +8,11 @@ mc:Ignorable="d" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> - - - + + + + + + diff --git a/samples/NXP/NXPGPIOSample/NXPGPIOSample/MainPage.xaml.cs b/samples/NXP/NXPGPIOSample/NXPGPIOSample/MainPage.xaml.cs index f82dfd734..161594b6c 100644 --- a/samples/NXP/NXPGPIOSample/NXPGPIOSample/MainPage.xaml.cs +++ b/samples/NXP/NXPGPIOSample/NXPGPIOSample/MainPage.xaml.cs @@ -11,7 +11,7 @@ namespace NXPGPIOSample { public sealed partial class MainPage : Page { - private int[] LED_PINS = new int[] { 155, 154, 147, 146, 141, 140, 139, 138, 137, 136, 88, 87, 86, 85, 84, 83 }; + private int[] LED_PINS = new int[] {147, 146, 141, 140, 139, 138, 137, 136, 87, 86, 85, 84, 83 }; private GpioPin[] pins; private GpioPinValue[] pinValues; private DispatcherTimer timer; diff --git a/samples/NXP/NXPI2CSample/NXPI2CSample/MainPage.xaml.cs b/samples/NXP/NXPI2CSample/NXPI2CSample/MainPage.xaml.cs index 41d1c2846..4a04478e3 100644 --- a/samples/NXP/NXPI2CSample/NXPI2CSample/MainPage.xaml.cs +++ b/samples/NXP/NXPI2CSample/NXPI2CSample/MainPage.xaml.cs @@ -10,7 +10,7 @@ namespace NXPI2CSample { public sealed partial class MainPage : Page { - private const string I2C_CONTROLLER_NAME = "I2C3"; + private const string I2C_CONTROLLER_NAME = "I2C3"; private const int TCS34725_ADDRESS = 0x29; private I2cDevice tcs34725; @@ -107,10 +107,10 @@ private void InitialiseSensor() write8(TCS34725_ENABLE, TCS34725_ENABLE_PON | TCS34725_ENABLE_AEN); // Integration Time - // write8(TCS34725_ATIME, TCS34725_INTEGRATIONTIME_700MS); + // write8(TCS34725_ATIME, TCS34725_INTEGRATIONTIME_700MS); // Gain - // write8(TCS34725_CONTROL, TCS34725_GAIN_60X); + // write8(TCS34725_CONTROL, TCS34725_GAIN_60X); write8(0x80, 0x03); }