Dreamforce 2014 Workshop Exercise - RFID Case Generator

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

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

Overview

This code demonstrates how to use the mbed platform with a ID-12LA RFID reader and a Freescale K64F to get data into the SalesForce cloud.
This project was generated as a workshop for DreamForce 2014..

Details

The 2014 DreamForce workshop centers around an example scenario where you, as a street light technician, will "check in" to a given street light to service it. The street lights in this example are intelligent - they are connected, have knowledge about who/what they are, and in this example, contain an RFID sensor to allow technicians to "check in" during a service event.

The purpose of the workshop exercise is to provide exposure to new developers that the mbed IDE and development environment/ecosystem is very simple and easy to setup and use. Additionally, the workshop highlights that mbed devices can directly interact with SalesForce. The slides for the workshop can be found here.

For more information about the mbed SalesForce Interface API and its use, please see: http://developer.mbed.org/teams/MBED_DEMOS/code/SalesforceInterface/

Pretty Pictures

For the workshop the mbed team designed breakout boards to connect the ID12LA to the Freescale K64F for ease of use. Pictures of the boards can be found below. If you are interested in the breakout board you can order one from the OSHPark project page or use the eagle or gerber files as you see fit.

The ID-12LA sockets onto the RFID Brekout Board which then is put onto the Freescale K64F.

/media/uploads/mbedAustin/rfidboard_-8-.small.jpg

/media/uploads/mbedAustin/rfidboard_-9-.small.jpg

Revision:
57:06a1779b73b9
Parent:
53:344e2d3de190
Child:
58:dcc6657570ef
--- a/Definitions.h	Tue Oct 07 22:12:34 2014 +0000
+++ b/Definitions.h	Thu Oct 09 04:07:11 2014 +0000
@@ -20,28 +20,30 @@
  #define _DEFINITIONS_H_
  
  // ----------------- WORKSHOP TUNABLES -----------------  
- 
- // 3 Reports for RFID-tag based support/repair conditions
- #define FIRST_REPORT_RFID         7550993
- #define FIRST_REPORT_NAME         "Tech 49"
- #define FIRST_REPORT_DESCRIPTION  "Light Out"
- #define FIRST_REPORT_CONDITION    "Investigating Issue"
- #define FIRST_REPORT_LATITUDE     "37.404120"
- #define FIRST_REPORT_LONGITUDE    "-121.973195"
+  
+ // SUPPORT PERSON #1 (this will be dispatched as a Case if the first RFID tag is swiped)
+ #define FIRST_SUPPORT_PERSON_RFID         7553843
+ #define FIRST_SUPPORT_PERSON_NAME         "James T. Kirk"
+ #define FIRST_SUPPORT_PERSON_DESCRIPTION  "Federation Technician #NCC-1701"
+ #define FIRST_SUPPORT_PERSON_STATUS       "On site/servicing"
+ #define FIRST_SUPPORT_PERSON_LATITUDE     "37.404120"
+ #define FIRST_SUPPORT_PERSON_LONGITUDE    "-121.973195"
  
- #define SECOND_REPORT_RFID        7567145
- #define SECOND_REPORT_NAME        "Tech 49"
- #define SECOND_REPORT_DESCRIPTION "Light Out"
- #define SECOND_REPORT_CONDITION   "Resolved - lightbulb burned out"
- #define SECOND_REPORT_LATITUDE    "37.404120"
- #define SECOND_REPORT_LONGITUDE   "-121.973195"
+ // SUPPORT PERSON #2 (this will be dispatched as a Case if the second RFID tag is swiped)
+ #define SECOND_SUPPORT_PERSON_RFID        9909120
+ #define SECOND_SUPPORT_PERSON_NAME        "Harry Potter"
+ #define SECOND_SUPPORT_PERSON_DESCRIPTION "Hogwarts Technician #WIZ-1234"
+ #define SECOND_SUPPORT_PERSON_STATUS      "On site/servicing"
+ #define SECOND_SUPPORT_PERSON_LATITUDE    "37.404120"
+ #define SECOND_SUPPORT_PERSON_LONGITUDE   "-121.973195"
  
