Buongiorno a tutti,
sto scrivendo un main per un mdb slave. Anche avendo minimizzato il main, impostando dei valori fissi e non dipendenti dalla rete, mi esce quest'errore che non riesco a capire da cosa dipenda. Qualcuno può aiutarmi? é molto urgente.
Vi ringrazio in anticipo.
Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento se non lo hai già fatto: Regolamento
Qui una serie di link utili, non inerenti al tuo problema:
- qui una serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections
- qui le pinout delle varie schede by xxxPighi: Pinout
- qui una serie di link generali utili: Link Utili
Non avendo la libreria NON possiamo compilare.
L'errore dice molto di più. Anche quale riga. Posta gli errori in maniera completa (e usa tag code). Grazie
P.S.: Nell'IDE usa CTRL+T che lo indenta meglio e ... leva quelle numerose righe vuote, non è un temino che più lungo è meglio è.
ERRORE: Se usi CTRL+T vedrai che hai chiuso male le graffe. Tutte le tue funzioni sono dentro la loop()
#include <SoftwareSerial.h>
#include "MDB.h"
void setup() {
// For debug LEDs
DDRC |= 0b00111111; // PORTC LEDs for 6 commands in MDB_CommandHandler() switch-case
MDB_Init();
sei();
Serial.begin(9600);
uint16_t user_funds = 3;
String http_code = "200";
// String objects and indexes for parsing HTTP Response
uint16_t item_cost = CSH_GetItemCost();
uint16_t item_numb = CSH_GetVendAmount();
}
void loop() {
MDB_CommandHandler();
sessionHandler();
// without this delay READER_ENABLE command won't be in RX Buffer
// Establish the reason of this later (maybe something is wrong with RX buffer reading)
if (CSH_GetDeviceState() == CSH_S_DISABLED)
delay(10);
void sessionHandler(void) {
switch (CSH_GetDeviceState())
{
case CSH_S_ENABLED : RFID_readerHandler(); break;
case CSH_S_VEND : transactionHandler(); break;
default : break;
}
};
void RFID_readerHandler(void) {
CSH_SetUserFunds(user_funds); // Set current user funds
CSH_SetPollState(CSH_BEGIN_SESSION); // Set Poll Reply to BEGIN SESSION
};
void transactionHandler(void) {
if (http_code != F("200"))
{
CSH_SetPollState(CSH_VEND_DENIED);
CSH_SetDeviceState(CSH_S_SESSION_IDLE);
Serial.println(F("Vend Denied"));
return;
} else {
// If code is 200 -- tell VMC that vend is approved
CSH_SetPollState(CSH_VEND_APPROVED);
CSH_SetDeviceState(CSH_S_SESSION_IDLE);
Serial.println(F("Vend Approved"));
}
}
}
Mi scusi se non mi sono presentato ma purtroppo ho molta fretta oggi. Lo farò appena avrò un momento libero.
Gli errori: "bozza.ino: In function 'void loop()':
bozza:31: error: 'sessionHandler' was not declared in this scope
bozza:37: error: a function-definition is not allowed here before '{' token
bozza:76: error: expected '}' at end of input
'sessionHandler' was not declared in this scope
"
PS: sto provando a modificare i post ma mi da dei limiti di tempo, scusi
Cosi dovrebbero essere a posto le graffe, e ti suggerisco di portarle sempre a capo:
#include "MDB.h"
void setup()
{
// For debug LEDs
DDRC |= 0b00111111; // PORTC LEDs for 6 commands in MDB_CommandHandler() switch-case
MDB_Init();
sei();
Serial.begin(9600);
uint16_t user_funds = 3;
String http_code = "200";
// String objects and indexes for parsing HTTP Response
uint16_t item_cost = CSH_GetItemCost();
uint16_t item_numb = CSH_GetVendAmount();
}
void loop()
{
MDB_CommandHandler();
sessionHandler();
// without this delay READER_ENABLE command won't be in RX Buffer
// Establish the reason of this later (maybe something is wrong with RX buffer reading)
if (CSH_GetDeviceState() == CSH_S_DISABLED)
delay(10);
}
void sessionHandler(void)
{
switch(CSH_GetDeviceState())
{
case CSH_S_ENABLED :
RFID_readerHandler();
break;
case CSH_S_VEND :
transactionHandler();
break;
default :
break;
}
}
void RFID_readerHandler(void)
{
CSH_SetUserFunds(user_funds); // Set current user funds
CSH_SetPollState(CSH_BEGIN_SESSION); // Set Poll Reply to BEGIN SESSION
}
void transactionHandler(void)
{
if (http_code != F("200"))
{
CSH_SetPollState(CSH_VEND_DENIED);
CSH_SetDeviceState(CSH_S_SESSION_IDLE);
Serial.println(F("Vend Denied"));
return;
}
else
{
// If code is 200 -- tell VMC that vend is approved
CSH_SetPollState(CSH_VEND_APPROVED);
CSH_SetDeviceState(CSH_S_SESSION_IDLE);
Serial.println(F("Vend Approved"));
}
}
Okay, la ringrazio ho risolto tutto. Ora dovrebbe essere apposto, grazie ancora.
Di nulla. Per curiosità che fa la libreria MDB ?