E' da un mese e più che ci giro attorno e devo però dire di avere trovarto parecchi errori.
1) Qua e la nei vari blocchi, dove si lavora attorno ai buffer S_BUF ed R_BUF, c'è molta confusione sulla dichiarazioni delle variabili che lavorano sulla dimensione del buffer: sia passa da dichiarazioni di interi nelle varianti con o senza segno, fino alle doppie word. Non ci si accorge di nulla se i buffer sono relativamente piccoli, di pochi kB, ma, se si intende lavorare un poco più massicciamente sulla memoria, i problemi vengono a galla. Nello specifico, se si tenta di implementare un client HTTP che scambi più di 32 e rotti kB di dati, va tutto a rotoli. La prima operazione che ho dovuto fare è stato ripassare tutta la libreria ed unificare l'elemento SIZE dei buffer al tipo DWORD, ripassandomi anche poi tutti iblocchi dove ne era fatto uso e le variabili connesse.
2) Un errore più grave l'ho trovato nel blocco funzione IP_CONTROL. Non teneva affato in conto delle limitazioni delle funzioni della libreria ADS di Send e Receive, che ammetto un buffer di dimensione massima di 8k. Evidentemente sono state provate ed usate sempre e solo per lo scambio di pochi byte.
3) lo stesso errore del punto 2 lo ha il blocco funzione FILE_SERVER, non tiene conto delle limitazioni della libreria ADS per il Read e Write e, quindi, se si tenta di lavorare su file di dimensioni maggiori ad 8k si ripete il precedente problema.
4) DNS_CLIENT, SNTP_CLIENT ed IP_CONTROL hanno una cattivissima gestione degli errori, o meglio, del ripristino in seguito ad errori. Soprattutto DNS_CLIENT ed IP_CONTROL, dopo un errore, magari causa mancara risposta del server o temporaneo isolamento dalla rete, non si svegliano più. L'attivazione booleana si tolta e riattivata non produce effetti perché agli affetti non azzera la variabile "state" dei vari servizi che, quindi, restano piantati nello state che ha dato errore e non vi escono più. Anche qui ho dovuto intervenire per rendere più funzionali i blocchi funzione.
Altre caratteristiche ritengo si possano ancora migliorare. Non più errori, ma differenze di punti di vista. Il blocco funzione RTC ad esempio, non dispone dei millisecondi parziali dell'ultimo secondo, che devono quindi essere ricostruiti, il FILE_SERVER non dispone di una modalità di append efficace. Ma, lavorando col riposizionamento del puntatore, non era immediato conoscere l'offset a cui puntare per non sovrascrivere dati. Piuttosto che citare il fatto che il client HTTP implementa solo il metodo GET.
Una gan bella libreria, che mi è stata molto utile evendomi evitato di reinventare molte funzioni, ma, certo, è ancora molto grezza.

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)

