Dreamforce 2014 Demo of RFID-based Salesforce Case generation for status reporting.
Dependencies: ID12RFID ReportDB SalesforceCaseGenerator SalesforceInterface
Dependents: mbed_mqtt_endpoint_ublox_ethernet mbed_mqtt_endpoint_ublox_cellular mbed_nsp_endpoint_ublox_cellular mbed_nsp_endpoint_ublox_ethernet ... more
Diff: main.cpp
- Revision:
- 10:8e85ee9227d2
- Child:
- 11:1faa9e2a2358
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue Sep 09 17:33:12 2014 +0000 @@ -0,0 +1,113 @@ +/* Copyright C2014 ARM, MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this software + * and associated documentation files the "Software", to deal in the Software without restriction, + * including without limitation the rights to use, copy, modify, merge, publish, distribute, + * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all copies or + * substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + // StatusReporter + #include "StatusReporter.h" + + // appboard LCD Panel + #if _NXP_PLATFORM + #include "C12832_lcd.h" + C12832_LCD lcd; + #endif + #if _UBLOX_PLATFORM + #include "C12832.h" + C12832 lcd(D11, D13, D12, D7, D10); + #endif + + // our Serial port + #include "Serial.h" + Serial pc(USBTX, USBRX); + + // Ethernet + #include "EthernetInterface.h" + EthernetInterface ethernet; + + // HTTP + #include "HTTPClient.h" + HTTPClient http; + + // HARD RESET +extern "C" void HardFault_Handler() { NVIC_SystemReset(); } + + // Main Task... + void mainTask(void const *v) { + // create our object instances +#if _NXP_PLATFORM || _UBLOX_PLATFORM + ErrorHandler logger(&pc,&lcd); +#endif +#if _K64F_PLATFORM + ErrorHandler logger(&pc,NULL); +#endif + + // announce + logger.log("ARM/DreamForce 2014 mbed Status Reporter v%s",APP_VERSION); + logger.turnLEDBlue(); + + // initialize Ethernet + logger.log("Initializing Ethernet..."); + ethernet.init(); + + // get a DHCP address and bring the network interface up + logger.log("Getting IP Address..."); + logger.turnLEDOrange(); + if (ethernet.connect() == 0) { + // log our IP address (DHCP) + logger.log("IP Address: %s",ethernet.getIPAddress()); + + // create the StatusReporter + StatusReporter status_reporter(&logger,(void *)&http); + + // entering main loop + logger.log("Entering Main Loop...\r\nScanning..."); + logger.turnLEDGreen(); + + // Enter the main loop + while(true) { + // check and report on status updates + status_reporter.checkAndReportOnStatus(); + + // wait a bit and look again + Thread::wait_ms(WAIT_TIME_MS); + } + } + else { + logger.log("No Network... Exiting..."); + logger.turnLEDRed(); + exit(1); + } + + // disconnect + logger.log("Disconnecting..."); + logger.turnLEDOrange(); + ethernet.disconnect(); + + // Exit + logger.log("Exiting..."); + logger.turnLEDBlue(); + exit(1); + } + + // main entry + int main() { + #if _K64F_PLATFORM + Thread workerTask(mainTask, NULL, osPriorityNormal, STACK_SIZE); + while (true) Thread::wait(10*WAIT_TIME_MS); + #else + mainTask(NULL); + #endif + } \ No newline at end of file