void loop()

in mxdevice/Device/MXDeviceDemo.ino [191:261]


void loop()
{
  if (hasWifi)
  {
    if (messageSending && (int)(SystemTickCounterRead() - send_interval_ms) >= getInterval())
    {
      if (MESSAGE_SEND_COUNT_LIMIT == NULL || messageSendCounter <= MESSAGE_SEND_COUNT_LIMIT)
      {  
        // Check if user want to record - this is temp until we get the sound working properly
        if (digitalRead(USER_BUTTON_B) == LOW && messageReceived == false)
        {
          Screen.clean();
          Screen.print(1, "Start recording");
          do {
            // Nothing - just imitate recording
          } while (digitalRead(USER_BUTTON_B) == LOW);      
          soundRecorded = true;   
        }

        // Send data
        char messagePayload[MESSAGE_MAX_LEN];
        float *newValues;

        newValues = setMessage(messageCount++, messagePayload, soundRecorded);

        if (!messageReceived)
        {
          // Update display
          char buff[128];
          sprintf(buff, "ID: %s \r\n Temp:%sF    \r\n Humidity:%s%% \r\n Pres:%smb         \r\n" ,device_id , f2s(*(newValues), 1), f2s(*(newValues + 1), 1), f2s(*(newValues + 2), 1));
          Screen.print(buff);
        }

        EVENT_INSTANCE* message = DevKitMQTTClient_Event_Generate(messagePayload, MESSAGE);
        DevKitMQTTClient_SendEventInstance(message);

        messageSendCounter++;
      }
      else if (messageSendCounter > MESSAGE_SEND_COUNT_LIMIT && digitalRead(USER_BUTTON_A) == LOW)
      {
        Screen.clean();
        messageSendCounter = 0;
      }
      else
      {
        Screen.clean();
        Screen.print(1, "Hold A to send");
        Screen.print(2, "data to the IoT");
        Screen.print(3, "Hub...");
      }

      send_interval_ms = SystemTickCounterRead();
    }
    else
    {
      DevKitMQTTClient_Check();
    }

    // Reset display after message
    if (digitalRead(USER_BUTTON_A) == LOW && messageReceived == true)
    {
      // Set flag so data shows on display
      messageReceived = false;
    }

    // Reset mock audio
    soundRecorded = false;
  }

  delay(10);
}