#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <mosquitto.h>
#define mqttBroker "10.34.1.159"
struct mosquitto *mosq;
char versionMosquitto[256];
int mq_send(int mid, char *msg) {
  return mosquitto_publish(mosq,
                           &mid,        // NULL,
                           "test",
                           strlen(msg),
                           msg,
                           0,           // QoS
                           0);
}
char *mq_version() {
  int major, minor, revision;
  mosquitto_lib_version(&major, &minor, &revision);
  sprintf(versionMosquitto,
          "Mosquitto Ver. %d.%d.%d", major, minor, revision);
  return(versionMosquitto);
}
int main(int argc, char *argv[]) {
  char payload[43];
  int mid=0;
  mosquitto_lib_init();
  printf("%s\n", mq_version());
  mosq = mosquitto_new("clientId",      // QoS 2: required
                       false,           // QoS 2: false
                       NULL);
  if(mosquitto_connect(mosq, mqttBroker, 1883, 60)){
    fprintf(stderr, "Unable to connect.\n");
    exit(1);
  }
  mq_send(0, mq_version());
  for(mid=1; mid<20; mid++) {
    sprintf(payload, "%d", mid);
    printf("%s\n", payload);
    mq_send(mid, payload);
    usleep(50000);
  }
  mosquitto_disconnect(mosq);
  mosquitto_destroy(mosq);
  mosquitto_lib_cleanup();
  printf("Terminating.\n");
}