Sisukord:

Raspberry Pi-Arduino-SignalR koduautomaatika keskus: 11 sammu (koos piltidega)
Raspberry Pi-Arduino-SignalR koduautomaatika keskus: 11 sammu (koos piltidega)

Video: Raspberry Pi-Arduino-SignalR koduautomaatika keskus: 11 sammu (koos piltidega)

Video: Raspberry Pi-Arduino-SignalR koduautomaatika keskus: 11 sammu (koos piltidega)
Video: How to build a robot arm with .NET 7, Raspberry Pi, Blazor, and SignalR 2024, November
Anonim
Raspberry Pi-Arduino-SignalR koduautomaatika keskus
Raspberry Pi-Arduino-SignalR koduautomaatika keskus

Pärast paari minu siin ja siin avaldatud eelmängu IBLE -sid teeb see projekt esimese sammu funktsionaalse koduautomaatika jaoturi põhiversiooni loomise suunas.

Olen kasutanud mitmeid erinevaid tehnoloogiaid, et mõista, kuidas saan kasutada kõiki minevikus õpitud asju ja uusi asju, mida päevade jooksul edasi õpin.

Seetõttu koosneb see automatiseerimiskeskus järgmistest komponentidest:

SQL Server 2012 andmebaas, mis:

  • salvestab tabelisse etteantud infrapuna (IR) koodide loendi koos kordumatu koodivõtmega
  • koodivõtmed nimetatakse intuitiivselt (kasutaja poolt), et teha kindlaks nendega seotud IR -koodide eesmärk

Reaalajas ASP. NET SignalR Hub veebirakendus, mis:

  • ootab ja saab "koodivõtmeid" käskudena kasutajalt, kes seisab silmitsi HTML -kliendiga
  • vastuvõtmisel loob ühenduse SQL -andmebaasiga ja otsib kaasasoleva koodivõtme abil IR -koodi
  • edastab saadud IR -koodi Python SignalR kliendile

Kasutaja silmitsi HTML SignalR armatuurlaua kliendiga, kes:

  • edastab jQuery SignalR Client API -de kaudu Hubile ainulaadse koodvõtme
  • iga juhtpaneeli nupp tähistab kordumatut koodivõtit, mis on salvestatud SQL andmebaasi tabelisse

Raspberry Pi 2.0 -s töötav Python SignalR taustateenuse rakendus, mis:

  • võtab Hubilt käskudena vastu IR -koode
  • otsib IR -koodeksist eraldajaid ja purustab väga pika koodi segmentideks
  • suhtleb Arduinoga jadapordi kaudu ja kirjutab järjestikku välja iga segmendi

Arduino IR -saatja visand, mis:

  • ootab ja võtab vastu kõik IR -koodi segmendid jadapordi kaudu
  • koondab koodisegmendid IR -koodi puhvermassiivi
  • pakib puhvri IR -edastuskäsklusesse, kasutades IRLib Arduino raamatukogu

Kui sihtseade asub IR -saatja läheduses, võib seade (võib) reageerida Arduino edastatud IR -signaalile

MÄRGE

Kuigi selles demonstratsioonis kasutatav sihtseade reageerib IR -signaalidele, võiksite lugeda minu teise IBLE seda jaotist põhjustel, miks ma ütlen, et seade (võib) IR -signaalile reageerida.

Aeg rullida.

Samm: mida vajate, enne seda, mida vajate

Mida vajate, enne seda, mida vajate
Mida vajate, enne seda, mida vajate
Mida vajate, enne seda, mida vajate
Mida vajate, enne seda, mida vajate
Mida vajate, enne seda, mida vajate
Mida vajate, enne seda, mida vajate

See juhendamine algab mõne varem tehtud tööga, mille tulemuseks oli ka minu viimane IBLE.

Seega, enne kui asume selle IBLE jaoks vajaliku juurde, soovitame teil lugeda seda juhendit, et saada teavet selle kohta, kuidas:

  1. Seadistati Arduino IRLib infrapunaraamatukogu
  2. Kuidas selles IBLE -s kasutatud IR -koode IR -vastuvõtja abil jäädvustati
  3. Kuidas püütud IR -koode kasutati sihtseadme juhtimiseks IR -saatja kaudu

