Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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
Revision 10:8e85ee9227d2, committed 2014-09-09
- Comitter:
- ansond
- Date:
- Tue Sep 09 17:33:12 2014 +0000
- Parent:
- 9:69ab67f07897
- Child:
- 11:1faa9e2a2358
- Commit message:
- updates
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- /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