Pavle Radojkovic / mbed-mqtt
Committer:
pavleradojkovic
Date:
Mon Jun 20 16:24:43 2022 +0000
Revision:
0:ba7e439238ab
Inital commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pavleradojkovic 0:ba7e439238ab 1 /*******************************************************************************
pavleradojkovic 0:ba7e439238ab 2 * Copyright (c) 2014 IBM Corp.
pavleradojkovic 0:ba7e439238ab 3 *
pavleradojkovic 0:ba7e439238ab 4 * All rights reserved. This program and the accompanying materials
pavleradojkovic 0:ba7e439238ab 5 * are made available under the terms of the Eclipse Public License v1.0
pavleradojkovic 0:ba7e439238ab 6 * and Eclipse Distribution License v1.0 which accompany this distribution.
pavleradojkovic 0:ba7e439238ab 7 *
pavleradojkovic 0:ba7e439238ab 8 * The Eclipse Public License is available at
pavleradojkovic 0:ba7e439238ab 9 * http://www.eclipse.org/legal/epl-v10.html
pavleradojkovic 0:ba7e439238ab 10 * and the Eclipse Distribution License is available at
pavleradojkovic 0:ba7e439238ab 11 * http://www.eclipse.org/org/documents/edl-v10.php.
pavleradojkovic 0:ba7e439238ab 12 *
pavleradojkovic 0:ba7e439238ab 13 * Contributors:
pavleradojkovic 0:ba7e439238ab 14 * Ian Craggs - initial API and implementation and/or initial documentation
pavleradojkovic 0:ba7e439238ab 15 * Sergio R. Caprile - clarifications and/or documentation extension
pavleradojkovic 0:ba7e439238ab 16 *******************************************************************************/
pavleradojkovic 0:ba7e439238ab 17
pavleradojkovic 0:ba7e439238ab 18 #include <stdio.h>
pavleradojkovic 0:ba7e439238ab 19 #include <string.h>
pavleradojkovic 0:ba7e439238ab 20 #include <stdlib.h>
pavleradojkovic 0:ba7e439238ab 21
pavleradojkovic 0:ba7e439238ab 22 #include "MQTTPacket.h"
pavleradojkovic 0:ba7e439238ab 23 #include "transport.h"
pavleradojkovic 0:ba7e439238ab 24
pavleradojkovic 0:ba7e439238ab 25
pavleradojkovic 0:ba7e439238ab 26 int main(int argc, char *argv[])
pavleradojkovic 0:ba7e439238ab 27 {
pavleradojkovic 0:ba7e439238ab 28 MQTTPacket_connectData data = MQTTPacket_connectData_initializer;
pavleradojkovic 0:ba7e439238ab 29 int rc = 0;
pavleradojkovic 0:ba7e439238ab 30 char buf[200];
pavleradojkovic 0:ba7e439238ab 31 int buflen = sizeof(buf);
pavleradojkovic 0:ba7e439238ab 32 int mysock = 0;
pavleradojkovic 0:ba7e439238ab 33 MQTTString topicString = MQTTString_initializer;
pavleradojkovic 0:ba7e439238ab 34 char* payload = "mypayload";
pavleradojkovic 0:ba7e439238ab 35 int payloadlen = strlen(payload);
pavleradojkovic 0:ba7e439238ab 36 int len = 0;
pavleradojkovic 0:ba7e439238ab 37 char *host = "m2m.eclipse.org";
pavleradojkovic 0:ba7e439238ab 38 int port = 1883;
pavleradojkovic 0:ba7e439238ab 39
pavleradojkovic 0:ba7e439238ab 40 if (argc > 1)
pavleradojkovic 0:ba7e439238ab 41 host = argv[1];
pavleradojkovic 0:ba7e439238ab 42
pavleradojkovic 0:ba7e439238ab 43 if (argc > 2)
pavleradojkovic 0:ba7e439238ab 44 port = atoi(argv[2]);
pavleradojkovic 0:ba7e439238ab 45
pavleradojkovic 0:ba7e439238ab 46 mysock = transport_open(host,port);
pavleradojkovic 0:ba7e439238ab 47 if(mysock < 0)
pavleradojkovic 0:ba7e439238ab 48 return mysock;
pavleradojkovic 0:ba7e439238ab 49
pavleradojkovic 0:ba7e439238ab 50 printf("Sending to hostname %s port %d\n", host, port);
pavleradojkovic 0:ba7e439238ab 51
pavleradojkovic 0:ba7e439238ab 52 data.clientID.cstring = "me";
pavleradojkovic 0:ba7e439238ab 53 data.keepAliveInterval = 20;
pavleradojkovic 0:ba7e439238ab 54 data.cleansession = 1;
pavleradojkovic 0:ba7e439238ab 55 data.username.cstring = "testuser";
pavleradojkovic 0:ba7e439238ab 56 data.password.cstring = "testpassword";
pavleradojkovic 0:ba7e439238ab 57 data.MQTTVersion = 4;
pavleradojkovic 0:ba7e439238ab 58
pavleradojkovic 0:ba7e439238ab 59 len = MQTTSerialize_connect((unsigned char *)buf, buflen, &data);
pavleradojkovic 0:ba7e439238ab 60
pavleradojkovic 0:ba7e439238ab 61 topicString.cstring = "mytopic";
pavleradojkovic 0:ba7e439238ab 62 len += MQTTSerialize_publish((unsigned char *)(buf + len), buflen - len, 0, 0, 0, 0, topicString, (unsigned char *)payload, payloadlen);
pavleradojkovic 0:ba7e439238ab 63
pavleradojkovic 0:ba7e439238ab 64 len += MQTTSerialize_disconnect((unsigned char *)(buf + len), buflen - len);
pavleradojkovic 0:ba7e439238ab 65
pavleradojkovic 0:ba7e439238ab 66 rc = transport_sendPacketBuffer(mysock, (unsigned char*)buf, len);
pavleradojkovic 0:ba7e439238ab 67 if (rc == len)
pavleradojkovic 0:ba7e439238ab 68 printf("Successfully published\n");
pavleradojkovic 0:ba7e439238ab 69 else
pavleradojkovic 0:ba7e439238ab 70 printf("Publish failed\n");
pavleradojkovic 0:ba7e439238ab 71
pavleradojkovic 0:ba7e439238ab 72 exit:
pavleradojkovic 0:ba7e439238ab 73 transport_close(mysock);
pavleradojkovic 0:ba7e439238ab 74
pavleradojkovic 0:ba7e439238ab 75 return 0;
pavleradojkovic 0:ba7e439238ab 76 }