Tādas programmas izveide, kas izmanto mobilos sensorus
Izmantojot sensorus, varat programmās pievienot bagātīgāku funkcionalitāti, izmantojot tālruņa iespējas. Šajā rakstā ir informācija par sensoru lietošanu mobilajā ierīcē programmā Power Apps.
Lai to paveiktu, jūs veidosiet programmas paraugu, kurā ir divi ekrāni. Pirmajā ekrānā tiks parādīts pašreizējais kompasa virsraksts, platuma, garuma, augstuma grādi, kā arī var pārbaudīt NFC tagus, lai iegūtu teksta informāciju. Otrajā ekrānā tiks rādīts, kā attēlot akselerometra datus, lai izveidotu ierīces leņķi pa X un Y asīm.
Lai iestatītu scenāriju aiz pirmā ekrāna, iedomājieties, ka veidojat lietotni uz NFC balstītu objektu meklēšanu. Katrs dalībnieks izmantos šo programmu, lai pārbaudītu NFC tagu, kas nodrošinās viņiem kompasa virsrakstu, platumu un garumu, kas novirzīs uz nākamo mērķi. Šajā galapunktā dalībnieks skenēs citu tagu un atkārtos procesu, līdz sasniegs spēles beigas.
Attiecībā uz otro ekrānu iedomājieties, ka jums nepieciešams rīks, lai aptuveni izmērītu leņķus. Otrajā ekrānā dalībnieks varēs novietot vai turēt savu ierīci uz virsmas, un iegūt leņķus uz ierīces X un Y ass, kā arī skatīt šo skatu vizuālu attēlojumu.
Noskatieties šo videoklipu, lai uzzinātu, kā izveidot programmu, kurā tiek izmantoti mobilie sensori:
Priekšnosacījumi
Šai programmai var izmantot jebkuru Power Apps licences līmeni, jo netiek lietoti datu savienojumi.
Būs nepieciešama mobilā ierīce, piemēram, mobilais tālrunis vai planšetdators ar GPS, kā arī akselerometra iespējas, jo lielākajai daļai datoru var nebūt nepieciešamo sensoru.
NFC skenēšanas līdzeklim ir nepieciešama NFC spējīga ierīce. Tiek arī pieņemts, ka NFC tagi, kas tiek skenēti, ir iepriekš konfigurēti, lai iegūtu teksta vērtības šādā parauga formātā:
"<b>Heading: </b> 80 degrees <br> <b>Latitude: </b> 44.4604788 <br> <b>Longitude: </b> -110.82813759"
Tādējādi teksts tiks nodrošināts HTML draudzīgā programmas formātā. NFC tagu iestatīšana pārsniedz šī raksta darbības jomu, un NFC elementus, ja nepieciešams, var ignorēt; primārais fokuss ir uz mobilos sensoru izmantošanu programmā Power Apps.
Galvenes un HTML teksta pievienošana ierīces sensora izvadēm
Etiķete Galvene
Kad lietojumprogramma ir atvērta rediģēšanai programmā Power Apps, pievienojiet ekrānam Teksta etiķeti, velkot un nometot to no Ievietošanas rūts. Novietojiet to ekrāna augšējā kreisajā stūrī un pārveidojiet šādus rekvizītus rūtī Rekvizīti:
Rekvizīts | Vērtība |
---|---|
Teksts | "Objektu meklēšana¨ |
Fonta lielums | 24 |
Fonta biezums | FontWeight.Semibold |
Teksta līdzinājums | Līdzināt.Centrs |
Platums | Parent.Width |
Pēc tam rūtī Papildus pārveidojiet šādus rekvizītus:
Rekvizīts | Vērtība |
---|---|
Krāsa | RGBA(255, 255, 255, 1) |
Aizpildījums | RGBA(56, 96, 178, 1) |
Tādējādi tiek nodrošināta ekrāna galvene.
HTML teksts ierīces sensora izvadēm
Pēc tam pievienojiet HTML teksta vadīklu. Tas tiks izmantots, lai vienuviet parādītu visas ierīces sensora izvades. Izmantojiet šo kodu rekvizītā HtmlText:
"<b><u>Current Location</u></b><br>
<br>
<b>Compass Heading: </b>" & Round(Compass.Heading, 2) & Char(0176) &
"<br>
<br>
<b>Lat: </b>" & Location.Latitude & "<br>
<b>Long: </b>" & Location.Longitude & "<br>
<b>Alt: </b>" & Round(Location.Altitude, 2) & " m"
Rūtī Papildus nomainiet šādus rekvizītus:
Rekvizīts | Vērtība |
---|---|
Izmērs | 21 |
BorderStyle | BorderStyle.Solid |
BorderThickness | 2 |
Platums | 560 |
Augstums | 576 |
PaddingTop | 16 |
PaddingRight | 16 |
PaddingBottom | 16 |
PaddingLeft | 16 |
Ja apskatāt HtmlText ievietoto informāciju, iespējams, pamanīsiet, ka tiek izmantoti divi sensoru tipi.
Pirmais ir Kompasa sensors, kas izmanto rekvizītu Virsraksts, lai nodrošinātu kompasa virsrakstu no ierīces.
Otrais ir Atrašanās vietas sensors, kas nodrošina Platumu, Garumu un Augstumu. Ir divi apsvērumi par atrašanās vietu. Pirmkārt, ja izmantojat tikai atrašanās vietu bez punktveida operatora un rekvizīta, tiks iegūts ieraksts, kam ir Platuma, Garuma un Augstuma lauki. Otrkārt, Augstuma rekvizīts tiek norādīts metros pēc noklusējuma. Ja vēlaties to pārvērst uz pēdām, aizstājiet sekojošo formulu:
Izmantot metrisko sistēmu:
Round(Location.Altitude, 2) & " m"
Izmantot imperiālo sistēmu:
Round(Location.Altitude \* 3.2808, 2) & " ft"
Piezīme
Daudzi sensoru rekvizīti var nestrādāt, ja veiksiet programmas priekšskatījumu programmā Power Apps Studio. Lai testēšanai strādātu ar sensora rekvizītiem, tā vietā ieteicams izmantot mobilo tālruni.
Tagad novietojiet HTML teksta vadīklu pie ekrāna lejasdaļas.
Poga Pievienot NFC pārbaudei un HTML teksta vadīklai
Poga NFC pārbaude
Pievienojiet lietojumprogrammai pogu, novietojot to zem Html teksta vadīklas, ko pievienojāt pēdējā solī, un mainiet tālāk norādītos rekvizītus rūtī Papildus:
Rekvizīts | Vērtība |
---|---|
OnSelect | ClearCollect(colNFCScan, ReadNFC()) |
Teksts | "Skenēt NFC tagu" |
Rekvizīta OnSelect kods izmanto funkciju ReadNFC(), kas aktivizē NFC lasītāju. Pēc tam tas saglabā no NFC taga nolasīto informāciju kolekcijā olNFCScan. Šajā kolekcijā būs četri lauki: RTD, Teksts, TNF un URI. Kaut arī šo lauku pilnie skaidrojumi pārsniedz šī raksta darbības jomu, daži skaidrojumi var būt noderīgi. TNF apzīmē Tipa nosaukuma formātu, un tas tiek izmantots, lai definētu Ieraksta tipa definīcijas vai RTD struktūru, kas savukārt definē ieraksta tipu, kas noglabāti Teksta un/vai URI laukos. URI apzīmē Vienoto resursu identifikatoru, kas būtībā ir resursa adrese. Šajā piemērā izmantotajiem NFC tagiem papildus Teksta laukam, kurā ir iekļauts teksta piemērs no šīs tēmas ievada, tajos būtu iekļauta TNF vērtība 1, RTD vērtība T un tukša URI vērtība.
Pievienojiet HMTL teksta vadīklu, lai parādītu NFC pārbaudes informāciju
Pievienojiet otru HTML teksta vadīklu un rekvizītā HTMLText izmantojiet šādu formulu:
"<b><u>Next Destination</u></b><br>
<br>" &
First(colNFCScan).Text
Rūtī Papildus nomainiet šādus rekvizītus:
Rekvizīts | Vērtība |
---|---|
Izmērs | 21 |
BorderStyle | BorderStyle.Solid |
BorderThickness | 2 |
Platums | 560 |
Augstums | 248 |
PaddingTop | 16 |
PaddingRight | 16 |
PaddingBottom | 16 |
PaddingLeft | 16 |
Bez jebkādiem NFC datiem vadīklā tiks rādīts Nākamais mērķis. Kad NFC tags tiek noskenēts, tajā tiks parādīts Nākamais mērķi un pēc tam dati no Teksta lauka noskenētajos datos.
Pieņemot, ka NFC tagu dati ir konfigurēti, kā aprakstīts ievadā, lietotājs redzēs nākamās kompasa virsrakstu, platuma un garuma vērtības nākamajai objektu atrašanās vietai pēc tam, kad tiks noskenēts viens no šiem tagiem.
Programmas pārbaude
Saglabājiet programmu un to publicējiet. Ar nepieciešamajiem sensoriem aprīkotajā mobilajā ierīcē atveriet programmu un ievērojiet kompasa virsrakstu, platumu, garumu un augstuma vērtības. Mēģiniet pastaigāt apkārt, griežoties dažādos virzienos, lai redzētu izmaiņas dažādos sensoru rādījumos.
Lai ievērotu NFC lasītāja vadīklu, nospiediet pogu Skenēt NFC tagu. Ja jums ir NFC tags, kas var radīt Teksta vērtību, skenējiet tagu, lai redzētu tekstu programmā. Ja nav, atlasiet Atcelt.
Otrā ekrāna pievienošana un konfigurēšana
Pievienojiet jaunu Tukšu ekrānu programmas leņķa mērīšanas daļai.
Pēc ekrāna pievienošanas pārejiet atpakaļ uz pirmo ekrānu un pievienojiet ikonu Nākamā bultiņa no + Ievietot > Ikonas > izvēlieties ikonu Nākamā bultiņa. Novietojiet to ekrāna augšējā labajā stūrī un nomainiet šādus rekvizītus rūtī Papildus:
Rekvizīts | Vērtība |
---|---|
OnSelect | Pāriet (2. ekrāns) |
Krāsa | RGBA(255, 255, 255, 1) |
Ja ir pārdēvēts otrais ekrāns, kas tikko tika pievienots, aizstājiet šo nosaukumu ar 2.ekrāns Navigācijas funkcijā.
Priekšskatiet programmu, atlasot tikko pievienoto ikonu, lai pārbaudītu, vai tā pārvietos jūs uz tikko pievienoto tukšo ekrānu.
Konfigurācijas pievienošana X un Y leņķiem
Pievienojiet ekrānam Teksta etiķeti, velkot un nometot to no Ievietošanas rūts. Novietojiet to ekrāna augšējā kreisajā stūrī un pārveidojiet šādus rekvizītus rūtī Rekvizīti:
Rekvizīts | Vērtība |
---|---|
Teksts | "2 ass līmenis" |
Fonta lielums | 24 |
Fonta biezums | FontWeight.Semibold |
Teksta līdzinājums | Līdzināt.Centrs |
Platums | Parent.Width |
Pēc tam rūtī Papildus pārveidojiet šādus rekvizītus:
Rekvizīts | Vērtība |
---|---|
Krāsa | RGBA(255, 255, 255, 1) |
Aizpildījums | RGBA(56, 96, 178, 1) |
Tādējādi tiek nodrošināta otrā ekrāna galvene.
Pēc tam pievienojiet ikonu Atpakaļvērstā bultiņa no + Ievietot > Ikonas > izvēlieties ikonu Atpakaļvērstā bultiņa. Novietojiet to ekrāna augšējā kreisajā stūrī un nomainiet šādus rekvizītus rūtī Papildus:
Rekvizīts | Vērtība |
---|---|
OnSelect | Pāriet (1. ekrāns) |
Krāsa | RGBA(255, 255, 255, 1) |
Ja ir pārdēvēts pirmais ekrāns, kas tikko tika pievienots, aizstājiet šo nosaukumu ar 1.ekrāns Navigācijas funkcijā.
Visbeidzot pievienojiet HTML teksta vadīklu. Tas tiks izmantots, lai vienuviet parādītu visas ierīces sensora izvades. HTML teksta rekvizītā izmantojiet šādu formulu:
"<b><u>Angles:</u></b><br>
<br>
<table width='100%'>
<tr>
<td width='50%'><b>X: </b>" & Abs(Round(Acceleration.X * (90 / 9.81),
0)) & Char(0176) & "</td>
<td width='50%'><b>Y: </b>" & Abs(Round(Acceleration.Y * (90 / 9.81),
0)) & Char(0176) & "</td>
</tr>
</table>"
Cilnē Papildus nomainiet šādus rekvizītus:
Rekvizīts | Vērtība |
---|---|
Izmērs | 21 |
BorderStyle | BorderStyle.Solid |
BorderThickness | 2 |
Platums | 560 |
Augstums | 168 |
PaddingTop | 16 |
PaddingRight | 16 |
PaddingBottom | 16 |
PaddingLeft | 16 |
Novietojiet šo vadīklu programmas ekrāna augšdaļā.
Ja apskatīsiet HtmlText ievietoto informāciju, pamanīsit, ka tiek lietots Paātrinājuma sensors ar X un Y rekvizītiem. Ir arī rekvizīts Z, ko neizmantojam šajā scenārijā.
Šis sensors ierīcē konstatē gravitācijas noslodzi, izmantojot trīs vertikālos skatus. Izmantojot mobilo tālruni kā piemēru, iedomājieties līniju, kas stiepjas ārpus tālruņa sāniem. Tā būtu X plakne. Paceļot tālruņa labo pusi, tiks iegūta pozitīva vērtība, bet kreiso pusi - negatīva vērtība. Līnija, kas tiek paplašināta no tālruņa augšpuses un apakšpuses, būtu Y plakne. Paceļot tālruņa augšpusi, tiks iegūta pozitīva vērtība, bet apakšpusi - negatīva vērtība. Visbeidzot līnija, kas nāktu ārā no ekrāna un tālruņa aizmugures, būtu Z plakne. Ja ekrāns būs vērsts uz augšu, tiks iegūta pozitīva vērtība, un, pavēršot to uz leju, tiks iegūta negatīva vērtība.
Akselerometrs izmērīs spēkus, kas iedarbojas uz ierīci gan kustībā, piemēram, ja jūs nolaižat ierīci, gan miera stāvoklī, piemēram, noliekot ierīci uz vienas vai vairākām asīm, kas aprakstītas iepriekš. Mierīgā stāvoklī teorētiskajām vērtībām jābūt no 0 līdz +/- 9,81 m/s2, 0 norāda, ka relatīvā ass ir paralēla Zemei, gravitācija neietekmē sensoru, un rādījums 9,81 norāda, ka relatīvā ass ir perpendikulāra Zemei, un viss gravitācijas spēks iedarbojas uz sensoru.
Apskatot tikko pievienotās HTML teksta vadīklas kodu, ievērojiet šādu sadaļu:
Abs(Round(Acceleration.X * (90 / 9.81), 0))
Šajā formulā, no iekšpuses uz āru, vispirms Paātrinājums uz X plaknes tiek reizināts ar (90 / 9.81). Tas izmanto teorētisko maksimālo miera vērtību, lai sensora rādījumus pārvērstu grādos. Šī vērtība ir 90, jo maksimālajā teorētiskajā vērtībā šī ierīce būtu perpendikulāra Zemei uz šīs plaknes, piešķirot tai 90° grādus mērvienību.
Pēc tam šī vērtība grādos tiek noapaļota līdz nullei aiz komata, lai iegūtu vesela skaitļa grādu vērtību. Visbeidzot, šī noapaļotā skaitļa absolūtā vērtība tiek aprēķināta, lai dotu pozitīvu rādījumu. Šādā veidā nav svarīgi, vai leņķis tiek mērīts no vienas vai otras puses.
Piezīme
Iepriekš minētās vērtības ir aptuvenas un neataino precīzus mērījumus.
Līmeņa vizuālo datu pievienošana
Šajā darbībā mēs plānojam izmantot dažas vadīklas netradicionālā veidā, lai sasniegtu vizuālu mērķi.
Apļveida burbuļiem līdzīgs vizuāls materiāls
Lai sāktu, pievienojiet ekrānam Pogas vadīklu, pārdēvējot to par btnCircleLevel un Papildus rūtī nomainiet sekojošos rekvizītus:
Rekvizīts | Vērtība |
---|---|
Teksts | "" |
BorderColor | RGBA(56, 96, 178, 1) |
FocusedBorderThickness | 2 |
Aizpildījums | Caurspīdīgs |
DisabledFill | Self.Fill |
X | (Parent.Width - Self.Width) / 2 |
Y | (Parent.Height - Self.Height) / 2 |
Platums | 400 |
Augstums | Self.Width |
Šo izmaiņu rezultātā ekrāna centrā ir jābūt riņķveida pogai, ko nevar nospiest, jo tā ir atspējota.
Pēc tam pievienojiet Apļa formu, iestatiet tā robežrādi uz 400 un rūts Detalizēti rekvizītus mainiet šādi:
Rekvizīts | Vērtība |
---|---|
FocusedBorderThickness | 0 |
X | (Parent.Width - Self.Width) / 2 + (Round(Acceleration.X / 9.81 * 90, 0) / 90 * btnCircleLevel.Width / 2) |
Y | (Parent.Height - Self.Height) / 2 - (Round(Acceleration.Y / 9.81 * 90, 0) / 90 * btnCircleLevel.Width / 2) |
Platums | 42 |
Augstums | Self.Width |
Platums | 400 |
Augstums | Self.Width |
X un Y rekvizītus ļauj pārvietot Riņķa figūru pa programmas ekrāna centru, relatīvas izmaiņas Paātrinājuma sensora vērtībās, bet iekļautas btnCircleLevel apļveida laukā.
X un Y asu burbuļiem līdzīgs vizuāls materiāls
Pievienojiet programmai Slīdņa vadīklu, pārdēvējiet to par sldXValue un Papildus rūtī nomainiet sekojošos rekvizītus:
Rekvizīts | Vērtība |
---|---|
Minimums | -90 |
Maksimums | 90 |
Noklusējuma vērtība | Round(Acceleration.X * (90 / 9.81), 0) |
ValueFill | Self.RailFill |
X | (Parent.Width - Self.Width) / 2 |
Y | btnCircleLevel.Y + btnCircleLevel.Height + 30 |
Platums | btnCircleLevel.Width |
Augstums | 70 |
Šī Slīdņa vadīkla attēlos leņķi līdzīgi kā burbuļa līmenis: Rokturis pārvietosies uz ierīces pacelto pusi līdzīgi kā gaisa burbulis burbuļa līmenī.
Pēc tam kopējiet btnCircleLevel atlasot to, nospiežot Ctrl + C un tad Ctrl + V. Pārdēvējiet vadīklu uz btnXValueOverlay un Papildus rūtī nomainiet sekojošos rekvizītus:
Rekvizīts | Vērtība |
---|---|
X | sldXValue.X - sldXValue.HandleSize / 2 |
Y | sldXValue.Y |
Platums | sldXValue.Width + sldXValue.HandleSize |
Augstums | sldXValue.Height |
Šīs izmaiņas novietos to virs sldXValue vadīklas, neļaujot lietotājam mainīt tā vērtību un nodrošināt vizuālu apmali.
Kopējiet un ielīmējiet sldXValue, izmantojot to pašu metodi, kas tika izmantota btnCircleLevel kopēšanai. Pārdēvējiet to uz sldYValue un mainiet šos rekvizītus:
Rekvizīts | Vērtība |
---|---|
Izkārtojums | Layout.Vertical |
X | btnCircleLevel.X - Self.Width - 30 |
Y | (Parent.Height - Self.Height) / 2 |
Platums | sldXValue.Height |
Augstums | sldXValue.Width |
Kopējiet un ielīmējiet btnXValueOverlay, pārdēvējot to par btnYValueOverlay, mainot šos rekvizītus:
Rekvizīts | Vērtība |
---|---|
X | sldYValue.X |
Y | sldYValue.Y - sldYValue.HandleSize / 2 |
Platums | sldYValue.Width |
Augstums | sldYValue.Height + sldYValue.HandleSize |
Šādi tiek pabeigti burbuļa līmenim līdzīgi vizuālie dati.
Pārbaudiet līmeņa programmu
Saglabājiet programmu un to publicējiet. Ar nepieciešamajiem sensoriem aprīkotajā mobilajā ierīcē atveriet programmu un pārejiet uz ekrānu, izmantojot burbuļa līmeņa vizuālos datus. Nolieciet ierīci no kreisās puses uz labo, pēc tam uz augšu un uz leju, un, visbeidzot, visos virzienos, ievērojot arī skata rekvizītu izmaiņas, kā arī izmaiņas vizuālajos datos. Atrodiet ieliektu virsmu, uz kuras novietot ierīci, un atkal ievērojiet leņķus un vizuālos datus.
Skatiet arī
Atsauksmes
https://aka.ms/ContentUserFeedback.
Drīzumā: 2024. gada laikā mēs pakāpeniski pārtrauksim izmantot “GitHub problēmas” kā atsauksmju par saturu mehānismu un aizstāsim to ar jaunu atsauksmju sistēmu. Papildinformāciju skatiet:Iesniegt un skatīt atsauksmes par