PDA

View Full Version : Visual C++ ed nqc


Murphy
13-03-2003, 15:59
CIAO a tutti ho questo problema: nqc è un programma per far funzionare un robotino ma funziona con la console del dos! Io vorrei fare un programmino in visual c++ che attraverso la pressione di tasti vada ad trasferire il codice in nqc e quindi far muovere il robot! Come posso far capire al nqc che la presion edi un tasto (scritto in visual) corrisponde un comando?

grazie in anticipo ciao

cionci
13-03-2003, 17:13
Che tipo di programma è nqc ? Semplice testo ? Potresti farmi uno screenshot ?

Murphy
13-03-2003, 17:21
vai a questa pagina che parla di nqc e robot della lego!

http://www.cs.uu.nl/~markov/lego/

cionci
13-03-2003, 17:28
I comandi sono questi ?

task main()
{
SetWatch(1,1); Wait(100);
SetWatch(2,4); Wait(100);
SetWatch(3,9); Wait(100);
SetWatch(4,16); Wait(100);
SetWatch(5,25); Wait(100);
}

Ma come glieli passi al programma ?

Murphy
13-03-2003, 17:42
questo è un programma di prova che ho fatto:

task main()

{
OnFwd(OUT_A);
OnFwd(OUT_C);
Wait(400);
OnRev(OUT_A+OUT_C);
Wait(400);
Off(OUT_A+OUT_C);

}

Il robot va avanti per 4secondi poi si ferma e torna indientro per altri 4 secondi!

per passarlo al robot da riga di comando:
nqc -d prova.nqc -run

Il programma lo scrivi con il notepad e lo metti nella stessa directory del nqc!

Spero di essere stato chiaro

ciao

cionci
13-03-2003, 17:59
Ok...ma te lo vorresti muovere in tempo reale...quindi non creando i vari file .nqc e lanciando il programma ogni volta... Ho detto bene ?

Se lanci il programma senza passare il nome del file che succede ? Prende l'input del programma da tastiera ?!?!?

cionci
13-03-2003, 18:06
Qui c'è il sorgente di nqc: http://www.baumfamily.org/nqc/beta/

cionci
13-03-2003, 18:09
Usage: nqc [options] [actions] [ - | filename ] [actions]
- : read from stdin instead of a source_file

Interessante questo per leggere dallo standard input...

cionci
13-03-2003, 18:23
Qui c'è un programma per redirigere l'output di un programma sull'input di un altro programma...

Ovviamente te al posto di "child" dovrai lanciare "nqc -d - -run"....

Murphy
15-03-2003, 11:32
Originally posted by "cionci"

Ok...ma te lo vorresti muovere in tempo reale...quindi non creando i vari file .nqc e lanciando il programma ogni volta... Ho detto bene ?

Se lanci il programma senza passare il nome del file che succede ? Prende l'input del programma da tastiera ?!?!?

Scusa se non ti ho risposto subito ma l'adsl è down e sono tornato con il 56k!

In tempo reale non credo che funzioni bisogna sempre creare un file .nqc che lo scarichi sulla memoria del robot! Poi a me non interessa per ora che funzioni in tempo reale! Hai qualche listato?

Originally posted by "cionci"

Qui c'è un programma per redirigere l'output di un programma sull'input di un altro programma...

Ovviamente te al posto di "child" dovrai lanciare "nqc -d - -run"....


Non vedo niente

ciao

cionci
15-03-2003, 11:40
Ecco qua: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/creating_a_child_process_with_redirected_input_and_output.asp

Prova a lanciare il programma così : "nqc -d - -run" e scrivi da tastiera un programma... Prova a vedere se i comandi vengono inviati subito o alla fine del file...

Murphy
15-03-2003, 11:48
Appena posso provo e ti faccio sapere!
Ne ho visto uno fatto in builder dove creava un file start.nqc e per ogni movimento scriveva il codice lo salvava nel file start.nqc e lo eseguiva! Un pò lento ma funzionante!

ciao ;)

cionci
15-03-2003, 11:56
Originally posted by "Murphy"

Appena posso provo e ti faccio sapere!
Ne ho visto uno fatto in builder dove creava un file start.nqc e per ogni movimento scriveva il codice lo salvava nel file start.nqc e lo eseguiva! Un pò lento ma funzionante!
Così è troppo semplice ;) Se interpretasse volta volta ogni comando passato da tastiera basterebbe redirigire l'output del tuo programma su nqc ed avresti un movimento in tempo reale :)

Murphy
15-03-2003, 19:37
Ciao sono riuscito a farlo funzionare scrivendo il codice che nqc esegue e salvandolo in un file! Quindi appena premo il tasto il codice viene salvato e viene richiamato nqc che lo esegue! C'è un ritardo di 1 sec tra il comando e l'esecuzione ma per ora mi sta bene!
un'altra strada era caricare una ocx del robot la spirit.ocx che ho già registrrato e passare direttamente i comandi al robot attraverso questa spirit.ocx! Però ancora non ho capito come si ingloba in visual c++ e come si richiamano i comandi di questa ocx! Uso il Visual studio .net!!!

Grazie per l'interessamento

ciao :)