Pärast selle IBLE valmimist kasutasin ASP. NET IR Code Recorder veebirakendust, mis:

  • Võtke jäädvustatud IR -kood koos intuitiivselt nimetatud koodivõtmega veebivormi sisenditena
  • Jagage väga pikk IR -kood vähem kui 64 tähemärgi pikkusteks segmentideks, et jääda Arduino Uno jadapuhvri piirangu alla
  • Viimane koodisegment oleks eelnevalt fikseeritud tähega "E", mis näitab Arduinole, et see on saanud viimase koodisegmendi
  • Iga segment eraldatakse toru eraldajaga, enne kui see kokku pannakse pikaks nööriks
  • Lõpuks salvestati segmenteeritud IR -kood koos selle koodivõtmega SQL Server 2012 andmebaasi

Just see SQL -andmebaas moodustab selle IBLE -s välja töötatud koduautomaatika jaoturi ühe komponendi.

MÄRGE

Veebirakendus IR Code Recorder ei kuulu siinse arutelu juurde järgmistel põhjustel.

  • Koode saate käsitsi jäädvustada Arduino Sketchi abil, jagada need torudega piiritletud osadeks ja salvestada need andmebaasi, ilma et peaksite koostama keerulist veebirakendust
  • Erinevalt sellest IBLE -st keskendub IR -salvestaja pöördsuhtlusele Arduino ja Raspberry Pi vahel

Seetõttu oleks selle projekti üksikasjad teise IBLE teema

2. samm: mida vajate - riistvara

Mida vajate - riistvara
Mida vajate - riistvara
Mida vajate - riistvara
Mida vajate - riistvara

Toimiv Raspberry Pi 2.0 - soovitan installida Ubuntu Mate, kuna sellel on rikkalikum funktsioonide komplekt, sealhulgas OpenLibre Office, mis muide oli selle juhendi dokumenteerimisel hädavajalik, seal Raspberry Pi -l.

Lisaks vajate Pi -d järgmisi väliseid elemente:

  • Arduino Uno prototüüpimisplatvorm või kloon
  • IR -saatjate LED - kasutasin Amazon.com kaubamärki nimega Three Legs
  • 330 või 220 oomi takistid-kasutasin 220 (värvikood punane-punane-pruun), sest mul oli mitu käepärast
  • Tavaline leivalaud, pistikud ja arvuti, kuhu on installitud Arduino keskkond
  • Testikandidaat - näiteks kõikjal leviv Samsungi kaugjuhtimispuldiga LED -monitor

3. samm: mida vajate - tarkvara

Kõigi osade ühendamiseks tuleb installida ja käivitada järgmine tarkvara.

Raspberry Pi -s peate installima järgmise:

  • Arduino IDE - kasutati eskiisi koostamiseks ja UNO -le välkimiseks
  • Pythoni moodul Arduino jaoks - UNO ja Pi vahelise jadaühenduse jaoks
  • Python SignalR klienditeek - saate viidata siin toodud juhistele

Windowsi masin, kuhu on installitud järgmine arenduskeskkond:

  • Microsoft Visual Studio Express 2013 tasuta väljaanne SignalR Hub ja veebikliendirakenduse loomiseks
  • SQL Server 2012 Expressi tasuta väljaanne taustaandmebaasi kujundamiseks ja ehitamiseks

Windowsi Interneti -infoserveri (IIS) hostimiskeskkond:

  • Kui SignalR Hub ja veebiklient on üles ehitatud ja testitud, tuleb see juurutada kohalikku IIS -serverisse
  • Minu puhul kavatsen kasutada koduvõrgus vana sülearvutit, milles töötab Windows 7 koos IIS -iga

MÄRGE

Kõik juhised kehtivad Python 2.7.x versiooni kohta. Versioon 3.0 võib nõuda ümberkirjutamist

Samm 4: SQL Serveri andmebaas

SQL Serveri andmebaas
SQL Serveri andmebaas

Lisatud skeem näitab selles rakenduses kasutatava põhilise SQL Serveri andmebaasi struktuuri ja sisaldab vaid kahte tabelit.

Tabel AutoHubCode

Selle tabeli kaks olulist veergu on järgmised:

AutoCodeKey - salvestab koodivõtme kasutajasõbraliku nime

Iga koodivõtme edastab automaatika klient - meie puhul veebilehe HTML -nupp

AutoCodeVal - salvestab toores IR -koodi järjestuse

See on tegelik IR -kood, mille signaalikeskus vastuseks kliendile tagasi edastab

