Surová data tak, jak byla v roce 2013 stažena z Pandory (HTML zdroj bez úprav, osobní e-mailové adresy jsou maskované).
<!-------------------------------------------------------------->
<table width="100%"><tr><td align="left" valign="middle"><B>Re: Unikarta FW rev.60:</B></td><td align=right valign="middle"></td></tr></table><BR><p>Ahoj,</p> <p>tak jsem se konecne dostal alespon k Ushell. Znovu jsem to preklopil na PC a tentokrat jsem si dal praci, abyh do toho nezasahoval moc zivelne a dalo se to kdykoli </p> <p>aktualizovat, kdyz vydas novejsi verzi. </p> <p>V podstate se lisi zacatek, kde otevirani toho serialu je fakt na Win a LINUX uplne jine. Muzeme to zavrapovat do nejake init funkce nebo udelat ifdefama. Pak jsem si napsal </p> <p>par funkci, v podstate je potreba, abys obdobne zabalil read a write, ktery pouzivas, delal jsem to tak, abych se prizpusobil spis ja, takze v zasade staci ve Tvem zdrojaku </p> <p>prejmenovat.</p> <p>void ClosePort ( HANDLE pd, struct termios *oldtio )<br/>void ReadResult ( HANDLE pd, char *result, unsigned char result_len ) <br/>BOOL WriteSer( HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite )<br/>BOOL ReadSer( HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead )</p> <p>Jinak jsem se s par drobnostmi docela natrapil, za prve polynom, ktery pouzivas na CRC je jiny nez ktery pouzivam ja a ktery pouzivaji standardni PC programy, takze mi chvili </p> <p>trvalo, nez jsem pochopil, ze mi to ani vyjit nemuze. Jsem natvrdlej. Nakonec jsem zvolil nejjednodusii reseni a vzal jsem si zdrojaky na CRC32 z STM. </p> <p>Dalsi legrace byla s prenosem. Cteni v pohode okolo 11,5 kB/s, ale zapis cca 1 kB/s. Pomerne rychle jsem prisel na to, ze to dela ten zapis po bajtu. Zajimavy je, ze u cteni </p> <p>to nevadi. Jenze, kdyz jsem to zacal zapisovat po 128 bajtech, tak to nefungovalo spolehlive, padalo to, timeoutovalo, psalo blby data do souboru. Po par hodinach zkoumani </p> <p>jsem prisel na uplne jednoduchou vec. Po kazdem zapisu na serial je potreba na chvili vratit cas systemu (Sleep(0)) a slape to jako vino. Takze jsem upravil zapisovou rutinu, </p> <p>obodbne jako cteni. Vsechno flaknu do pameti a pak vysypu na serial jako x 128 bajtovych bufferu + zbytek. Rychlost zapisu cca 9.5 kB/s. To uz je docela ok.</p> <p>Podle toho, jak se vypisuji ty tecky pri cteni a zapisu je videt, ze se cteni bufferuje cca po 2 kB, kdyzto zapis se hned a plynule odesila.</p> <p>Jo, jeste jsem upravil na zacatku to vypisovani helpu, pri zadnem argumentu to nevypise help, ale vriti se to do otevreni portu a to mi na Win pada, kdyz sahnu na neexistujici </p> <p>argument. Taky se neodalokovava RAM alokovana malloc(), ale je pravda, ze ten program pak proste skonci, takze co uz, ale tak nejak z principu to tam asi dodelam ;-) Jo a samo </p> <p>se nepocita s mnohamegabajtovyma souborama, ktery by se nemusely vlezt do RAM, ale to asi nikdo pres seriak posilat nebude ;-)))) To jen, ze neni osetrenej ten malloc().</p> <p>Taky mne napadlo jedno drobne vylepseni UShellu. Nechces tam dodelat VER prikaz? Ja si to obcas testuju pres Putty, idealne po nahrani noveho fw a tak bych hned vedel, ze je </p> <p>to ok. Monza by stacilo jen prihodit verzi do hlasky po resetu.</p> <p>Ve finale jsem chtel vyzkouset opravdovy serial a nejen USB, ale to mi teda neslo. Za prve je trochu zrada na Unikarte, asi jsem pouzil spatny konektor, ale je hodne vzadu od </p> <p>kraje desky, takze mi tam nejde poradne zastrcit kabel s koncovkami. Tak jsem to pres redukce prodlouzil, ale ani tak mi to neslape. Mozna mam blby kabel, budu to muset </p> <p>premerit. Taky muzu mit nejakou zradu na portu v PC. Nejlepsi co se mi podarilo dostat je pri resetu Unikarty par paznaku. Zkousel nekdo normalni serial na Unikarte?</p> <p>Spustitelny EXE je na <a href="http://www.8bity.cz/files/Sharp/UniUSARTshell_exe.zip">http://www.8bity.cz/files/Sharp/UniUSARTshell_exe.zip</a>.<br/>Zdrojaky se daji stahnout z <a href="http://www.8bity.cz/files/Sharp/UniUSARTshell_src.zip">http://www.8bity.cz/files/Sharp/UniUSARTshell_src.zip</a>.</p> <p>Krasny den, Martin.</p>