Go Down

Topic: Inviare dei Byte ad Patchube(Cosm) tramite sim908 (Read 2 times) previous topic - next topic

giannilucia

Allora ho provato ha cambiare il metodo come mi avete consigliato, ma purtroppo non funziona mi dà errore in compilazione, quindi ho pensato di inserire nel codice del programma /n direttamente con il SimpleWrite, ho provato a inviare questo connectMessage a cosm, ma questi dopo aver accettato la connessione TCP non risponde nulla, invece secondo il protocollo MQTT dovrebbe rispondere con dei connectACK sia nel caso in cui accetti la richiesta sia nel caso in cui il connectMessage sia sbagliato, quindi mi sorge il dubbio che al server ancora non arriva nulla.
Come posso verificare se il server riceve i byte che gli mando?

Ragazzi veramente grazie per la pazienza e il supporto che mi state dando :P!!!

lesto

uhmm un analizzatore di rete lato server tipo wireshark o snuff
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

giannilucia

Ho scaricato il programma che mi hai detto hai idea di come posso fare l'analisi della connessione con il gsm di arduino?
Scusa se ti rompo, ma ho visto che sembra abbastanza complicato, quindi magari se tu avevi già esperienza potevi velocizzarmi un pò la cosa.

giannilucia

Cmq ottimo programma, stò analizzando il traffico del mio cpu ed è veramente perfetto per quello che serve a me, il problema è far analizzare il traffico sul gsm...

lesto

il traffico del tuo cpu?

non puoi analizzare il traffico sulla rete GSM, ma puoi analizzarlo una volta che sul cavo/wifi una volta che arriva al server
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

giannilucia

Scusami, ma non ho ben capito come usare questo programma con arduino... :smiley-red:


lesto

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

giannilucia

Ciao, scusa hai ragione, sono stato un pò vago, in pratica sono riuscito finalmente ad inviare al mio server di prova una stringa, adesso stavo cercando di scrivere un metodo per farlo, è ho un errore in compilazione:


error: extra qualification 'InetGSM::' on member 'mqttConnect'

il metodo è il seguente:

int InetGSM::mqttConnect(const char* server, int port, char* msg,char* result, int resultlength)
{
  boolean connected=false;
  int n_of_at=0;
  int length_write;
  char end_c[2];
  end_c[0]=0x1a;
  end_c[1]='\0';

  while(n_of_at<3){
     if(!connectTCP(server, port)){
        #ifdef DEBUG_ON
         Serial.println("DB:NOT CONN");
      #endif   
          n_of_at++;
     }
     else{
      connected=true;
      n_of_at=3;
   }
  }

  if(!connected) return 0;
   
  gsm.SimpleWrite(msg);
 
  gsm.SimpleWrite("\n\n");
  gsm.SimpleWrite(end_c);

  switch(gsm.WaitResp(10000, 100, "SEND")){
   case RX_TMOUT_ERR:
      return 0;
   break;
   case RX_FINISHED_STR_NOT_RECV:
      return 0;
   break;
  }

     #ifdef DEBUG_ON
      Serial.println("DB:SENT");
   #endif   
  int res= gsm.read(result, resultlength);

 
  return res;
}

giannilucia

L'errore che avevo era dovuto a una scrittura sbagliata del prototipo del metodo, adesso funziona e riesco ad inviare dati al server sotto forma di stringa, adesso provo con i byte e vedo che succede...

lesto

ah, ma quindi per inviare la stringa andava bene il '\n'?
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

giannilucia

No, bisogna inserire un array di char ovvero:


char end_c[2];
  end_c[0]=0x1a;
  end_c[1]='\0';

e poi inviarlo a fine stringa, grazie a questo il server ha ricevuto la stringa.

lesto

uhmm magari è il comando che avvisa il GSM che la stringa è terminata e va inviata
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

giannilucia

Ho pensato la stessa cosa, adesso stò cercando di inviare una richiesta di connessione con il protocollo MQTT, l'ho inviata sotto forma di byte a coms, che, da quanto leggo, mi dovrebbe rispondere con un codice che mi dice se accetta o meno la connessione, ma non mi risponde nulla...
non so se magari è possibile mandare delle stringhe, invece dei byte, per chiedere la connessione, secondo te?

Go Up