Sel juhul võtab Hubiga pidevas suhtluses olev Pythoni klient vastu IR -koodijärjestuse ja edastab selle jadapordi kaudu Arduino UNO -le

Tabel AutoHubLog

  • Logib sisse automaatika kliendi nõutud koodi.
  • See on meede, et jälgida, kes ja millal süsteemi kasutas ning millist koodi taotleti

Nagu mainitud, olen valinud oma andmebaasiplatvormina SQL Server 2012. Saate selle lihtsa kujunduse uuesti luua erineval andmebaasiplatvormil, näiteks MySQL, Oracle jne.

Sellele vaatamata on siia lisatud SQL Script selle andmebaasi loomiseks

MÄRGE

  1. SignalR Hub'i kood on loodud ühendamiseks SQL Server 2012 andmebaasiga
  2. Teise andmebaasiga töötamine tähendaks jaoturi muutmist teise andmebaasidraiveri kasutamiseks

Samm: veebirakendus ASP. NET SignalR Hub

Veebirakendus ASP. NET SignalR Hub
Veebirakendus ASP. NET SignalR Hub
Veebirakendus ASP. NET SignalR Hub
Veebirakendus ASP. NET SignalR Hub

Veebirakendus ASP. NET SignalR Hub koosneb ühiselt järgmistest komponentidest, nagu on näidatud lisatud skeemil:

1. jagu - SignalR Hub, mis võtab vastu kliendilt päringuid ja vastab sellele

2. ja 4. jaotis - HTML -kliendi veebileht ja selle stiilileht moodustavad ühiselt automatiseerimissüsteemi esiotsa ja väljastavad käske automatiseerimiskeskusele

3. jagu - jQuery SignalR API -d, mida HTML -klient kasutab automatiseerimiskeskusega suhtlemiseks

5. jagu - SignalR Hub ei suhtle otse andmebaasiga. Seda tehakse olemikraamistiku abil loodud vaheklasside kaudu

Need klassid võtavad kasutajaliidese andmebaasi üksikasjad kokku

Jaotis 6 - Andmebaasi teenuseklass, mis aitab SQL -andmebaasis (eelnevalt kirjeldatud) lugeda -kirjutada toiminguid, kasutades Entity Framework'i klasse

ASP. NET ja SignalR on Microsofti tehnoloogiad ning see õpetus juhendab teid lihtsa SignalR -i rakenduse koostamise ja juurutamise kohta.

See, mille olen siia ehitanud, põhineb sellest õpetusest omandatud põhitõdedel. Juurutamisel peaks rakendus välja nägema sarnaselt teisel pildil näidatud veebilehega

MÄRKUS KOODI KOHTA

Manustatud on ZIP -fail, mis sisaldab koodi eemaldatud versiooni

Kaustastruktuur on selline, nagu on näidatud visuaalis, kuid manuse suuruse vähendamiseks on kõik raamklassid ja jQuery skriptid eemaldatud

Soovitame seda koodi kasutada juhendina, sest kui loote uue SignalRi veebirakenduse, järgides ülaltoodud õpetuse linki, lisatakse automaatselt uusimad jQuery teegid ja ASP. NET raamistikuklassid

Samuti tuleb muuta viited jQuery skriptidele lehel index.html, et kajastada jQuery SignalR klienditeekide uusimat versiooni, mis lisatakse automaatselt veebirakenduse loomisel.

Lõpuks tuleb ühenduse stringi muuta, et see vastaks teie andmebaasile failides nimega Web.config*

6. toiming: Python SignalR teenuse klient

Python SignalR teenuse klient
Python SignalR teenuse klient

Kui HTML SignalR -klient on eesmine kasutajaliides, siis Python -klient on tagalateenuse rakendus, mille peamine ülesanne on saada jaoturi poolt edastatud IR -kood ja suunata see jadaühenduse kaudu Arduino UNO -sse.

Lisatud kood on iseenesestmõistetav ja selle funktsionaalsuse kirjeldamiseks piisavalt dokumenteeritud

Nagu kombineeritud ekraanipildil näidatud, suhtlevad HTML -klient ja Pythoni teenuse klient SignalR -jaoturi kaudu järgmiselt.

  1. Automatiseerimissüsteemi kasutaja annab nupule klõpsuga Hubile käsu
  2. Iga nupp on seotud IR -võtme koodiga ja klõpsamisel edastatakse see kood jaoturile
  3. Hub saab selle koodi vastu, loob ühenduse andmebaasiga ja otsib toore IR -signaali koodi ning edastab selle tagasi kõigile ühendatud klientidele

    Samal ajal logib jaotur AutoHubLogi andmebaasi tabelisse kirje, mis salvestab koodi ning kuupäeva ja kellaaja, mille kaugkliendid seda taotlesid

  4. Pythoni teenuse klient saab IR -koodi ja edastab selle Arduino UNO -le edasiseks töötlemiseks

