Salve a tutti, ho pensato di aprire questo topic per quanti come me stanno muovendo i primi passi con questo standard. Premetto che tutte le mie prove sono eseguite partendo dall'esempio OldStandarFirmata presente nel tool di sviluppo di arduinno. La mia scheda arduino è la versione 2009 e l'applicazione lato computer è svliluppata in VB.NET partendo dall'esempio ArduinoFirmataVBExtended scaricabile dal sito Arduino <> Firmata <> Visual Basic .NET.
Allo stato attuale ho la seguente difficoltà: quando diconnetto la comunicazione lato PC, se lo stato di un input digitale cambia, al momento della riconnessione del PC tale valore non viene aggiornato, finchè un digital input non cambia il suo stato successivamente alla riconnesisone.
Nell'esempio lato arduino trovo la condizione if riportata di seguito, che mi pare cessi di inviare lo stato degli input finchè questi non cambiano, ma anche commentando il solo if non ho risolto il mio problema
if(previousPINs[portNumber] != portValue) {
Firmata.sendDigitalPort(portNumber, portValue);
previousPINs[portNumber] = portValue;
Firmata.sendDigitalPort(portNumber, portValue);
}
avete qualche suggerimento per inviare lo stato dei digital al momento in cui viene stabilita una connessione con un PC?
Ho provato anche ad inserire il seguente codice nel metodo loop
while(Firmata.available())
{
Firmata.processInput();
if (clientIsConnected == false)
{
clientIsConnected = true;
outputPort(0, PIND &~ B00000011);
outputPort(1, PINB);
}
}
ma non ho comunque risolto, forse il metodo outputPort non invia al computer lo stato degli ingressi digitali.
Qualche idea?