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
Revision 3:03108e424931, committed 2014-08-27
- 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
--- 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