Samm: Arduino UNO IR -ülekande skeem ja kood

Arduino UNO IR ülekande skeem ja kood
Arduino UNO IR ülekande skeem ja kood
Arduino UNO IR ülekande skeem ja kood
Arduino UNO IR ülekande skeem ja kood
Arduino UNO IR ülekande skeem ja kood
Arduino UNO IR ülekande skeem ja kood

Visuaalides näidatud Arduino vooluring on selle süsteemi jaoks üsna lihtne ja seetõttu kirjeldatakse seda lühidalt:

  • Värvitu infrapuna LED peab olema ühendatud UNO digitaalse PIN 3 -ga - see on IRLib Arduino raamatukogu nõue
  • Põhjuseid on kirjeldatud minu varasemas IBLE -s, mis käsitleb kaugjuhtimispuldi kloonimist IRLibi raamatukoguga seotud osas
  • Digitaalse PIN 4 -ga ühendatud roheline LED on visuaalne indikaator, mis süttib, kui UNO on Raspberry Pi -ga töötavalt Pythoni kliendilt saanud kõik IR -koodi lõigud.
  • Kui see LED süttib, kinnitab see, et jadaühendus Raspberry Pi ja UNO vahel toimib
  • Jadaühenduse lubamiseks ühendatakse UNO Raspberry Pi -ga USB -pordi kaudu
  • Lisatud Arduino visandit kommenteeritakse piisavalt, et kirjeldada selle funktsiooni
  • Koodi ülaosas olevad kommentaarid kirjeldavad ka seda, kuidas vooluahelat tuleb ühendada

MÄRGE

Praktikas saaks Arduino ja Pi ühendada toiteallikaga USB -jaoturiga, mis on piisavalt tugev, et juhtida Pi, Arduino ja edastada tugevat signaali ka IR -LED -i kaudu

8. samm: süsteemi ühendamine ja testimine

Süsteemi ühendamine ja testimine
Süsteemi ühendamine ja testimine
Süsteemi ühendamine ja testimine
Süsteemi ühendamine ja testimine
Süsteemi ühendamine ja testimine
Süsteemi ühendamine ja testimine
  1. Ehitage ja juurutage ASP. NET SignalR Hub, HTML -klient koos SQL Server 2012 andmebaasiga oma kohaliku koduvõrgu Interneti -infoserverisse (IIS)
  2. Veebirakendusele juurdepääsemiseks avage HTML SignalR klient HTTP kaudu

    selle lehe URL oleks tavaliselt https:// teiearvuti: port_number/

  3. Klõpsake juhtpaneelil nuppu ja kui rakendus on õigesti juurutatud, reageerib jaotur IR -koodi tagastamisega ja kuvab selle juhtpaneeli kõrval oleval hallil paneelil

    Pidage meeles! Koodid peate oma andmebaasi laadima, seadistades IR -vastuvõtjate kogu ja jäädvustades koodid, nagu on kirjeldatud minu eelmises IBLE -s

  4. Ühendage Arduino USB kaudu Raspberry Pi -ga - avage Pi -l Arduino IDE ja veenduge, et UNO saab Pi -ga ühenduse luua

    need Arduino õpetusartiklid peaksid aitama teil sellega üsna kiiresti hakkama saada

  5. Avage Pythoni kood ja tehke vastavalt oma keskkonnale järgmised muudatused

    • teie UNO jadapordi aadress, mis on saadud 4. sammus
    • SignalR -jaoturi URL, mis vastab teie kohaliku URL -ile 2. sammus - selles näites oleks see https:// yourComputer: port_number/signalr
  6. Lõpuks avage Arduino Sketch Arduino IDE -s Raspberry Pi -l ja vilgutage see UNO -le
  7. Asetage vooluahelat hoidev leivaplaat kontrollitava seadme vahetusse lähedusse - IR -valgusdiood peab olema selgelt nähtav seadme IR -vastuvõtja pordiga
  8. Käivitage Raspberry Pi programm Python, vajutades tööriistaribal Python IDLE nuppu F5
  9. Naaske HTML -kliendiprogrammi juhtpaneelile (2. etapp) ja klõpsake nuppu (nt sisselülitamine või helitugevuse suurendamine)

