Sample program for using Pubnub on AT&T IoT Starter Kit (which has the WNC modem)
Dependencies: Pubnub_mbed2_sync WNCInterface mbed-rtos mbed
Fork of WNCInterface_M2XMQTTdemo by
main.cpp@9:dcb02cfdc63c, 2016-11-10 (annotated)
- Committer:
- sveljko
- Date:
- Thu Nov 10 22:48:18 2016 +0000
- Revision:
- 9:dcb02cfdc63c
- Parent:
- 8:57a5d7fbba6d
- Child:
- 10:f05fb235b75b
Reverted to an older version of `WNCInterface` library, because of build problems (and we don't need the SSL support yet)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
JMF | 0:b476b3f6cb65 | 1 | #include "mbed.h" |
JMF | 0:b476b3f6cb65 | 2 | #include "WNCInterface.h" |
JMF | 0:b476b3f6cb65 | 3 | |
sveljko | 8:57a5d7fbba6d | 4 | #include "pubnub_sync.h" |
JMF | 0:b476b3f6cb65 | 5 | |
sveljko | 8:57a5d7fbba6d | 6 | #define CRLF "\r\n" |
JMF | 0:b476b3f6cb65 | 7 | |
JMF | 0:b476b3f6cb65 | 8 | WNCInterface eth; |
JMF | 1:ceb54785e67c | 9 | MODSERIAL pc(USBTX,USBRX,256,256); |
JMF | 0:b476b3f6cb65 | 10 | |
sveljko | 8:57a5d7fbba6d | 11 | extern "C" int myprintf(char *, ...) { return 0; } |
JMF | 1:ceb54785e67c | 12 | |
sveljko | 8:57a5d7fbba6d | 13 | int main() |
sveljko | 8:57a5d7fbba6d | 14 | { |
sveljko | 8:57a5d7fbba6d | 15 | pc.baud(115200); |
sveljko | 8:57a5d7fbba6d | 16 | pc.printf(CRLF CRLF "Pubnub Test starting..." CRLF); |
sveljko | 8:57a5d7fbba6d | 17 | |
sveljko | 8:57a5d7fbba6d | 18 | pc.printf("init() returned 0x%04X" CRLF, eth.init(NULL,&pc)); |
sveljko | 8:57a5d7fbba6d | 19 | eth.connect(); |
sveljko | 8:57a5d7fbba6d | 20 | pc.printf("IP Address: %s" CRLF, eth.getIPAddress()); |
sveljko | 8:57a5d7fbba6d | 21 | eth.doDebug(1); |
JMF | 0:b476b3f6cb65 | 22 | |
sveljko | 8:57a5d7fbba6d | 23 | pubnub_t *pbp = pubnub_alloc(); |
sveljko | 8:57a5d7fbba6d | 24 | pubnub_init(pbp, "demo", "demo"); |
sveljko | 8:57a5d7fbba6d | 25 | |
sveljko | 8:57a5d7fbba6d | 26 | while (true) { |
sveljko | 8:57a5d7fbba6d | 27 | pubnub_res rslt = pubnub_publish(pbp, "hello_world", "\"Hello world from MBed WNC!\""); |
sveljko | 8:57a5d7fbba6d | 28 | if (rslt != PNR_STARTED) { |
sveljko | 8:57a5d7fbba6d | 29 | pc.printf("Failed to start publishing, rslt=%d"CRLF, rslt); |
sveljko | 8:57a5d7fbba6d | 30 | } |
sveljko | 8:57a5d7fbba6d | 31 | else { |
sveljko | 8:57a5d7fbba6d | 32 | rslt = pubnub_await(pbp); |
sveljko | 8:57a5d7fbba6d | 33 | if (rslt != PNR_OK) { |
sveljko | 8:57a5d7fbba6d | 34 | pc.printf("Failed to finished publishing, rslt=%d"CRLF, rslt); |
sveljko | 8:57a5d7fbba6d | 35 | } |
sveljko | 8:57a5d7fbba6d | 36 | else { |
sveljko | 8:57a5d7fbba6d | 37 | pc.printf("Published! Response from Pubnub: %s"CRLF, pubnub_last_publish_result(pbp)); |
sveljko | 8:57a5d7fbba6d | 38 | } |
sveljko | 8:57a5d7fbba6d | 39 | } |
sveljko | 8:57a5d7fbba6d | 40 | |
sveljko | 8:57a5d7fbba6d | 41 | rslt = pubnub_subscribe(pbp, "hello_world", 0); |
sveljko | 8:57a5d7fbba6d | 42 | if (rslt != PNR_STARTED) { |
sveljko | 8:57a5d7fbba6d | 43 | pc.printf("Failed to start subscribing, rslt=%d"CRLF, rslt); |
sveljko | 8:57a5d7fbba6d | 44 | } |
sveljko | 8:57a5d7fbba6d | 45 | else { |
sveljko | 8:57a5d7fbba6d | 46 | rslt = pubnub_await(pbp); |
sveljko | 8:57a5d7fbba6d | 47 | if (rslt != PNR_OK) { |
sveljko | 8:57a5d7fbba6d | 48 | pc.printf("Failed to finished subscribing, rslt=%d"CRLF, rslt); |
sveljko | 8:57a5d7fbba6d | 49 | } |
sveljko | 8:57a5d7fbba6d | 50 | else { |
sveljko | 8:57a5d7fbba6d | 51 | pc.printf("Subscribed! Received messages follow: %s"CRLF); |
sveljko | 8:57a5d7fbba6d | 52 | while (char const *msg = pubnub_get(pbp)) { |
sveljko | 8:57a5d7fbba6d | 53 | pc.printf("subscribe got: %s"CRLF, msg); |
sveljko | 8:57a5d7fbba6d | 54 | } |
sveljko | 8:57a5d7fbba6d | 55 | } |
sveljko | 8:57a5d7fbba6d | 56 | } |
sveljko | 8:57a5d7fbba6d | 57 | wait_ms(1000); |
sveljko | 8:57a5d7fbba6d | 58 | } |
JMF | 0:b476b3f6cb65 | 59 | } |
JMF | 0:b476b3f6cb65 | 60 |