Dreamforce 2014 Workshop RFID Case Generator - Completed Exercise

Dependencies:   BufferedSerial C12832 EndpointMain-rfid EthernetInterface Logger StatusReporter-df2014 mbed-rtos mbed

Fork of df-2014-workshop-rfid-case-generator-k64f by Doug Anson

Files at this revision

API Documentation at this revision

Comitter:
ansond
Date:
Wed Aug 27 05:40:16 2014 +0000
Parent:
2:96346cab3dca
Child:
4:46459ed734f3
Commit message:
using heroku service to map to SF http reqs

Changed in this revision

Definitions.h Show annotated file Show diff for this revision Revisions of this file
HTTPClient.lib Show annotated file Show diff for this revision Revisions of this file
HTTPSClient_cyassl.lib Show diff for this revision Revisions of this file
SalesforceCaseGenerator.lib Show annotated file Show diff for this revision Revisions of this file
TLS_cyassl.lib Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/Definitions.h	Sat Aug 23 21:14:53 2014 +0000
+++ b/Definitions.h	Wed Aug 27 05:40:16 2014 +0000
@@ -36,15 +36,12 @@
  
  // Our App version
  #define APP_VERSION              "1.0.0"
- 
- // DF2014 Salesforce APEX host for case generation
- #define MY_SF_HOST               "df2014-arm-developer-edition.na15.force.com"
- 
- // DF2014 Salesforce APEX case resource path
- #define MY_APEX_CASE_RESOURCE     "/services/apexrest/CaseService"
+  
+ // DF2014 CaseGenerator Relay for mbed - ties into the Salesforce APEX host for case generation
+ #define DF_CASE_GEN_URL          "http://pacific-ridge-7439.herokuapp.com/GenerateCase"
  
  // Buffer length for HTTPS requests
- #define BUFFER_LENGTH             256
+ #define BUFFER_LENGTH             512
  
  // maximum log message length
  #define MAX_LOG_MESSAGE           128
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/HTTPClient.lib	Wed Aug 27 05:40:16 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/ansond/code/HTTPClient-basicAuth/#19392aabd83d
--- a/HTTPSClient_cyassl.lib	Sat Aug 23 21:14:53 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-http://mbed.org/users/feb11/code/HTTPSClient_cyassl/#1abc65a0f50b
--- a/SalesforceCaseGenerator.lib	Sat Aug 23 21:14:53 2014 +0000
+++ b/SalesforceCaseGenerator.lib	Wed Aug 27 05:40:16 2014 +0000
@@ -1,1 +1,1 @@
-SalesforceCaseGenerator#5953127f7c19
+SalesforceCaseGenerator#5c876ee72cf0
--- a/TLS_cyassl.lib	Sat Aug 23 21:14:53 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-http://mbed.org/users/feb11/code/TLS_cyassl/#c12f49c210c2
--- a/main.cpp	Sat Aug 23 21:14:53 2014 +0000
+++ b/main.cpp	Wed Aug 27 05:40:16 2014 +0000
@@ -20,8 +20,8 @@
  #include "Definitions.h"
 
  // RFID Reader - on P14 pin 
- #include "ID12RFID.h"
- ID12RFID rfid_reader(p14); 
+ //#include "ID12RFID.h"
+ //ID12RFID rfid_reader(p14); 
 
  // Salesforce Case Generator
  #include "SalesForceCaseGenerator.h"
@@ -40,6 +40,10 @@
  #include "Serial.h"
  Serial pc(USBTX, USBRX);
  
+ // Ethernet
+ #include "EthernetInterface.h"
+ EthernetInterface ethernet;
+ 
  // Main Entry...
  int main() {
     // create our object instances
@@ -48,44 +52,73 @@
     // announce
     logger.log("DF 2014 RFID Reader\r\nVersion: %s",APP_VERSION);
     
-    // create the WidgetDB
-    WidgetDB db;
-    
-    // create the Salesforce Case Generator
-    SalesForceCaseGenerator case_generator(&logger);
+    // initialize Ethernet
+    logger.log("Initializing Ethernet...");
+    ethernet.init();
     
-    // Enter the main loop
-    while(true) {
-        // look for a readable RFID tag
-        if(rfid_reader.readable()) {
-            // capture the RFID id...
-            int rfid = rfid_reader.read();
-            logger.log("RFID: %d found...\r\nProcessing...",rfid);
-            
-            // look it up in our WidgetDB... proceed only if we find something we know about...
-            char *name = db.lookupWidgetName(rfid);
-            if (name != NULL) {
-                // build out a simple subject for the case
-                char subject[MAX_NAME_LENGTH+1];
-                memset(subject,0,MAX_NAME_LENGTH+1);
-                sprintf(subject,"Widget %s detected",name);
+    // get a DHCP address and bring the network interface up
+    logger.log("Getting IP Address...");
+    if (ethernet.connect() == 0) {
+        // log our IP address (DHCP)
+        logger.log("IP Address: %s",ethernet.getIPAddress());
+        
+        // create the WidgetDB
+        WidgetDB db;
+        
+        // create the Salesforce Case Generator
+        SalesForceCaseGenerator case_generator(&logger);
+        
+        /*
+        // Enter the main loop
+        while(true) {
+            // look for a readable RFID tag
+            if(rfid_reader.readable()) {
+                // capture the RFID id...
+                int rfid = rfid_reader.read();
+                logger.log("RFID: %d found...\r\nProcessing...",rfid);
                 
-                // create and dispatch a case
-                bool success = case_generator.createCase(subject,db.lookupWidgetDescription(rfid));
-                if (success == true) {
-                    logger.log("Case Generated!");
+                // look it up in our WidgetDB... proceed only if we find something we know about...
+                //char *name = db.lookupWidgetName(rfid);
+                if (name != NULL) {
+                    // build out a simple subject for the case
+                    char subject[MAX_NAME_LENGTH+1];
+                    memset(subject,0,MAX_NAME_LENGTH+1);
+                    sprintf(subject,"Widget %s detected",name);
+                    
+                    // create and dispatch a case
+                    bool success = case_generator.createCase(subject,db.lookupWidgetDescription(rfid));
+                    if (success == true) {
+                        logger.log("Case Generated!");
+                    }
+                    else {
+                        logger.log("Case Generation FAILED");
+                    }
                 }
                 else {
-                    logger.log("Case Generation FAILED");
+                    // unrecognized RFID
+                    logger.log("RFID unknown. Ignoring...");
                 }
-            }
-            else {
-                // unrecognized RFID
-                logger.log("RFID unknown. Ignoring...");
-            }
-         }
-      
-         // wait a bit and look again
-         wait_ms(WAIT_TIME_MS);
-      }
+             }
+          
+             // wait a bit and look again
+             wait_ms(WAIT_TIME_MS);
+          }
+          
+          */
+          
+          logger.log("Generating Sample Case...");
+          bool success = case_generator.createCase("hello doug","this is a mbed case dispatch");
+          if (success == true) {
+            logger.log("Case Generated!");
+          }
+          else {
+            logger.log("Case Generation FAILED");
+          }
+     }
+     else {
+         logger.log("No Network... Exiting...");
+     }
+     
+     // disconnect
+     ethernet.disconnect();
   }
\ No newline at end of file