- #define THIRD_REPORT_RFID         7559217
- #define THIRD_REPORT_NAME         "Tech 49"
- #define THIRD_REPORT_DESCRIPTION  "Light Out"
- #define THIRD_REPORT_CONDITION    "Unresolved - escalate"
- #define THIRD_REPORT_LATITUDE     "37.404120"
- #define THIRD_REPORT_LONGITUDE    "-121.973195"
+ // SUPPORT PERSON #3 (this will be dispatched as a Case if the third RFID tag is swiped)
+ #define THIRD_SUPPORT_PERSON_RFID         7573760
+ #define THIRD_SUPPORT_PERSON_NAME         "Kramer"
+ #define THIRD_SUPPORT_PERSON_DESCRIPTION  "UNKNOWN Technician #-1"
+ #define THIRD_SUPPORT_PERSON_STATUS       "Off site/action unsure"
+ #define THIRD_SUPPORT_PERSON_LATITUDE     "37.404120"
+ #define THIRD_SUPPORT_PERSON_LONGITUDE    "-121.973195"
  
  // ----------------- WORKSHOP TUNABLES ----------------- 
  
@@ -49,50 +51,50 @@
  #include "mbed.h"
  
  // Our App version
- #define APP_VERSION               "1.0.0"
+ #define APP_VERSION                "1.0.0"
   
  // DF2014 CaseGenerator Relay for mbed - ties into the Salesforce APEX host for case generation
- #define DF_CASE_GEN_URL           "https://df2014-arm-developer-edition.na15.force.com/services/apexrest/CaseService"
+ #define DF_CASE_GEN_URL            "https://df2014-arm-developer-edition.na15.force.com/services/apexrest/CaseService"
  
  // Enable/Disable RFID ID12 usage
- #define ID12_ENABLE               true    // true - enable, false - disable
+ #define ID12_ENABLE                true    // true - enable, false - disable
  
  // Enable/Disable verbose debugging
- #define ENABLE_DEBUG_LOGGING      false         // true - enabled, false - disabled (default)
+ #define ENABLE_DEBUG_LOGGING       false         // true - enabled, false - disabled (default)
      
  // maximum memory buffer chunk
- #define MAX_BUFFER_LENGTH         2048
+ #define MAX_BUFFER_LENGTH          2048
   
  // small buffer chunk
- #define MAX_SMALL_BUFFER_LENGTH   256
+ #define MAX_SMALL_BUFFER_LENGTH    256
 
  // What platform we are compiling on
- #define _K64F_PLATFORM            true
+ #define _K64F_PLATFORM             true
  
  // K64F needs to launch the task in a thread with a large stack size...
- #define STACK_SIZE                40000
+ #define STACK_SIZE                 40000
    
  // Wait Time for iterations (ms)
- #define WAIT_TIME_MS              500
+ #define WAIT_TIME_MS               500
  
  // Blink Time
- #define BLINK_TIME                250
+ #define BLINK_TIME                 250
  
- // Tunables for ReportDB
- #define DB_MAX_NAME_LENGTH        64
- #define DB_MAX_DESCRIPTION_LENGTH 128
- #define DB_MAX_CONDITION_LENGTH   128
- #define DB_MAX_LATLONG_LENGTH     32
- #define DB_MAX_NUM_REPORTS        3
+ // Memory tunables for SupportPersonnelDB
+ #define DB_MAX_NAME_LENGTH         64
+ #define DB_MAX_DESCRIPTION_LENGTH  128
+ #define DB_MAX_STATUS_LENGTH       128
+ #define DB_MAX_LATLONG_LENGTH      32
+ #define DB_MAX_NUM_SUPPORT_PERSONS 3
  
- // convenience definitions for ReportDB... 3 RFID tags/station  
- #define FIRST_REPORT              0
- #define SECOND_REPORT             1
- #define THIRD_REPORT              2
+ // convenience definitions for SupportPersonnelDB... 3 RFID tags/workshop station  
+ #define FIRST_SUPPORT_PERSON       0
+ #define SECOND_SUPPORT_PERSON      1
+ #define THIRD_SUPPORT_PERSON       2
  
  // PINS for RFID Reader Shield - ID12 RFID sensor + TMP36 temperature sensor
- #define RFID_TX_PIN               D1
- #define RFID_RX_PIN               D0
- #define TEMP_PIN                  A3
+ #define RFID_TX_PIN                D1
+ #define RFID_RX_PIN                D0
+ #define TEMP_PIN                   A3
  
  #endif // _DEFINITIONS_H_
\ No newline at end of file