Kui süsteem on õigesti seadistatud, peaksite saama oma telefonis või tahvelarvutis avada HTML -kliendilehe ja juhtida seadet oma HTML -kliendilehe nuppudega.

9. samm: süsteem töös

Süsteem töös
Süsteem töös
Süsteem töös
Süsteem töös
Süsteem töös
Süsteem töös
Süsteem töös
Süsteem töös

Ülaltoodud visuaalid näitavad koduautomaatikasüsteemi toimimist pärast selle seadistamist.

Pärast selle IBLE avaldamist olen liidest laiendanud, jäädvustades oma VIZIO LED -telerist mõned IR -koodid

Nagu on näidatud esimese visuaali kõrval tehaseseadmega TV Remote, on selle tahvelarvuti kaudu juurdepääsetavasse veebi kasutajaliidesesse sisse ehitatud vähe selle kaugjuhtimispuldi funktsioone.

Järgnevatel visuaalidel on tahvelarvuti esiplaanil ja teler taga, mis vastab veebiliidese käskudele:

  1. Power OFF käsk - teler lülitub välja
  2. Käsk ON ON - teler lülitub sisse ja ekraani sisselülitamisel ilmub logo "V"
  3. Vaigistamise käsklus - horisontaalne riba ilmub kõlari vaigistamiseni

Kõigis testides kuvatakse tahvelarvuti ekraanil armatuurlaua kõrval oleval hallil alal kliendi väljastatud käsk ja kaugjuhtimispuldi SignalR Hub tagasiside

10. samm: automatiseerimissüsteemi ja sellega seotud paranduste täiustamine

Seda süsteemi saab laiendada, lisades rohkem eri süsteemidest püütud koode. Kuigi see osa on lihtne, peate arvestama veel kahe teguriga.

Parandus 1 (kiire): töö erineva pikkusega IR -signaalidega

  1. Erinevate süsteemide IR -koodid on erineva pikkusega, isegi sama tootja kahe toote vahel.

    Näiteks sel juhul on LED -teleri IR -koodi massiivi pikkus 67, Samsungi heliriba aga umbes 87

  2. Mis tähendab, et kui ma lülitaksin kõigepealt heliriba sisse, täidetaks Arduino visandis olev IR -puhvermassiiv IR -koodi jada, mis sisaldab 87 koodi
  3. Kui ma pärast seda LED -teleri sisse lülitaksin, täidaks see IR -puhvri massiivi vaid 67 koodiga, kuid ülejäänud 20 koodi eelmisest toimingust oleksid endiselt umbes

Tulemus? LED -teler ei lülitu sisse, kuna IR -koodi puhver on rikutud 20 lisakoodi tõttu, mida pole eelmisest toimingust puhastatud!

Parandus 1 (lihtne väljapääs, pole soovitatav)

Muutke Arduino visandit järgmiselt.

Muutke funktsioonis loop () {} järgmisi funktsioonikõnesid

sendIRCode ();

edastamaIRCode (c);

Muutke ülaltoodud funktsiooni allkirja:

