Favicon Svethardware.cz  Svět hardware   Fórum Favicon Svetaudia.cz  Svět audia Favicon TVFreak.cz  TV Freak   Fórum Favicon Digimanie.cz  Digimanie   Fórum   Galerie Společnost oXy Online s.r.o.
Strana 1 z 2 12 PosledníPoslední
Zobrazené výsledky: 1 až 15 z 18

Téma: Chybny prenos dat, com port, CreateFile, ReadFile

  1. #1
    Nováček
    Registrace
    Dec 2008
    Příspěvků
    8

    Dobry den,
    snazim se nacitat data z gps modulu do me aplikace (vyvijene v eMbedded Visual C++ 4.0
    ) pro pda (HP,ipaq - 114, WM6) pres bluetooth. Nekdy data nactu bez problemu, jindy nacitam prazdna data. Ac jsou zarizeni sparovana, spojeni je aktivni, com port vytvoreny, data odesilana. Prodleva mezi uspesnym a neuspesnym nacitanim je rozdilna (napr. 1hod-3dny).

    V aplikaci klasicky vyuzivam fce win api: handle=CreateFile(L"COM6:"...,, dale fce na nastaveni parametru serioveho prenosu, a fci ReadFile, vystupem je retezec do MessegeBoxu z ReadFile.
    Nikdy nenastane nejaka sys. chyba, handle na soubor (port) se uspesne vytvori, readfile uspesne nacte data (nekdy bohuzel ale prazdna). Samozrejme jsem testoval i jine aplikace pracujici s nacitanim dat z GPS a problem nemaji (napr. miniGPSviewer). Port (COM6) volim spravny, testoval jsem ruzne modifikace nazvu portu ("COM6:","COM6","\\\\.\\COM6","\\\\.\\COM6:","\\.\ COM6", apod.), uspel pouze "COM6:". Samozrejme ze pokud gps modul vypnu, com port se aplikaci nepovede vytvorit, tudiz predpokladam, ze propojeni je spravne. Otazkou je tedy proc ReadFile nekdy nacita prazdna data. Mam nejak adresovat zarizeni bloutooth, nebo mam vyuzivat nejake BT knihovny? Mozna by bylo nejake reseni pres sockety? Ale teto variante bych se radeji vyhnul.

    S timto problemem se "morim" uz pomerne dlouho, zkousel preinstalovat ROM, sehnat lepsi, popr. jine ovladace na bluetooth, ale uz si opravdu nevim rady.
    Budu velice vdecny za jakoukoliv radu. Dekuji.
    Odpovídat lze po přihlášení

  2. #2
    Starousedlík SMob
    Registrace
    Jan 2004
    Příspěvků
    2,017

    Dobry den,
    Nevim, jestli pochopil zcela, s cim mate problem.

    1) Jestlize je vasim jedinym problemem to, ze obcas GPS vraci prazdna data, tak je jednoduse ignorujte - pokued vracene bajty nepredstavuji NMEA retezec (nezacinaji $GPRMC apod.)
    2) Vite, ze od Windows Mobile 5 existuje intermediate driver pro GPS? To znamena, ze nemusite sam otvirat port pres CreateFile, ale pouzijete API GPSOpenDevice, GPSCloseDevice, GPSGetPosition a GPSGetDeviceState. Nevim, ale jak je to nyni u HP, HP drive pouzival pro BT Widcomm, coz vse trochu komplikuje.
    Ani GPS API ale neni bez problemu - viz moje prednaska http://jdem.cz/ajah6
    3) Mluvite o nastaveni COM portu - nekoliduje vase nastavani s nastavenim intermediate driveru? Zkusil jste jen otevrit port a nesnazit se zarizeni vnutit nejake nesmyslna a odhadovana nastaveni COM portu?

    4) HP zarizeni s Widcomm stackem mely drive problemy se stabilitou driveru - napr. pri odstreleni nastaveni bluetooth (pouze UI), prestal chodit i driver pro bluetooth a GPS se odppojila.

    Pres winsock komunikovat lze, ale je to o neco slozitejsi, nez jednoduche otevreni COM portu.
    Odpovídat lze po přihlášení



  3. #3
    Nováček
    Registrace
    Dec 2008
    Příspěvků
    8

    Dekuji za odpoved (paralelne na foru builder.cz)

    1)GPS nevraci obcas prazdna data (tedy mezi hodnotnymi retezci reps. vetemi dle protokolu NMEA, tak jak jste me pochopil). GPS nebo spis readfile vraci treba hodinu testovaní SOUSTAVNE prazdny retezec a potom se neco stane (bez meho vlivu) a nejednou zacne vse chodit dle predpokladu (chodi mi plnohodnotna data urcena k "parsovani") a o neco pozdeji zase nastane doba, kdy chodi zase soustavne pouze prazdna data...

    2)API GPS fce jsem neznal, sice by mela ma mini aplikace fungovat i pod WM2003, ale urcite vyzkousim.

    3)Toto by mohl byt zdroj problemu. Nastavuji prenosovou rychlost, paritu, stopbit, velikost jednoho bytu, ostatni standardne. Mnou zadavane paremetry jsem testoval resp. zjistoval prvne na pc aplikaci hyperterminal a nasledne v uvedenem mini gps vieweru pro ppc. Je tedy pravda, ze aplikaci mini gps viewer se take chova ponekud zvlastne, po nejake dobe se sama ukonci (uplne ukonci). Ze strany vyrobce gps modulu nejsou poskytovany zadne informce pro doporucene nastaveni prenosu (EVOLVE). Tedy pokud neni nutne parametry prenosu nastavovat, vyzkousim bez...

    4)O podobnych problemech jsem se take docetl. V mem pripade je dale gps pripojena, spojeni je aktivni.

    Ano winsock bych se rad z tohoto duvodu vyhnul.

    Dekuji
    Odpovídat lze po přihlášení

  4. #4
    Starousedlík SMob
    Registrace
    Jan 2004
    Příspěvků
    2,017

    Zustaneme jen na ce4you?

    Jeste k bodu 3) U GPS intermediate driveru zalezi na tom, za pristupujete na fyzicky (HW) nebo SW port. U SW portu na nastaveni nesejde - intermediate driver pouze simuluje dalsi COM port. Pokud se ale bijete s intermediate driverem o GPS, tak vysledky volani mohou byt opravdu nedefinovatelne. I kdyz spis by HW port mel jiz byt obsazen a Vy byste mel dostat chybu pri pokusu o pristup.
    Odpovídat lze po přihlášení

  5. #5
    Nováček
    Registrace
    Dec 2008
    Příspěvků
    8

    Zustaneme u ce4you

    Zkousel jsem spustit opraveny kod bez nastaveni parametru prenosu a stale se nedari, budu tedy muset opravdu asi volit cestu gps api fci. Mimochodem k GPS intermidiate driveru je pridelena utilita "Externi GPS" v nabidce nastaveni, zalozce system?
    V tomto jsem zkousel take ruzne prednastavovat COM port (tedy hlavne ten hardwarovy) a take bez uspechu. Jeste jsem take resil, ze v nastaveni serioveho portu Bluetooth ve volbe Nastaveni Bluetooth je prichozi COM port 5 a odchozi COM 6. Kazdopadne mini GPS viewer cte data jen z COM 6 a dalsi obdobna aplikace take. Kdyz v me aplikaci nastavim, ze chci cist z portu 5, vraci se INVALID_HANDLE_VALUE, tudiz jsem celou dobu usuzoval, ze spravny COM port je 6. Nemuze byt problem nekde v tomto? Dekuji.
    Odpovídat lze po přihlášení

  6. #6
    Starousedlík SMob
    Registrace
    Jan 2004
    Příspěvků
    2,017

    Ano, ten an applet se vetsinou jmenuje externi GPS. HW port by mel byt COM6 (pres nej asi fyzicky na BT komunikujete - v tom bych problem nevidel, terminologie Ingoing a Outgoing port je matouci ).
    Zkusil jste z aplikace otevrit ten nastaveny SW port?
    Odpovídat lze po přihlášení

  7. #7
    Nováček
    Registrace
    Dec 2008
    Příspěvků
    8

    Ano, mam HW port nastaven na COM6 a ve sve aplikaci v CreateFile take COM6, data stale neprichazeji. Pokud je gps modul zapnut ReadFile vrati prazdny retezec (spojeni je aktivni), pokud je modul vypnut, CreateFile vrati INVALID_HANDLE_VALUE a ReadFile false (spojeni neni aktivni). Dekuji.
    Odpovídat lze po přihlášení



  8. #8
    Starousedlík SMob
    Registrace
    Jan 2004
    Příspěvků
    2,017

    Asi jsme si nerozumeli - v appletu je hned prvni zalozka Programy, kde vyberete VOLNY COM port , na ktery se pripojite (uz se nebudete pripojovat na "FYZICKY-BT emulaci" HW portu, ale pripojite se na sdileny COM port). V appletu na posledni zalozce Pristup musi byt take zatrzeno Spravovat zarizeni GPS automaticky.

    Pokud Vam to nepujde, zkuste take Intermediate driver vypnout - zruste zaskrtnuti u Spravovat zarieni GPS automaticky a pripojte se na fyzicky port COM6 (ted uz o nej nebudete souperit s driverem).
    Odpovídat lze po přihlášení

  9. #9
    Starousedlík SMob
    Registrace
    Jan 2004
    Příspěvků
    2,017

    A jeste pro jistotu - nazev SW portu si zkontrolujte v registrech HKEY_LOCAL_MACHINE\System\CurrentControlSet\GPS Intermediate Driver\MultiplexerriverInterface.
    Nektera zarizeni, se kterymi jsem pracoval, pouzivala prefix GPD a ne COM.
    Odpovídat lze po přihlášení

  10. #10
    Nováček
    Registrace
    Dec 2008
    Příspěvků
    8

    Registr jsem zkontroloval HKEY_LOCAL_MACHINE\System\CurrentControlSet\GPS Intermediate Driver\Multiplexer:ActiveDevice je nastaven prefix na COM (posledni sekce neni DriverIterface tak jak u Vas ale ActiveDevice.

    Vyse uvedene jsem take otestoval. Nevim, jestli Vam rozumim, co myslite pojmem vybrat VOLNY COM port, bud muzu vybrat zadny nebo 0-9 COm (takze spise to,ze?), vyzkousel jsem kazdopadne vsechny varianty a zadna nebyla uspesna. Program reaguje stale stejne. Handle se vytvori pouze na port COM6: a nic jineho, volba v appletu nijak vysledek neovlivnuje.

    Zatim se mi vubec nezadarilo alespon na nejekou dobu data nacitat, tak jak v minulosti.

    Dekuji za venovany cas.
    Odpovídat lze po přihlášení

  11. #11
    Starousedlík SMob
    Registrace
    Jan 2004
    Příspěvků
    2,017

    K nastaveni: ActiveDevice je dalsi klic
    Pod HKEY_LOCAL_MACHINE\System\CurrentControlSet\GPS Intermediate Driver\Multiplexer musite mit hodnotu DriverInterface. COM4 apod.
    Volnym COM portem myslim COM port, ktery nekoliduje s dalsimi COM porty v zarizeni. Muze se Vam stat, ze treba COM2 je jiz obsazen, ale vy ho vvyberete ze seznamu.

    Zkousel jste po zmene hodnot soft reset (vypnuti zarizeni pres tlacitko On/Off, aby se ulozily zmeny v registrech), abyste donutil driver hodnoty znovu nacist - i kdyz by GPS driver na kazdem zarizeni mel dostat proikaz IOCTL_REFRESH?

    Kdyz rikate, ze jste nenacetl zadna data? Co presne se vam tedy vraci? ReadFile nevraci "nic" nebo nejaky nesmysl? Zkusil jste cist data, kdyz GPS mela fix?
    Zkusil jste i tu variantu s uplnym vyrazenim Intermediate driveru? Nebo se zkusit dostat k datum pres GPSOpen?
    Odpovídat lze po přihlášení

  12. #12
    Nováček
    Registrace
    Dec 2008
    Příspěvků
    8

    Nyni je hodnota DriverInterface COM6. Prenastavovani jsem zkousel i se soft resetem. I variantu s vyrazenim Intermediate driveru jsem testoval .

    ReadFile vrati true, retezec do ktereho ReadFile nacita je stejny jako pri definici tj.
    WCHAR str[83]=L"STR:Žádná data k dispozici!"; a z MessageBoxu vyleze neprepsany retezec tj."STR:Žádná data k dispozici!" Ale jak jsem uvadel, nekdy to funguje a normalne z toho dostavam plnohodnotne vety k parsovani, ktere jsem uz i vyparsoval a v realu vyzkousel.:-/

    Pustim se tedy do varianty GPSOpen...
    Odpovídat lze po přihlášení



  13. #13
    Starousedlík SMob
    Registrace
    Jan 2004
    Příspěvků
    2,017

    No pokud dostavate smysluplne hlasky, tak vam GSPS intermediate driver funguje ne? Pouze nemate FIX a intermediate driver Vam prozatim nema, co vratit? Tezko by Vam GPS samotna vracela "zadna data k dispozici".
    Update: Uz rozumim, ten retezec jste naplnil Vy? Ja myslel, ze jde o nejakou lokalizovanou hlasku. Muzete sem dat, jak pouzivate ReadFile? Zkontroloval jste lpNumberOfBytesRead, zda vubec bylo neco precteno?
    Odpovídat lze po přihlášení

  14. #14
    Nováček
    Registrace
    Dec 2008
    Příspěvků
    8

    To jsme si ted nerozumeli. Byla to ilustrace. Definuji si retezec do ktereho behem inicializace zapisu nejaky text, prave to: "zadna data k dispozici" a ten stejny nezmeny retezec je na vystupu, readfile vrati true, handle se vytvori, spojeni mezi pda a gps modulem je aktivni. Tudiz se nacetla prazdna data. Stejne tak kdyz si vytvorim prazdny retezec, tak po "projiti" readfile je navystupu porad prazdny retezec. Jinak necham gps treba 5min nabihat a potom testuji, takze bych fix uz v te chvili urcite mel mit. Diky.
    Odpovídat lze po přihlášení

  15. #15
    Starousedlík SMob
    Registrace
    Jan 2004
    Příspěvků
    2,017

    1) Napsal jsem pot k prechozimu prispevku, ze uz rozumim tomu, ze retezec je vas.
    2_)Fix by mela GPS signalizovat zmenou nejake ledky, takze pak nemusite hadat, zda fix mate.
    3) Protoze jsem trochiu deformovan svymi knihovnami, ktere jsem si napsal, tak jsem si ted udelal jednoduchy program, ktery cte data z COM portu

    Tohle dostanu ihned po spusteni (nemam fix, castecne cachovana data).

    Kód:
    $GPGGA,,,,,,0,,,,,,,,*66
    $GPVTG,,T,,M,,N,,K,N*2C
    $GPRMC,,V,,,,,,,,,,N*53
    $GPGSA,A,1,,,,,,,,,,,,,,,*1E
    $PSTIS,*61
    $GPGSV,4,1,13,04,,,,05,,,,11,66,178,,12,,,*42
    $GPGSV,4,2,13,13,02,206,,14,21,043,,17,33,299,,19,04,175,*73
    $GPGSV,4,3,13,20,63,270,,23,26,201,,28,,,,31,23,091,*49
    $GPGSV,4,4,13,32,82,021,*43
    $GPGGA,,,,,,0,,,,,,,,*66
    $GPVTG,,T,,M,,N,,K,N*2C
    $GPRMC,,V,,,,,,,,,,N*53
    $GPGSA,A,1,,,,,,,,,,,,,,,*1E
    $GPGSV,4,1,13,04,,,,05,,,,11,66,178,,12,,,*42
    $GPGSV,4,2,13,13,02,206,,14,21,043,,17,33,299,,19,04,175,*73
    $GPGSV,4,3,13,20,63,270,,23,26,201,,28,,,,31,23,091,*49
    $GPGSV,4,4,13,32,82,021,*43
    $GPGGA,,,,,,0,,,,,,,,*66
    $GPVTG,,T,,M,,N,,K,N*2C
    $GPRMC,,V,,,,,,,,,,N*53
    $GPGSA,A,1,,,,,,,,,,,,,,,*1E
    $PSTIS,*61
    $GPGSV,4,1,13,04,,,,05,,,,11,66,178,,12,,,*42
    $GPGSV,4,2,13,13,02,206,,14,21,043,,17,33,299,,19,04,175,*73
    $GPGSV,4,3,13,20,63,270,,23,26,201,,28,,,,31,23,091,*49
    $GPGSV,4,4,13,32,82,021,*43
    $GPGGA,,,,,,0,,,,,,,,*66
    $GPVTG,,T,,M,,N,,K,N*2C
    $GPRMC,,V,,,,,,,,,,N*53
    $GPGSA,A,1,,,,,,,,,,,,,,,*1E
    $GPGSV,4,1,13,04,,,,05,,,,11,66,178,,12,,,*42
    $GPGSV,4,2,13,13,02,206,,14,21,043,,17,33,299,,19,04,175,*73
    $GPGSV,4,3,13,20,63,270,,23,26,201,,28,,,,31,23,091,*49
    $GPGSV,4,4,13,32,82,021,*43
    $GPGGA,,,,,,0,,,,,,,,*66
    $GPVTG,,T,,M,,N,,K,N*2C
    $GPRMC,,V,,,,,,,,,,N*53
    $GPGSA,A,1,,,,,,,,,,,,,,,*1E
    $PSTIS,*61
    $GPGSV,4,1,13,04,,,,05,,,,11,66,178,,12,,,*42
    $GPGSV,4,2,13,13,02,206,,14,21,043,,17,33,299,,19,04,175,*73
    $GPGSV,4,3,13,20,63,270,,23,26,201,,28,,,,31,23,091,*49
    $GPGSV,4,4,13,32,82,021,*43
    $GPGGA,,,,,,0,,,,,,,,*66
    $GPVTG,,T,,M,,N,,K,N*2C
    $GPRMC,,V,,,,,,,,,,N*53
    $GPGSA,A,1,,,,,,,,,,,,,,,*1E
    $GPGSV,4,1,13,04,,,,05,,,,11,66,178,,12,,,*42
    $GPGSV,4,2,13,13,02,206,,14,21,043,,17,33,299,,19,04,175,*73
    $GPGSV,4,3,13,20,63,270,,23,26,201,,28,,,,31,23,091,*49
    $GPGSV,4,4,13,32,82,021,*43
    $GPGGA,,,,,,0,,,,,,,,*66
    $GPVTG,,T,,M,,N,,K,N*2C
    $GPRMC,,V,,,,,,,,,,N*53
    $GPGSA,A,1,,,,,,,,,,,,,,,*1E
    $PSTIS,*61
    $GPGSV,4,1,13,04,,,,05,,,,11,66,178,,12,,,*42
    $GPGSV,4,2,13,13,02,206,,14,21,043,,17,33,299,,19,04,175,*73
    $GPGSV,4,3,13,20,63,270,,23,26,201,,28,,,,31,23,091,*49
    $GPGSV,4,4,13,32,82,021,*43
    $GPGGA,,,,,,0,,,,,,,,*66
    $GPVTG,,T,,M,,N,,K,N*2C
    $GPRMC,,V,,,,,,,,,,N*53
    $GPGSA,A,1,,,,,,,,,,,,,,,*1E
    $GPGSV,4,1,13,04,,,,05,,,,11,66,178,,12,,,*42
    $GPGSV,4,2,13,13,02,206,,14,21,043,,17,33,299,,19,04,175,*73
    $GPGSV,4,3,13,20,63,270,,23,26,201,,28,,,,31,23,091,*49
    $GPGSV,4,4,13,32,82,021,*43
    $GPGGA,,,,,,0,,,,,,,,*66
    $GPVTG,,T,,M,,N,,K,N*2C
    $GPRMC,,V,,,,,,,,,,N*53
    $GPGSA,A,1,,,,,,,,,,,,,,,*1E
    $PSTIS,*61
    $GPGSV,4,1,13,04,,,,05,,,,11,66,177,,12,,,*4D
    $GPGSV,4,2,13,13,02,206,,14,21,043,,17,33,299,,19,04,175,*73
    $GPGSV,4,3,13,20,64,271,,23,26,201,,28,,,,31,24,091,*48
    $GPGSV,4,4,13,32,82,025,*47
    $GPGGA,,,,,,0,,,,,,,,*66
    $GPVTG,,T,,M,,N,,K,N*2C
    $GPRMC,,V,,,,,,,,,,N*53
    $GPGSA,A,1,,,,,,,,,,,,,,,*1E
    $GPGSV,4,1,13,04,,,,05,,,,11,66,177,,12,,,*4D
    $GPGSV,4,2,13,13,02,206,,14,21,043,,17,33,299,,19,04,175,*73
    $GPGSV,4,3,13,20,64,271,,23,26,201,,28,,,,31,24,091,*48
    $GPGSV,4,4,13,32,82,025,*47
    $GPGGA,,,,,,0,,,,,,,,*66
    $GPVTG,,T,,M,,N,,K,N*2C
    $GPRMC,,V,,,,,,,,,,N*53
    $GPGSA,A,1,,,,,,,,,,,,,,,*1E
    $PSTIS,*61
    $GPGSV,4,1,13,04,,,,05,,,,11,66,177,,12,,,*4D
    $GPGSV,4,2,13,13,02,206,,14,21,043,,17,33,299,,19,04,175,*73
    $GPGSV,4,3,13,20,64,271,,23,26,201,,28,,,,31,24,091,*48
    $GPGSV,4,4,13,32,82,025,*47
    $GPGGA,,,,,,0,,,,,,,,*66
    $GPVTG,,T,,M,,N,,K,N*2C
    $GPRMC,,V,,,,,,,,,,N*53
    $GPGSA,A,1,,,,,,,,,,,,,,,*1E
    $GPGSV,4,1,13,04,,,,05,,,,11,66,177,,12,,,*4D
    $GPGSV,4,2,13,13,02,206,,14,21,043,,17,33,299,,19,04,175,*73
    $GPGSV,4,3,13,20,64,271,,23,26,201,,28,,,,31,24,091,*48
    $GPGSV,4,4,13,32,82,025,*47
    $GPGGA,,,,,,0,,,,,,,,*66
    $GPVTG,,T,,M,,N,,K,N*2C
    $GPRMC,,V,,,,,,,,,,N*53
    $GPGSA,A,1,,,,,,,,,,,,,,,*1E
    $PSTIS,*61
    $GPGSV,4,1,13,04,,,,05,,,,11,66,177,,12,,,*4D
    $GPGSV,4,2,13,13,02,206,,14,21,043,,17,33,299,,19,04,175,*73
    $GPGSV,4,3,13,20,64,271,,23,26,201,,28,,,,31,24,091,*48
    $GPGSV,4,4,13,32,82,025,*47
    $GPGGA,,,,,,0,,,,,,,,*66
    $GPVTG,,T,,M,,N,,K,N*2C
    $GPRMC,,V,,,,,,,,,,N*53
    $GPGSA,A,1,,,,,,,,,,,,
    Rutina pro cteni:
    Kód:
    void CheckGPS()
    {
    	HANDLE hFile = ::CreateFile(_T("COM4:"),
    								GENERIC_READ,
    								NULL,
    								NULL,
    								OPEN_EXISTING,
    								NULL,
    								NULL);
    
    	if (hFile == INVALID_HANDLE_VALUE)
    	{
    		return;
    	}
    	
    	CHAR buffer[BUFFER_SIZE];
    	ZeroMemory(buffer, BUFFER_SIZE);
    	BOOL result = false;
    	DWORD count = 0;
    	
    	do
    	{
    		result = ReadFile(hFile,
    						  buffer,
    						  BUFFER_SIZE - 1,
    						  &count,
    						  NULL);
    
    		if (result && count > 0)
    		{
    			buffer[count] = '\0';		
    		}
    
    		//Prevest na WCHAR, Zpracovat, pokracovat
    
    
    	}while(result && count > 0);
    
    
    	CloseHandle(hFile);
    
    
    }
    Odpovídat lze po přihlášení

Strana 1 z 2 12 PosledníPoslední

Podobná témata

  1. Prenos (zaloha) z WM6.1 na WM6.5
    Od PeePay v sekci Touch Pro2
    Reakcí: 7
    Poslední příspěvek: 21-10-2009, 12:53
  2. Reakcí: 2
    Poslední příspěvek: 02-11-2008, 22:02
  3. Prenos AVI do PDA
    Od Pouli_ce4you v sekci Zbývající zařízení HP a Compaq
    Reakcí: 3
    Poslední příspěvek: 11-04-2006, 06:52
  4. Prenos suborov PC-PDA
    Od vlado4_ce4you v sekci Obecné problémy
    Reakcí: 18
    Poslední příspěvek: 07-06-2005, 07:47