here is a small part of programs of my project, to show my train of thought.
char b[] = "http://www.googlle.com";
NM_addUriRecord(ndef,(u8*)b,sizeof(b));
uint16_t messageSize = NM_getEncodedSize(ndef);
NM_encode(ndef,ndefBuf);
for(;;)
{
u8 a = snep.write(ndefBuf,messageSize,60000);
delay_ms(2000);
}
int16_t SNEP_write(const uint8_t *buf, uint8_t len, uint16_t timeout)
{
debug("\r\nSNEP active");
if (0 >= snep.llcp->activate(timeout)) {
debug("\r\nSnep failed to activate PN532 as a target\r\n");
return -1;
}
debug("\r\nSnep successed to activate PN532 as a target\r\n");
if (0 >= snep.llcp->connect(timeout)) {
debug("\r\nSnep failed to set up a connection\r\n");
return -2;
}
debug("\r\nSNEP successed to set up a connection\r\n");
// response a success SNEP message
snep.headerBuf[0] = SNEP_DEFAULT_VERSION;
snep.headerBuf[1] = SNEP_REQUEST_PUT;
snep.headerBuf[2] = 0;
snep.headerBuf[3] = 0;
snep.headerBuf[4] = 0;
snep.headerBuf[5] = len;
if (0 >= snep.llcp->write(snep.headerBuf, 6, buf, len)) {
debug("\r\nsnep write failed\r\n");
return -3;
}
debug("\r\nsnep write successed\r\n");
uint8_t rbuf[16];
if (6 > snep.llcp->read(rbuf, sizeof(rbuf))) {
debug("\r\nsnep read failed\r\n");
return -4;
}
// check SNEP version
if (SNEP_DEFAULT_VERSION != rbuf[0]) {
debug("\r\nThe received SNEP message's major version is different\r\n");
return -4;
}
// expect a put request
if (SNEP_RESPONSE_SUCCESS != rbuf[1]) {
debug("\r\nSNEP Expect a success response\r\n");
return -4;
}
debug("\r\nsnep read successed\r\n");
if(snep.llcp->disconnect(timeout))
{
debug("\r\nsnep disconect successful\r\n");
}
else
{
debug("\r\nsnep disconect fail\r\n");
}
return 1;
}