void transferIRCode (int codeLen) {// RAWBUF konstant asendatud codeLen IRTransmitter. IRSendRaw:: send (IRCodeBuffer, codeLen, 38); }

Kuigi see on lihtne, ei tühjendata massiivi kunagi täielikult ja seetõttu pole see väga puhas lahendus

Parandus 2 (pole raske, soovitatav)

Kuulutage täiendav muutuja Arduino visandi ülaosas pärast kommentaaride jaotist:

allkirjastamata int EMPTY_INT_VALUE;

Lisage see funktsiooni setup () ülaossa:

// Jäädvusta tühja allkirjastamata täisarvumuutuja loomulik olekEMPTY_INT_VALUE = IRCodeBuffer [0];

Kerige alla ja lisage visandile uus funktsioon kohe pärast funktsiooni sendIRCode ():

void clearIRCodeBuffer (int codeLen) {// Kustuta kõik koodid massiivist // MÄRKUS. Massiivi elementide väärtuseks 0 määramine ei ole lahendus! jaoks (int i = 1; i <= codeLen; i ++) {IRCodeBuffer [i-1] = EMPTY_INT_VALUE;}}

Lõpuks helistage ülaltoodud uuele funktsioonile loop () funktsiooni järgmises kohas:

// Lähtesta - Jätka lugemist Serial PortclearIRCodeBuffer (c);…

See on puhtam lähenemisviis, kuna see lähtestab tegelikult kõik IR -puhvri massiivi asukohad, mis asustati viimase IR -koodi signaaliga, jätmata midagi juhuse hooleks.

Parandus 2 (rohkem kaasatud): IR -signaali edastamise kordamine teatud seadmete jaoks

Mõned seadmed nõuavad vastamiseks sama signaali mitu korda edastamist. Näide: Sel juhul nõuab Samsungi heliriba sama koodi saatmist kaks korda 1 -sekundilise vahega

Parandust kontseptsioonis on siin arutatud, kuna see on natuke rohkem kaasatud ja vajab testimist

Kordusfunktsiooni lisamine Ardunio Sketchile tähendab, et peate visandit vilkuma iga kord, kui lisate oma koduautomaatikasüsteemi uue seadme

Selle paranduse lisamine HTML SignalR kliendile ja rakendusele Python SignalR muudab lahenduse palju paindlikumaks. Ja seda saab põhimõtteliselt saavutada järgmiselt:

Muutke SignalR HTML -i klienti kordusteabe edastamiseks jaoturile

Avage index.html ja manustage kordusväärtus HTML -i nupule järgmiselt:

value = "SMSNG-SB-PWR-ON" muutuks väärtuseks = "SMSNG-SB-PWR-ON_2_1000"

Kus 2 on kordusväärtus ja 1000 on kahe kordussignaali vaheline viivituse väärtus millisekundites

Kui klõpsate sellel nupul, saab SignalR -jaotur võtmekoodi+Repeat_Spec

Muutke SignalR -serveri poolseid meetodeid, et parsida ainult võtmekood:

  • Kasutage võtmekoodi, et saada infokood andmebaasist nagu tavaliselt
  • Edastage võtmekood+Repeat_Spec ja IRCode SingalR klientidele nagu tavaliselt

Muutke teenuserakendust Python SignalR signaalide edastamiseks kordusväärtuste abil:

Avage Pythoni klient ja muutke järgmisi kahte funktsiooni:

def print_command_from_hub (buttonId, cmdSrc):

# parsige korduvkood väärtusest buttonId

def sendToArduino (IRSignalCode, delim, endPrefix):

# seadistage mõni aeg või lülitage signaal soovitud sagedusega edasi

  • Nii ei pea Arduinot korduvalt vilkuma
  • Sellesse süsteemi võiks sisse ehitada suvalise arvu kordussagedusi
  • Pealegi, kui kasutate UNO -d, on teie visandi suurus piiratud!

11. toiming: teadaolevad probleemid ja turvamured

Nagu ka esimest korda ehitatud süsteemide puhul, on ka sellel paar probleemi, mis ilmnesid testimise ajal.

Väljaanne 1: Käskude kiire käivitamine nuppude klõpsamiste vahel vähem kui sekundiga põhjustas süsteemi reageerimata jätmise pärast esimese paari korra vastamist.

  • Python SignalR kliendi taaskäivitamine taastab süsteemi normaalseks tööks
  • Kohene lahendus võib olla soovimatute silumisväljundite eemaldamine mõlemast, Pythoni signaalR kliendist ja ka Arduino visandist ning nende testide kordamine
  • Teine koht, mida uurida, oleks jadaühendus ise - kas puhvri kiireks loputamiseks oleks võimalik koodi lisada?

Sellegipoolest olen märganud, et minu teler ei reageeri tehaseseadme kaugjuhtimispuldile hästi - seetõttu võib ka minu teleri IR -side olemus olla soodustavaks teguriks.

Probleem 2: HTML -ekraan ei reageeri nupuvajutustele pärast pikka tegevusetust

Tavaliselt lahendab selle käitumise lehe värskendamine - selle põhjused on siiski ebaselged

TURVAMURGUD

See süsteem on mõeldud kasutamiseks ainult kohalikus (kodu) võrgus ja sellel pole interneti kasutamiseks vajalikke turvameetmeid

Seetõttu on soovitatav SignalR Hub paigutada teie kohaliku/koduvõrgu kohalikku masinasse

Täname, et lugesite minu IBLE -d ja loodan, et teil on lõbus!

Soovitan: