PinoTux
| Inviato il: 19/1/2013,18:51
|
Bolle non ha braccia sufficienti per stare dietro agli eventi incalzanti....
--------------- "Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza" http://iv3gfn.altervista.org/ http://pptea.altervista.org/
| |
| | MarKoZaKKa
| Inviato il: 19/1/2013,19:05
|
Eh già, Pino... Bolle-Octopus era solo una battuta, da uno che come tempo, non è che sia messo meglio Ha già fatto un enorme lavoro, di cui non gli sarò mai abbastanza grato; ho riaperto cassetti della mente chiusi da decine d'anni col PPTEA...
--------------- Tecnico qualificato in clownerie Windsurfer a tempo perso Slalomaro senza speranze
| | | | NonSoloBolleDiAcqua
| Inviato il: 19/1/2013,19:06
|
Il paziente è vivo...non ho capito come mai è ancora in sala operatoria a cuore aperto
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | MarKoZaKKa
| Inviato il: 19/1/2013,22:44
|
Ach so, doktor Bollenstein... eine kleine defibrillatoren?
--------------- Tecnico qualificato in clownerie Windsurfer a tempo perso Slalomaro senza speranze
| | | | NonSoloBolleDiAcqua
| Inviato il: 21/1/2013,11:02
|
L'operazione a cuore aperto sembra riuscita. Posto la versione beta 3.0.1. Fammi sapere...intanto continuo i test.
Ciao
Bolle
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | MarKoZaKKa
| Inviato il: 21/1/2013,11:12
|
Wunderbar! faccio test e ti dico. Grazie! (si, ho esaurito il mio tedesco )
--------------- Tecnico qualificato in clownerie Windsurfer a tempo perso Slalomaro senza speranze
| | | | NonSoloBolleDiAcqua
| Inviato il: 21/1/2013,11:23
|
ASpè un unico suggerimento:
CODICE 5 PRAGMA INTERNAL_EEPROM 10 CADS=0 20 SETIO=&H6F7EC 30 SERIALSPEED=SPEED_4800 40 DTAOUT=Rnd MOD 254+1 45 MSGID=&HA0+SLAVE 50 MRQ=MASTER*16+&HF 60 CHECK=(MRQ+DTAOUT) 70 CHECK=CHECK-((CHECK/256)*256) 80 MSGOUT=CHR(MSGID)&CHR(MRQ)&CHR(DTAOUT)&CHR(CHECK) 90 LCDPOS=17 100 LCDWRITE=MSGID & " " & MRQ & " " & DTAOUT & " " & CHECK & " " 101 PRINT MSGID & " " & MRQ & " " & DTAOUT & " " & CHECK & " " 110 SERIALOUT=MSGOUT 120 WAITMS 850 122 LCDPOS=33 123 LCDWRITE=BLANK16 125 MSGIN=SERIALINPSTR 126 IF LEN(MSGIN)=0 THEN 125 130 LCDPOS=33 135 LCDWRITE=MSGIN 136 PRINT "RIC<" & MSGIN & ">" 999 GOTO 40
Il codice funziona chiuso anche con un loopback sulla seriale...ma devi aggiungere la linea 126...ora cerco di far in modo che possa essere eliminata.
Oppure se non vuoi mettere la linea 126, puoi scivere la linea 125 in questo modo:
CODICE 125 MSGIN=SERIALINPSTR & SERIALINPSTR
Se hai dubbi o noti problemi ...abla! Ciao Bolle
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | NonSoloBolleDiAcqua
| Inviato il: 21/1/2013,14:28
|
Verificato e centrato anche il problema della contemporaneità/sovrascrittura dei dati su seriale/usb...nella versione 3.0.2 (in allegato) ho risolto anche questo problema...tant'è che funge il codice:
CODICE 10 '---------------------------------------------------------------------
20 'Funge dal firmware PPTEA 3.0.2
25 ' Test con seriale in loopback mentre si inviano dati da USB
30 '---------------------------------------------------------------------
40 SETIO=&H400FF
50 A=64
60 PRINT "START"
70 A++
80 SERIALOUT=CHR(a)&CHR(a+1)&CHR(a+2)&CHR(a+3)&CHR(a+4)&CHR(a+5)&CHR(a+6)
90 STRSER=SERIALINPSTR
100 STRUSB=USBINPSTR
110 IF STRUSB="" THEN 130
120 PRINT "USB=<" & STRUSB &">"
130 IF STRSER ="" THEN 90
140 PRINT "SER=<" & STRSER & ">"
150 WAITMS 250
160 GOTO 70
Ora mi manca solo far andare la linea di codice
CODICE 125 MSGIN=SERIALINPSTR
invece che questa:
CODICE 125 MSGIN=SERIALINPSTR & SERIALINPSTR
e poi ti buoi sbizzarrire come meglio credi...devo solo fare un calcolo di attesa a seconda della velocità impostata dalla seriale per svuotare il buffer che viene accodato.
Ho intenzione di inserire nel compilatore la funzione SERIALRESTART che è semplicemente la SERIALCLOSE...ma può trarre in inganno. Ora se la ricezione non funziona ...vuol dire che la seriale è bloccata...ed occorre fare SERIALCLOSE (dalla prossima versione del compilatore SERIALRESTART ).
Con questa versione i bug che hai sollevato dovrebbero essere chiusi!!!!
Ciao
Bolle
PS:Bravissimo! Vediamo se riuscirai a spingere il PPTEA ancora oltre...io non sarei riuscito a portarlo così lontano!!
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | PinoTux
| Inviato il: 21/1/2013,14:31
|
Meno male che ci siete...
--------------- "Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza" http://iv3gfn.altervista.org/ http://pptea.altervista.org/
| | | | NonSoloBolleDiAcqua
| Inviato il: 21/1/2013,14:55
|
Ok, ci siamo PPTEA3.0.3.hex in allegato...ora dovrebbero (condizionale) girare tutti i tuoi codici.
Non serve più attendere in un ciclo la ricezione dei dati...visto che attendi la risposta...e questa quando è arrivata te la trovi direttamente nella prima chiamata.
Per intenderci la linea 125 funge senza loop o controlli di ricezione sulla stringa....se hai dubbi/problemi... fai un fischio!
CODICE 125 MSGIN=SERIALINPSTR
Ciao
Bolle
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | MarKoZaKKa
| Inviato il: 21/1/2013,17:05
|
Meno male che ho fatto un salto sul forum prima di riflashare i pic... allora provo con la 3.0.3.
--------------- Tecnico qualificato in clownerie Windsurfer a tempo perso Slalomaro senza speranze
| | | | MarKoZaKKa
| Inviato il: 22/1/2013,11:07
|
PROBLEMINO:
perchè il codice seguente (simulazione invio programmazione nodo domotico), che con la vecchia versione del fw ha viaggiato all night long, con la nuova si ferma dopo qualche ricezione, e peraltro in maniera apparentemente casuale? (nel senso che se il master stà inviando dati, ed io fermo e faccio ripartire il PPTEA, il numero di ricezioni varia?
Setup del test: due pptea, ciascuno con due led collegati agli i/o 0 ed 1, collegamento seriale diretto.
(codice eab zippato allegato)
PPTEA master (invia la programmazione del nodo domotico, 10 stringhe di 5 pacchetti intervallati da byte non utili)
10 PRAGMA EXTERNAL_EEPROM
15 SETIO=&H0000
17 OUT=0
20 SERIALSPEED=SPEED_9600
30 SETIO=&H0000
40 CADS=0
50 OUT=0
55 WAITMS 5000
60 DATA "˙..˙CA..˙DF..˙EA..˙FB..˙GD.."
70 DATA "˙..˙HB..˙IA..˙JB..˙KC..˙LD.."
80 DATA "˙..˙MB..˙ND..˙OD..˙PE..˙QF.."
90 DATA "˙..˙RG..˙SH..˙TI..˙UJ..˙VKĦ.."
100 DATA "˙..˙WL£..˙XA..˙YÀ..˙Z˙Y..˙[Í(.."
110 DATA "˙..˙\Î*..˙]Ï,..˙^Ñ/..˙_Ò1..˙`Ó3.."
120 DATA "˙..˙aÔ5..˙bĠ7..˙cÖ9..˙d×;..˙eĜ=.."
130 DATA "˙..˙fÙ?..˙gÚA..˙hÛC..˙iÜE..˙jŬG.."
140 DATA "˙..˙kŜI..˙lßK..˙Bż..˙÷ü..˙ĝPH.."
150 DATA "˙..˙ù}v..˙úÀş..˙ûMH..˙üd`..˙ŭާ.."
160 DATA "˙..˙ŝ˙..˙ŝ˙..˙ŝ˙..˙˙Şİ..˙@@.."
170 RESTORE
180 OUTBIT(0)=1
190 FOR X=0 TO 10
200 READ DATAOUT
210 OUTBIT(1)=1
220 SERIALOUT=DATAOUT
230 OUTBIT(1)=0
240 WAITMS 5000
250 NEXT X
260 OUTBIT(0)=0
270 GOTO 170
PPTEA slave: (riceve la programmazione, estrae i pacchetti, calcola il check e se ok lampeggia entrambi i led con lampo lungo)
5 PRAGMA EXTERNAL_EEPROM
10 CADS=0
20 SETIO=&H0000
30 OUT=0
40 SERIALSPEED=SPEED_9600
45 WAITMS 500
46 SERIALCLOSE
47 WAITMS 500
50 OUTBIT(1)=0
60 OUTBIT(0)=0
70 INMSG=SERIALINPSTR
75 WAITMS 200
80 OUTBIT(0)=1
100 IF INMSG="" THEN 60
105 OUTBIT(1)=1
110 OUT=0
115 WAITMS 75
120 GOSUB :CHECKCOMM
140 GOTO 50
150 :CHECKCOMM
170 IF LEN(INMSG)< 4 THEN 340
180 RX_MSGID=ASC(MID(INMSG,1,1))
190 RX_MRQ=ASC(MID(INMSG,2,1))
200 RX_DATO=ASC(MID(INMSG,3,1))
210 RX_CHECK=ASC(MID(INMSG,4,1))
220 CHECK=RX_MRQ+RX_DATO
230 CHECK=CHECK-((CHECK/256)*256)
240 IF RX_CHECK<>CHECK THEN 320
250 FOR Y=1 TO 3
260 OUTBIT(0)=0
270 OUTBIT(1)=0
275 WAITMS 5
290 OUTBIT(1)=1
300 OUTBIT(0)=1
310 NEXT Y
315 OUT=0
320 INMSG=RIGHT(INMSG,LEN(INMSG)-1))
330 GOTO 170
340 INMSG=""
350 RETURN
Scusami se ti complico la vita....
--------------- Tecnico qualificato in clownerie Windsurfer a tempo perso Slalomaro senza speranze
| | | | NonSoloBolleDiAcqua
| Inviato il: 22/1/2013,11:47
|
CITAZIONE (MarKoZaKKa @ 22/1/2013, 11:07) Scusami se ti complico la vita.... Ma scherzi...io mi diverto...lo guardo quanto prima. Ops...vedo che la setio è posta a 0...fammi riguardare il documento....prima scremo a livello teorico ...poi mi butto nel codice. Ciao Bolle
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | NonSoloBolleDiAcqua
| Inviato il: 22/1/2013,12:03
|
Si, il problema potrebbe essere quello, cioè invece che sulla seriale comunichi al WIFI e la ricezione scatta su un interrupt che potrebbe non arrivare...prova a mettere sulla linea 30 del MASTER e la 20 dello slave SETIO=&H40000 ...vediamo cosa accade. Ciao Bolle
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | MarKoZaKKa
| Inviato il: 22/1/2013,12:33
|
Succede che si ferma ancora cmq sono veramente fuso... stavo usando la seriale senza impostarla nel setio... mah! p.s. se nello slave rem la waitms 200 dopo la serialinpstr, si blocca prima!
--------------- Tecnico qualificato in clownerie Windsurfer a tempo perso Slalomaro senza speranze
| |
| | |
|
Versione Mobile!
|
|
|
|
|
|
|
|
|
|
|
|
|
|