Ubuntu Suomen keskustelualueet

Ubuntun käyttö => Laitealue => Aiheen aloitti: ilkant - 21.10.19 - klo:11.19

Otsikko: Contec CMS50F oksimetri v 6.1 [RATKAISTU]
Kirjoitti: ilkant - 21.10.19 - klo:11.19
Onko kukaan saanut Contec CMSF -oksimetriä (versio 6.1) toimimaan Linuxissa? Asensin ohjeiden mukaan Silicon Valleyn ajurin. Versio 3.9 on testattu toimivaksi. Mutta tuo uudempi ohjelmistoversio ei toimi Linuxissa eikä Maceissä. Tässä pitää ottaa pian yhteyttä valmistajatehtaaseen saadakseen uudet speksit.
Otsikko: Vs: Contec CMS50F oksimetri v 6.1
Kirjoitti: ilkant - 25.10.19 - klo:20.21
Kun käynnistän winellä laitteen mukana tulleen ohjelman, tulee virheilmoituksia. Tuo tarvitsee Windowsin kirjastoja MFC42u.DLL yms. tiedostoja. Näitä ei varmaan Linuxiin saa?

Koodia: [Valitse]
wine SpO2\ Assistant\ V3.0.5\ Setup.exe
0031:err:ntdll:NtQueryInformationToken Unhandled Token Information class 26!
0033:err:ntdll:NtQueryInformationToken Unhandled Token Information class 26!
0035:err:ntdll:NtQueryInformationToken Unhandled Token Information class 26!
003f:err:module:import_dll Library MFC42u.DLL (which is needed by L"C:\\Program Files (x86)\\SpO2 Assistant V3.0.5\\SpO2.exe") not found
003f:err:module:import_dll Library MFC42u.DLL (which is needed by L"C:\\Program Files (x86)\\SpO2 Assistant V3.0.5\\DllMsgBox.dll") not found
003f:err:module:import_dll Library DllMsgBox.dll (which is needed by L"C:\\Program Files (x86)\\SpO2 Assistant V3.0.5\\SpO2.exe") not found
003f:err:module:attach_dlls Importing dlls for L"C:\\Program Files (x86)\\SpO2 Assistant V3.0.5\\SpO2.exe" failed, status c0000135
Otsikko: Vs: Contec CMS50F oksimetri v 6.1
Kirjoitti: epiphone - 25.10.19 - klo:20.30
Ehkäpä saa.

Tällainen sivusto tuli vastaan. https://www.dll-files.com/mfc42u.dll.html

Kopioimalla oikeaan polkuun saattaa hoitaa homman.  ;)
Otsikko: Vs: Contec CMS50F oksimetri v 6.1
Kirjoitti: Tomin - 25.10.19 - klo:20.42
Näkyy olevan osa Microsoftin Visual C++ -pakettia, sen saa vaikka winetricksillä.
Koodia: [Valitse]
~> winetricks dlls list | grep -i MFC42
mfc42                    Visual C++ 6 SP4 mfc42 library; part of vcrun6 (Microsoft, 2000) [downloadable]
vcrun6                   Visual C++ 6 SP4 libraries (mfc42, msvcp60, msvcirt) (Microsoft, 2000) [downloadable]
~>

Asennuksen voi tehdä vaikka näin:
Koodia: [Valitse]
sudo apt update && sudo apt install -y winetricks
winetricks dlls vcrun6
tai vaihtoehtoisesti vcrun6:n tilalle mfc42, mutta epäilen tuon saattavan tarvita muutakin noista Visual C++:n kirjastoista. Ylempi komento ei ole tarpeen, jos winetricks on jo asennettuna.
Otsikko: Vs: Contec CMS50F oksimetri v 6.1
Kirjoitti: ilkant - 25.10.19 - klo:21.01
Jesh! Tuolla winetricksillä tämä Sp02 Assistant -ohjelma käynnistyi tässä Linuxissa (Kubuntu 18.04.3). Näistä vinkeistä suuret kiitokset. Olin jo aikeissa ottaa CMS50F:n tehtaaseen yhteyttä speksien kyselemiseksi. Ja Silicon Valleysiin.
Otsikko: Vs: Contec CMS50F oksimetri v 6.1
Kirjoitti: nm - 25.10.19 - klo:21.27
Ilmeisesti laite toimisi myös avoimen koodin softalla: https://github.com/aebruno/myoxi
Otsikko: Vs: Contec CMS50F oksimetri v 6.1
Kirjoitti: ilkant - 25.10.19 - klo:21.45
Kävi ilmi, että ohjelma käynnistyy. Mutta se ei löydä tuota oksimetria. Tämän koneen /usr/lib/ hakemistoon on lisätty joku kernel-moduuli 120x. En löydä nyt sitä enkä sitä, mistä se on peräisin. Toimimattomuus voi johtua siitä, että se ei ole asentunut oikein. Komento lsusb antaa laitteesta nyt rivin:

