Přejít na obsah
ARCHIVEKArchiv e-mailových konferencí o 8bitových počítačích Archiv Pandory 1999 až 2013

Původní podoba příspěvku

Michal Hučík Zpět na příspěvek

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"></td><td align=right valign="middle"></td></tr></table><BR>     <div><br/> Martine, je super, ze mam konecne nejakou zpetnou vazbu o tom, jak novy firmware funguje na ostatnich Unikartach.<br/> <br/> S temi CR a LF je to docela mrzeni a myslim, ze se k tomu jeste budu muset vratit a nejak to umravnit. Zrejme by si to mel kazdy konfigurovat primo na sve Unikarte a to samostatne jak pro Ushell rs232/tcp, tak i pro debugovaci vypisy.<br/> Take jsem premyslel, zda tam nenaimplementovat i nejaky debug stream, ktery by mi ty ladici informace posilal treba pres UDP nekam do terminalu.<br/> <br/> Momentalne mam hotovou aplikacni vrstvu pro DHCP, HTTP GET, DNS resolver a FTP klient. O vikendu jsem zacal psat a testovat API. Je to zatim jen tak cvicne a je velmi pravdepodobne, ze se to zmenni. Tady je na ochutnavku aktualni popis API pro DNS resolver:<br/> <br/> <br/> DNS Resolver:<br/> //<br/> // Pro DNS dotazy mame v multitasku k dispozici nekolik vlaken.<br/> // Kazde vlakno se muze nezavisle dotazovat bud na domenove jmeno, nebo na IP adresu.<br/> //<br/> // Vlozeni dotazu probiha prikazem cmdRLSVQUERYA, nebo cmdRLSVQUERYN. Po jeho uspesnem vlozeni<br/> // obdrzime cislo vlakna, ktere vyrizuje nas dotaz. Pokud dotaz nelze spustit, tak obdrzime<br/> // hodnotu -1 (0xff) pokud DNS resolver nebezi, nebo -2 (0xfe) pokud neni k dispozici zadne volne vlakno.<br/> // <br/> // U kazdeho jednotliveho dotazu se nastavuje jeho interrupt mode. Jestlize ma vlakno v interrupt mode <br/> // hodnotu 1, tak jakmile je tento dotaz zodpovezen, nebo ukoncen s chybou, tak Unikarta posle do Sharpa interrupt.<br/> // Zaroven hodnota interrupt mode 1 zajisti uzamceni vlakna proti tomu, aby bylo prepsano jinym dotazem drive,<br/> // nez bude precten vysledek.<br/> //<br/> // Precteni vysledku vlakna se provede prikazem cmdRLSVTHREAD. Tento prikaz deaktivuje interrupt<br/> // vytvoreny timto vlaknem a odemkne vlakno pro dalsi pouziti.<br/> //<br/> // Vlakna u kterych neni nastaven interrupt mode mohou byt okamzite po dokonceni dotazu opet pouzita.<br/> //<br/> //<br/> #define cmdRSLVSTRT     0x80    // Zapne, nebo prekonfiguruje DNS resolver.<br/>                                 //<br/>                                 // Vstup:       4B - IP adresa DNS serveru (a.b.c.d):<br/>                                 //              1. a<br/>                                 //              2. b<br/>                                 //              3. c<br/>                                 //              4. d<br/>                                 //<br/>                                 // Pokud jiz resolver bezi, tak se pouze zmeni adresa DNS serveru.<br/>                                 // Jestlize pri teto zmene prave probihaly nejake dotazy, tak samozrejme skonci jako STATE_ERROR. <br/> <br/> <br/> #define cmdRSLVSTOP     0x81    // Vypne DNS resolver.<br/> <br/> <br/> #define cmdRSLVGCFG     0x82    // Precteni konfigurace DNS resolveru.<br/>                                 //<br/>                                 // Vystup: 4B - ipadresa<br/>                                 // <br/>                                 // Pokud nameserver nebezi (viz cmdRSLVSTATUS), vraci 00 00 00 00<br/> <br/> <br/> #define cmdRSLVGDOMAIN  0x83    // Precteni implicitni domeny.<br/>                                 //<br/>                                 // Vystup: string, 0x0d<br/> <br/> #define cmdRSLVSDOMAIN  0x84    // Nastaveni implicitni domeny.<br/>                                 //<br/>                                 // Vstup: string, 0x0d<br/> <br/> #define cmdRSLVSTATUS   0x85    // Sdeli status DNS resolveru:<br/>                                 //<br/>                                 // Vystup: <br/>                                 //<br/>                                 //      1B - pocet vlaken, <br/>                                 //           nebo 0x00 pokud DNS resolver nebezi<br/>                                 //      <br/>                                 //      Pokud 1. bajt nebyl 0x00, tak nasleduje tabulka ve ktere je kazde vlakno zastoupeno jednim bajtem.<br/>                                 //      Jsou razeny postupne od vlakna s ID 0 az po posledni.<br/>                                 //<br/>                                 //      0. - 3. bit:<br/>                                 //              0 - STATE_UNUSED<br/>                                 //              1 - STATE_NEW<br/>                                 //              2 - STATE_ASKING<br/>                                 //              4 - STATE_DONE<br/>                                 //              8 - STATE_ERROR<br/>                                 //<br/>                                 //      7. bit - interrupt mode<br/>                                 //              Pokud je bit nastaven, tak to znamena, ze po vyrizeni vlakna (STATE_DONE, nebo STATE_ERROR)<br/>                                 //              bude poslan do Sharpa interrupt.<br/> <br/> <br/> #define cmdRLSVQUERYA   0x86    // Zadost o preklad jmena na IP adresu (query):<br/>                                 //<br/>                                 // Vstup:<br/>                                 //      1B - interrupt mode:<br/>                                 //              0x00 - rezim interruptu je pro tento dotaz vypnuty<br/>                                 //              0x01 - jakmile prejde vlakno s timto dotazem do STATE_DONE, <br/>                                 //                      nebo STATE_ERROR, tak posle do Sharpa interrupt<br/>                                 //<br/>                                 //      string. 0x0d - domenove jmeno (pokud je v resolveru nakonfigurovana<br/>                                 //                      implicitni domena, tak staci pouzit jen prvni cast domenoveho <br/>                                 //                      jmena a resolver si za nej sam prida tecku a nazev domeny)<br/>                                 //<br/>                                 // Vystup: 1B cislo vlakna, ktere vyrizuje tento dotaz, nebo:<br/>                                 //      0xff - resolver nebezi<br/> <br/> #define cmdRLSVQUERYN   0x87    // Zadost o preklad IP adresy na jmeno (query):<br/>                                 //<br/>                                 // Vstup:<br/>                                 //      1B - mode:<br/>                                 //              1. bit je nastaveni interruptu<br/>                                 //                      0 - interrupt neni aktivovan<br/>                                 //                      1 - po dokonceni posleme do Sharpa interrupt<br/>                                 //      4B - IP adresa<br/>                                 //<br/>                                 // Vystup: 1B cislo vlakna, ktere vyrizuje tento dotaz, nebo:<br/>                                 //      0xff - resolver nebezi<br/>                             <br/>                             <br/> #define cmdRLSVTHREAD   0x88    // Precte vlakno z resolveru.<br/>                                 //<br/>                                 // Vstup - 1B cislo vlakna                                <br/>                                 //<br/>                                 // Vystup: <br/>                                 //      1B status (viz. cmdRSLVSTATUS), nebo:<br/>                                 //              0xff - resolver nebezi<br/>                                 //              0xfe - pokud cislo vlakna neni validni<br/>                                 //<br/>                                 //      Nasledujici data budou validni jen v pripade, ze 1. bajt mel hodnotu STATE_DONE.<br/>                                 //<br/>                                 //      1B typ dotazu:<br/>                                 //              0x00 - podle jmena se resolvovala IP<br/>                                 //              0x01 - podle IP se hledalo jmeno<br/>                                 //<br/>                                 //      4B - IP adresa<br/>                                 //<br/>                                 //      1B - delka domenoveho jmena + 0x0d<br/>                                 //<br/>                                 //      string, 0x0d - domenove jmeno<br/>                                 //<br/>                                 // Pokud byl pri dotazu u vlakna pozadovan interrupt, tak se timto prikazem pro dane vlakno deaktivuje.<br/>         <br/>         <br/> #define cmdRLSVLOOKA    0x89    // Lookup - prohledne jiz uspesne dokoncene thready, zda se se v nich nenachazi preklad domenoveho jmena na IP adresu<br/>                                 //<br/>                                 // Vstup:<br/>                                 //<br/>                                 //      string. 0x0d - domenove jmeno (pokud je v resolveru nakonfigurovana<br/>                                 //                      implicitni domena, tak staci pouzit jen prvni cast domenoveho <br/>                                 //                      jmena a resolver si za nej sam prida tecku a nazev domeny)<br/>                                 //<br/>                                 // Vystup: 1B - odpoved, zda byl lookup uspesny, nebo:<br/>                                 //      0xff - resolver nebezi<br/>                                 //<br/>                                 //              0 - nenalezeno<br/>                                 //              1 - nalezeno  <br/>                                 //<br/>                                 //      Pokud bylo nalezeno, tak nasleduji 4B s IP adresou.<br/>                             <br/>                                                       <br/> #define cmdRLSVLOOKN    0x8A<br/>                                 // Lookup - prohledne jiz uspesne dokoncene thready, zda se se v nich nenachazi preklad IP adresy na jmeno.<br/>                                 //<br/>                                 // Vstup:<br/>                                 //<br/>                                 //      4B - IP adresa<br/>                                 //<br/>                                 // Vystup: <br/>                                 //      1B - delka domenoveho jmena, nebo<br/>                                 //              0x00 - nenalezeno<br/>                                 //<br/>                                 //      string, 0x0d<br/>                             <br/>                             <br/> #define cmdRLSVIP2TXT   0x8b    // Prevod IP adresy na text - "192.168.0.1\'x0d"<br/>                                 //<br/>                                 // Vstup: 4B - IP adresa<br/>                                 //<br/>                                 //<br/>                                 // Vystup: <br/>                                 //<br/>                                 //      1B delka retezce<br/>                                 //      string, 0x0d<br/>                                 //<br/> <br/> <br/> #define cmdRLSVTXT2IP   0x8c    // Prevod textu - "192.168.0.1\'x0d" na IP.<br/>                                 //<br/>                                 // Vstup: string + 0x0d<br/>                                 //<br/>                                 //<br/>                                 // Vystup: <br/>                                 //<br/>                                 //      1B - uspesnost prevodu<br/>                                 //              0 - nepovedlo se<br/>                                 //              1 - povedlo se a nasleduje IP<br/>                                 //<br/>                                 //      4B - IP adresa<br/> <br/> <br/> <br/> <br/> Dne 25.11.2013 0:45, Martin Lukasek (<a href="mailto:sharpemu@pandora.cz">sharpemu@pandora.cz</a>) napsal(a):<br/> </div>   <p>  </p> <div> </div><p>Cau chlapi,</p> <p> </p> <p>tak jsem se konecne dostal k otestovani sitovani na Unikarte a vse e mi slape na obou kartach v pohode. Na puvodni Michalove a Vaskove Unikarte chodi shell, LANINFO, NETSTAT, APR, LISTEN a samozrejme pinga ;-) Naprogramovani pres Flash Loader slo naprosto hladce. Jak Michal pise, sviti jen jedna LEDka. Asi bych i uvital CR+LF misto jen LF, protoze jedu na widlich, ale to je otazka na flame ;-) Mam to zatim bez propojky z ENC signal /INT do pinu c.52 v STM32 (PC11) a slape to v pohode. Ushell pro Win jsem zatim neupravoval, ale urcite to udelam.</p> <p> </p> <p>Na Bohousove unikarte je zatim jen LANINFO, ale zase je navic web server, kde je super featurka zobrazeni obrazovky ;-) To je moc pekne. Co takhle live stream i s ovladanim klavesnice, proste Remote Console? Ehmm, jo, vim, uz mlcim ;-)</p> <p> </p> <p>Uz se tesim na nejakou tu API podporu. S temi sitovymi hrami bych nebyl tak skepticky. Urcite neco osobne zkusim napsat.</p> <p> </p> <p>Krasny vecer</p> <p> </p> <p>Martin</p> <p> </p>  <p><br/> ---<br/> <b>POZOR! Provoz systému Pandora.cz bude k 30. listopadu 2013 ukončen.</b><br/> Více </p>