Hi,
I have modyfied the MQTT example to, so I can send data to my own AWS account.
I'm trying to publish big packets of data, (> 7K) without luck .
what I have done is :
1. change CONFIG_MQTT_MAX_PACKET_LENGTH to 8500
2. modify client_write, the following way,
static int client_write(struct mqtt_client *client, const u8_t *data,
u32_t datalen)
{
int err_code=0;
u32_t tmplen=datalen;
u8_t* tmpdata=data;
MQTT_TRC("[%p]: Transport writing %d bytes.", client, datalen);
MQTT_SET_STATE(client, MQTT_STATE_PENDING_WRITE);
do {
if (tmplen > MAX_SEND_SIZE_SCK)
{
err_code += mqtt_transport_write(client, tmpdata, MAX_SEND_SIZE_SCK);
tmplen -= MAX_SEND_SIZE_SCK;
tmpdata += MAX_SEND_SIZE_SCK;
if (err_code) printk("failed with errorcode : %d\n",err_code);
else
printk("all_ok!\n");
}
else
{
err_code += mqtt_transport_write(client, tmpdata, tmplen);
break;
}
} while (1);
MQTT_RESET_STATE(client, MQTT_STATE_PENDING_WRITE);
if (err_code != 0) {
printk("TCP write failed, errno = %d, "
"closing connection\n", errno);
client_disconnect(client, err_code);
return -EIO;
}
MQTT_TRC("[%p]: Transport write complete.", client);
client->last_activity = mqtt_sys_tick_in_ms_get();
return 0;
}
I still get :
TCP write failed, errno = 12, closing connection
any idea why?