LEDの点灯状態をMilkcocoaから受け取って変更するテストプログラム
Dependencies: EthernetInterface Milkcocoa_eth mbed-rtos mbed
Fork of MilkcocoaSample_Eth by
main.cpp
- Committer:
- jksoft
- Date:
- 2016-02-24
- Revision:
- 2:7be8b81dc8ac
- Parent:
- 1:a45427394577
File content as of revision 2:7be8b81dc8ac:
#include "mbed.h"
#include "MQTTEthernet.h"
#include "MQTTClient.h"
#include "Milkcocoa.h"
#include "MClient.h"
// The default setting is for the Simple IoT Board(mbed LPC1114FN28)
// Please change to fit the platform
Serial pc(USBTX, USBRX);
DigitalOut red(LED1);
Ticker flipper;
/************************* Your Milkcocoa Setup *********************************/
#define MILKCOCOA_APP_ID "...YOUR_MILKCOCOA_APP_ID..."
#define MILKCOCOA_DATASTORE "LED"
/************* Milkcocoa Setup (you don't need to change this!) ******************/
#define MILKCOCOA_SERVERPORT 1883
/************ Global State (you don't need to change this!) ******************/
const char MQTT_SERVER[] = MILKCOCOA_APP_ID ".mlkcca.com";
const char MQTT_CLIENTID[] = __TIME__ MILKCOCOA_APP_ID;
extern void onpush(MQTT::MessageData& md);
int duty = 0;
int duty_count = 0;
void flip() {
if( duty_count > duty )
{
red = 0;
}
else
{
red = 1;
}
duty_count++;
if( duty_count > 100) duty_count = 0;
}
int main() {
pc.baud(9600);
MQTTEthernet *ipstack = new MQTTEthernet();
MClient *client = new MClient(ipstack);
Milkcocoa *milkcocoa = new Milkcocoa(client, MQTT_SERVER, MILKCOCOA_SERVERPORT, MILKCOCOA_APP_ID, MQTT_CLIENTID);
pc.printf("Milkcocoa mbed ver demo\n\r\n\r\n\r");
milkcocoa->connect();
pc.printf("\n\rEther connected\n\r");
pc.printf("%d\n\r",milkcocoa->on(MILKCOCOA_DATASTORE, "push", onpush));
flipper.attach(&flip, 0.0001);
while(1) {
milkcocoa->loop();
}
}
void onpush(MQTT::MessageData& md)
{
MQTT::Message &message = md.message;
DataElement de = DataElement((char*)message.payload);
//pc.printf("onpush:%s\n\r",message.payload);
//pc.printf("%d\n\r",de.getInt("RED"));
duty = de.getInt("RED");
}
