Apparaatbehearder. Wreidzje MIS út nei apparaten

Apparaatbehearder. Wreidzje MIS út nei apparaten
In automatisearre medysk sintrum brûkt in protte ferskillende apparaten, wêrfan de wurking moat wurde regele troch in medysk ynformaasjesysteem (MIS), lykas apparaten dy't gjin kommando's akseptearje, mar de resultaten fan har wurk moatte oerbringe nei de MIS. Alle apparaten hawwe lykwols ferskate ferbiningsopsjes (USB, RS-232, Ethernet, ensfh.) En manieren om mei har te ynteraksje. It is hast ûnmooglik om se allegear yn 'e MIS te stypjen, sadat de DeviceManager (DM) softwarelaach ûntwikkele is, dy't in inkele ynterface foar de MIS leveret foar it tawizen fan taken oan apparaten en it krijen fan resultaten.

Apparaatbehearder. Wreidzje MIS út nei apparaten
Om de flatertolerânsje fan it systeem te fergrutsjen, waard DM ferdield yn in set fan programma's dy't op kompjûters yn it medysk sintrum lizze. DM is ferdield yn in haadprogramma en in set fan plugins dy't ynteraksje mei in spesifyk apparaat en stjoere gegevens nei de MIS. De figuer hjirûnder lit in generalisearre struktuer fan ynteraksje mei DeviceManager, MIS en apparaten sjen.

Apparaatbehearder. Wreidzje MIS út nei apparaten
De struktuer fan ynteraksje tusken MIS en DeviceManager toant 3 opsjes foar plug-ins:

  1. De plugin ûntfangt gjin gegevens fan 'e MIS en stjoert gegevens konvertearre yn in formaat dat it begrypt fan it apparaat (oerienkomt mei apparaattype 3 yn' e boppesteande figuer).
  2. De plugin ûntfangt in koarte (yn termen fan útfieringstiid) taak fan 'e MIS, bygelyks printsjen op in printer of skennen fan in ôfbylding, útfiert it en stjoert it resultaat yn antwurd op it fersyk (oerienkomt mei apparaattype 1 yn' e boppesteande figuer ).
  3. De plugin ûntfangt in lange termyn taak fan 'e MIS, bygelyks om in enkête út te fieren of yndikatoaren te mjitten, en as antwurd stjoert de taak akseptaasjestatus (de taak kin wegere wurde as der in flater is yn it fersyk). Nei it foltôgjen fan de taak wurde de resultaten omset yn in formaat dat begryplik is foar de MIS en uploade nei de ynterfaces dy't oerienkomme mei har type (oerienkomt mei apparaattype 2 yn 'e boppesteande figuer).

It haad DM-programma begjint, inisjalisearret, start opnij yn gefal fan in ûnferwachte stop (crash) en beëiniget alle plugins by it ôfsluten. De gearstalling fan plugins op elke kompjûter is oars; allinich de nedige wurde lansearre, dy't binne spesifisearre yn 'e ynstellings.

Elke plugin is in ûnôfhinklik programma dat ynteraksje mei it haadprogramma. Dizze definysje fan in plugin soarget foar stabiler wurking fanwegen de ûnôfhinklikens fan alle plugin-eksimplaren en de kop yn termen fan flaterôfhanneling (as in krityske flater optreedt dy't feroarsaket dat de plugin crasht, dan sil dit gjin ynfloed hawwe op oare plugins en de kop) . Ien plugin lit jo wurkje mei apparaten fan ien type (faak itselde model), wylst guon plugins allinich mei ien apparaat kinne ynteraksje, wylst oaren mei ferskate kinne ynteraksje. Om ferskate apparaten fan itselde type te ferbinen mei ien DM, starte ferskate eksimplaren fan deselde plugin.

Apparaatbehearder. Wreidzje MIS út nei apparaten
De Qt-toolkit waard brûkt om DM te ûntwikkeljen, om't it ús yn 'e measte gefallen kinne abstrahere fan in spesifyk bestjoeringssysteem. Dit makke it mooglik om wurk te stypjen mei kompjûters basearre op Windows, Linux en MacOS, lykas Raspberry-ienboard-apparaten. De ienige beheining by it kiezen fan in bestjoeringssysteem by it ûntwikkeljen fan plugins is de beskikberens fan bestjoerders en/of spesjale software foar in spesifyk apparaat.

Ynteraksje tusken plugins en de holle komt foar troch in hieltyd aktyf QLocalSocket mei de namme fan in spesifike plugin eksimplaar, neffens it protokol we makke. De ymplemintaasje fan it kommunikaasjeprotokol oan beide kanten waard ûntwurpen as in dynamyske bibleteek, dy't it mooglik makke om guon plugins troch oare bedriuwen te ûntwikkeljen sûnder de ynteraksje mei de holle folslein te iepenbierjen. De ynterne logika fan 'e pleatslike socket lit de holle fuortendaliks leare oer de fal mei in ferbiningsbrekkingssinjaal. As sa'n sinjaal wurdt trigger, wurdt de problematyske plugin opnij starte, wêrtroch jo krityske situaasjes mear pynlik kinne behannelje.

It waard besletten om de ynteraksje tusken MIS en DM op te bouwen basearre op it HTTP-protokol, om't MIS wurket op in webserver, wat it makliker makket om fersiken te ferstjoeren en te ûntfangen mei dit protokol. It is ek mooglik om problemen te ûnderskieden dy't ûntsteane kinne by it ynstellen of útfieren fan taken mei apparaten basearre op antwurdkoades.

Yn 'e folgjende artikels, mei it foarbyld fan ferskate diagnostyske sintrumkeamers, sil de wurking fan DM en guon plug-ins wurde ûndersocht.

Boarne: www.habr.com

Add a comment