Koodia: [Valitse]
$ lsusb
...
Bus 002 Device 005: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light
...

Tuon tekstin googlaus vie sivulle reading /dev/ttyUSB0 (https://unix.stackexchange.com/questions/200302/reading-dev-ttyusb0).  Sitten kokeilin:

Koodia: [Valitse]
$ sudo lsusb -D /dev/ttyUSB0

$ sudo lsusb -V /dev/ttyUSB0
lsusb (usbutils) 007

Millähän keinoin tuota voisi testata, löytääkö Linux yhteyden tuohon laitteeseen (oksimetriin)?
Otsikko: Vs: Contec CMS50F oksimetri v 6.1
Kirjoitti: ilkant - 25.10.19 - klo:21.51
Ilmeisesti laite toimisi myös avoimen koodin softalla: https://github.com/aebruno/myoxi

Tuota oksimetria käytettäisiin Oscarin (https://sleepfiles.com/OSCAR/fi.htm?lang=fi) ( avoimen lähdekoodin ohjelma, joka lukee cpap-laitteen tietoja ja myös oksimetrin) kanssa. Nyt on niin, että on testattu, että tuo ohjelma toimii CMS50F firmwarella 3.9. Mutta nyt firmware onkin versio 6.1 eikä se toimi useammalla Linux, Windows eikä Mac -käyttäjällä.

Tuokin ohjelma voi auttaa selvittämään laitteen tunnistusongelmaa.

Tuo SPO2 ohjelma osaisi Windows-ymäristössä hakea tiedot .spo2 muotoiseksi tiedostoksi. Ja sen voisi importata Oscariin ongelmitta.
Otsikko: Vs: Contec CMS50F oksimetri v 6.1
Kirjoitti: nm - 25.10.19 - klo:22.06
Kävi ilmi, että ohjelma käynnistyy. Mutta se ei löydä tuota oksimetria. Tämän koneen /usr/lib/ hakemistoon on lisätty joku kernel-moduuli 120x. En löydä nyt sitä enkä sitä, mistä se on peräisin. Toimimattomuus voi johtua siitä, että se ei ole asentunut oikein. Komento lsusb antaa laitteesta nyt rivin:

Mikä versio Winestä sinulla on käytössä? Wine 2.8:ssa ja uudemmissa USB-sarjaportti ehkä toimii automaattisesti, jos käyttöoikeudet riittävät, mutta vanhemmissa voi joutua luomaan itse linkkejä: https://wiki.winehq.org/Wine_User%27s_Guide#Serial_and_Parallel_Ports

Luultavasti päällimmäinen ongelma on kuitenkin se, ettei käyttäjätunnuksellasi ole oikeuksia /dev/ttyUSB0 -laitetiedostoon. Tarkista tiedoston omistaja komennolla:

Koodia: [Valitse]
ls -l /dev/ttyUSB0

Ilmeisesti laite toimisi myös avoimen koodin softalla: https://github.com/aebruno/myoxi

Tuota oksimetria käytettäisiin Oscarin (https://sleepfiles.com/OSCAR/fi.htm?lang=fi) ( avoimen lähdekoodin ohjelma, joka lukee cpap-laitteen tietoja ja myös oksimetrin) kanssa. Nyt on niin, että on testattu, että tuo ohjelma toimii CMS50F firmwarella 3.9. Mutta nyt firmware onkin versio 6.1 eikä se toimi useammalla Linux, Windows eikä Mac -käyttäjällä.

Jahas, no jos ei toimi Windowsissakaan tuolla SpO2-ohjelmalla, niin voi olla aika vähäiset mahdollisuudet saada toimimaan Winellä.


Tuokin ohjelma voi auttaa selvittämään laitteen tunnistusongelmaa.

On ainakin helppo kokeilla:

Koodia: [Valitse]
wget https://github.com/aebruno/myoxi/releases/download/v0.0.1/myoxi-0.0.1-linux-amd64.zip
unzip myoxi-0.0.1-linux-amd64.zip
cd myoxi-0.0.1-linux-amd64/

Tunnistaako laitteen:

Koodia: [Valitse]
./myoxi --port /dev/ttyUSB0 device
tai kokeile pääkäyttäjänä, jos on oikeuksista kiinni:

Koodia: [Valitse]
sudo ./myoxi --port /dev/ttyUSB0 device
Listaa tilastoja laitteelta:

Koodia: [Valitse]
./myoxi stats
Otsikko: Vs: Contec CMS50F oksimetri v 6.1
Kirjoitti: ilkant - 25.10.19 - klo:22.20
Mikä versio Winestä sinulla on käytössä?

Koodia: [Valitse]
$ wine --version
wine-3.0 (Ubuntu 3.0-1ubuntu1)

Luultavasti päällimmäinen ongelma on kuitenkin se, ettei käyttäjätunnuksellasi ole oikeuksia /dev/ttyUSB0 -laitetiedostoon. Tarkista tiedoston omistaja komennolla:

Koodia: [Valitse]
$ ls -l /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 loka  25 21:28 /dev/ttyUSB0

Tuo Oscar ei osaa nähdä uudempia CMS50F oksimetreja, joissa kaikissa on ilmeisesti firmware v. 6.1. Kyllä Windows varmasti toimii SP02 Assistantilla. Joku kehuikin sillä lataavansa ensin tiedot tiedostoksi ja sen sitten Oscariin. Minä tässä kokeilen, josko sen Assistantin voisi saada toimimaan Linuxissa.

Kaikkein parasta olisi tietenkin saada Oscariin koodattua C++:lla muutokset, jotta se osaisi hakea tiedot laitteen firmwaren version 3,9 lisäksi versiosta 6.1. Kokeilema tuolla esitettyjä temppuja.
Otsikko: Vs: Contec CMS50F oksimetri v 6.1
Kirjoitti: ilkant - 25.10.19 - klo:22.33
Kokeilin tuota myoxi:n binääriä ja se tietysti ei pystynyt ilman sudoa tekemään oikein mitään. Mutta:

Koodia: [Valitse]
$ sudo ./myoxi --port /dev/ttyUSB0 device
INFO[0000] Using device port: /dev/ttyUSB0             
INFO[0000] Successfully connected to device at /dev/ttyUSB0
Device model: 50F
Userinfo: user
Session count: 1
------------------------------
- 2019-10-16 02:27:58 +0300 EEST (6h50m40s)


Sitten sainkin imaistua tietokoneelle ainakin näennäisesti yhtenä yönä tallettamani veren happipitoisuudet ja pulssin. Palaan astialle kun tai jos tulee ongelmia. Jälleen: suuret kiitokset neuvoista. Source-koodit latasin kyllä, mutta go teki sitten tenän. Tämä binääri toimii hyvin.

Koodia: [Valitse]
$ sudo ./myoxi --port /dev/ttyUSB0 import
INFO[0000] Database path: /home/user/.myoxi.db         
INFO[0000] Successfully opened myoxi database           
INFO[0000] Using device port: /dev/ttyUSB0             
INFO[0000] Successfully connected to device at /dev/ttyUSB0
INFO[0000] Found 1 sessions                             
INFO[0000] Importing data for session 1 - 2019-10-16 02:27:58 +0300 EEST (6h50m40s)
INFO[0014] Downloaded 24642 records. Total duration in seconds 24640.00
INFO[0014] Saving records to database           

Koodia: [Valitse]
$ sudo ./myoxi stats
INFO[0000] Database path: /home/user/.myoxi.db         
INFO[0000] Successfully opened myoxi database           
------------------------------------------------------
Start: 2019-10-16 02:27:58 End: 2019-10-16 09:18:37
------------------------------------------------------
Total Records: 24640 (n = 23599, bad data = 1041)
Average SpO2 %: 91.52 (min: 85 max: 98 sd: 19.28)
Average Pulse Rate: 58.86 (min: 52 max: 83 sd: 12.90)
ODI: 2.57
CT90: 28m16s
Oxygen Desaturation Events = 5
------------------------------------------------------
10-16 05:13:42 lasting 2s desaturation 92.38 to 88.00
10-16 06:50:13 lasting 2s desaturation 92.24 to 88.00
10-16 07:22:20 lasting 7s desaturation 94.56 to 89.71
10-16 07:22:46 lasting 5s desaturation 94.56 to 90.00
10-16 07:23:15 lasting 2s desaturation 94.56 to 90.00
Otsikko: Vs: Contec CMS50F oksimetri v 6.1 [RATKAISTU]
Kirjoitti: Tomin - 26.10.19 - klo:00.46
Lisää itsesi dialout-ryhmään ja kirjaudu sen jälkeen uudestaan sisään:
Koodia: [Valitse]
sudo usermod -G dialout -a $USERSen jälkeen pitäisi onnistua yhdistäminen ilman sudoa ja Winelläkin voi alkaa toimia.

Koodia: [Valitse]
$ sudo ./myoxi stats
INFO[0000] Database path: /home/user/.myoxi.db   

Todennäköisesti aiheuttaa myöhemmin ongelmia, jos ajat tuota ilman sudoa. Silloin oma käyttäjäsi ei pysty muokkaamaan tuota tiedostoa, koska se on rootin omistuksessa. Toki oikeudet voi korjata käsinkin.
Otsikko: Vs: Contec CMS50F oksimetri v 6.1 [RATKAISTU]
Kirjoitti: ilkant - 26.10.19 - klo:02.54
Lisää itsesi dialout-ryhmään ja kirjaudu sen jälkeen uudestaan sisään

Lisäsin itseni dialout-ryhmään ja kirjauduin ulos ja takaisin. Ei SpO2 Assistant toiminut sittenkään. Mutta myoxi toimi ilman sudoa.

Tämä alkuperäinen ongelma on jo ratkennut kun tiedosto on saatu Linuxiin. Tästä poikii toinen projekti jollekin toiselle ja sitten tuota Assistanttia ei enää tarvita ollenkaan. Eli kiitokset. Tietysti on yksi pähkinä saada se Assistant toimimaan ihan akateemisesta mielenkiinnosta. Tuossa on vielä sellainen juttu, että ilmeisesti Silicon Valleysin ajurit eivät ole asentuneet järjestelmään. Mutta silloin ei myoxi:nkaan pitäisi toimia. Ja se toimii.
Otsikko: Vs: Contec CMS50F oksimetri v 6.1 [RATKAISTU]
Kirjoitti: nm - 26.10.19 - klo:03.02
Tuossa on vielä sellainen juttu, että ilmeisesti Silicon Valleysin ajurit eivät ole asentuneet järjestelmään. Mutta silloin ei myoxi:nkaan pitäisi toimia. Ja se toimii.

Nähdäkseni laitteessa on ihan normaali USB-sarjaporttipiiri, jonka Linux tunnistaa suoraan. Silloin ei tarvitse asentaa erityisiä ajureita.

Ohjelmiston tehtävä on sitten kommunikoida sarjaportin kautta laitteen kanssa. Siihen tarvitaan siis erikoisohjelma kuten tämä myoxi, joka osaa lähettää oikeat komennot ja lukea laitteen palauttaman datan.
Otsikko: Vs: Contec CMS50F oksimetri v 6.1 [RATKAISTU]
Kirjoitti: ilkant - 04.03.20 - klo:20.25
Tiedoksi: Tuo myoxi -vinkki oli hyvä. Vein sen  Oscarin (https://sleepfiles.com/OSCAR/fi.htm?lang=fi) kehittäjätiimille. He korjasivat ohjelmasta toimimattomaksi menneen oksimetrin löytämisen ja tietojen haun. Oscarista on tulossa kuukauden sisään uusi versio 1.1.0 jossa sen pitäisi toimia.

Maailmalla on varmasti kymmeniä ellei satoja ohjelman käyttäjiä. Osa heistä voi käyttää tuota oksimetria. Kiitokset kaikkien heidän puolesta!
Otsikko: Vs: Contec CMS50F oksimetri v 6.1 [RATKAISTU]
Kirjoitti: ilkant - 12.03.20 - klo:14.04
Testasin tuota oksimetriä Oscar (https://sleepfiles.com/OSCAR/fi.htm?lang=fi) 1.1.0 beta2 ohjelmalla. Oscar löysi sen oksimetrin sekä osasi ladata tiedot. Jopa kellonajan synkronointi onnistui ja pulssi- sekä SPO2-käppyrät näkyivät synkroonissa muiden unitietojen kanssa. Tapahtumakaavioon oli tullut automaattisesti pulssin ja happipitoisuuden putoukset tapahtumina. Loistavaa!

Tekee mieli vielä hehkuttaa tätä. Ubuntu-käyttäjät, yleensäkin Linux-käyttäjät, Windows-käyttäjät ja Mac-käyttäjät saavat tämän hyödyn. Sitäpaitis tämä toimii Oscar-ohjelmalla ilman cpap-laitetta. Sitä voivat hyödyntää siis hekin, joilla ei ole uniapneaa ja laitehoitoa.