Come possiamo aiutarti?

Print

Invio e ricezione di caratteri ASCII tramite la porta seriale HMI

 

In alcuni casi, è necessario utilizzare l’HMI per una comunicazione diretta con un dispositivo specifico (scheda elettronica, dispositivo elettronico…) Questo esempio mostra come inviare e ricevere caratteri ASCII attraverso la porta seriale dell’HMI. Scaricate questo esempio per testare questa funzione.

Vedere il funzionamento nella sezione macro del software HMI-Tool.

Le 2 macro dell’HMI sono le seguenti

Per la ricezione dei dati

#include "MacroInit.h"
#include
void Macro_main(IN *p)
{
MarcoInit
//ToDo
unsigned char ch[512];
int lunghezza = 0;
int PortID = 0; //com1:0 com2:1
if(LocalBit[0]) /Stop alla ricezione dei dati durante la modifica dell'ASCII, e poi ricezione dopo il completamento
ritorno;
memset(ch , 0 , 512);
length = GETCHARS(PortID,ch); //Ricezione dei dati
if(length > 2) //La condizione di ricezione dei dati è impostata, il primo byte non viene mostrato, fine all'ultimo byte
{
LocalBit[1] = 1; //Bit impostato per informazioni (datalog, schermata di chiamata, ..)
memset(&LocalWord[100], 0 , 256);
memcpy((unsigned char *)(&LocalWord[100]) , &ch[0], length-0);
CLEARBUFFER(PortID); //svuotamento
}
}

Per inviare i dati

#include "MacroInit.h"
#include
// PULSANTE DI INVIO
void Macro_main(IN *p)
{
MarcoInit
//ToDo
unsigned char ch[512];
unsigned char * data = (unsigned char *)(&LocalWord[0]);
int PortID = 0; //com1:0 com2:1
memset(ch , 0 , 512);
ch[0] = ':';
memcpy(&ch[1], data , strlen(data));
ch[strlen(dati) 1] = '!';
PUTCHARS(PortID,ch,strlen(dati) 2);
LocalBit[0] = 0; /Ricezione dei dati
}