Penn Electric Racing / Mbed 2 deprecated SystemManagement

Dependencies:   mbed CANBuffer Watchdog MODSERIAL mbed-rtos xbeeRelay IAP

Fork of SystemManagement by Martin Deng

Revision:
17:c9ce210f6654
Parent:
16:a72ffe7d879d
Child:
29:f148490b5f65
diff -r a72ffe7d879d -r c9ce210f6654 PollSwitch/PollSwitch.cpp
--- a/PollSwitch/PollSwitch.cpp	Fri Oct 24 22:38:20 2014 +0000
+++ b/PollSwitch/PollSwitch.cpp	Sat Oct 25 03:28:55 2014 +0000
@@ -1,64 +1,33 @@
 #include "PollSwitch.h"
 
-LPC_pin PollPin[12]={p1_0, p1_1, p1_4, p1_8, p1_9, p1_10, p1_14, p1_15, p1_16, p1_17, p1_27, p1_28};
-LPCDigitalOut poll[12]={    LPCDigitalIn(PollPin[0], PullDown),
-                            LPCDigitalIn(PollPin[1], PullDown), 
-                            LPCDigitalOut(PollPin[2]),
-                            LPCDigitalOut(PollPin[3]),
-                            LPCDigitalOut(PollPin[4]),
-                            LPCDigitalOut(PollPin[5]),
-                            LPCDigitalOut(PollPin[6]),
-                            LPCDigitalOut(PollPin[7]),
-                            LPCDigitalOut(PollPin[8]),
-                            LPCDigitalOut(PollPin[9]),
-                            LPCDigitalOut(PollPin[10]),
-                            LPCDigitalOut(PollPin[11])};
- 
-CANBuffer *tx_Poll_Buffer;
+LPCDigitalIn sw[]={     LPCDigitalIn(p1_0, PullDown),
+                        LPCDigitalIn(p1_1, PullDown), 
+                        LPCDigitalIn(p1_4, PullDown),
+                        LPCDigitalIn(p1_8, PullDown),
+                        LPCDigitalIn(p1_9, PullDown),
+                        LPCDigitalIn(p1_10, PullDown),
+                        LPCDigitalIn(p1_14, PullDown),
+                        LPCDigitalIn(p1_15, PullDown),
+                        LPCDigitalIn(p1_16, PullDown),
+                        LPCDigitalIn(p1_17, PullDown),
+                        LPCDigitalIn(p1_27, PullDown),
+                        LPCDigitalIn(p1_28, PullDown)
+                    };
 
-union int_to_char {
-    char ch[2];
-    uint16_t i;                       
-} converter;
-                       
-PollSwitch::PollSwitch(CANBuffer *can){
-    tx_Poll_Buffer = can;
-    
-    /*
-    for(int i = 0; i < 12; i++){
-        poll[i].mode(PullDown);    
-    }
-    */
+PollSwitch::PollSwitch(){
+    switchState = 0;
 }
 
-uint16_t poll_switches(){
-    uint16_t a = 0;
+uint16_t PollSwitch::poll(){
     int i = 0;
     
     // if a low signal is detected, previous switch is broken
-    for(i = 1; i < 12; i++){
-        if(!poll[i].read())
+    for(i = 1; i < sizeof(sw)/sizeof(sw[0]); i++){
+        if(!sw[i].read())
             break;
     }
     
     // bit on: switch may be broken
-    a = 0 & (0xFF >> (i-1));
-    return a;
-}
-
-void update_poll(const void *arg){
-    char data[2] = {0};
-    while(1){
-        converter.i = poll_switches();
-        data[0] = converter.ch[0];
-        data[1] = converter.ch[1];
-        CANMessage txMessage(TX_POLL_ID, data, 2);
-        tx_Poll_Buffer->txWrite(txMessage);
-        
-        Thread::wait(100);      //10 Hz update
-    }
-}
-
-void PollSwitch::start_update(){
-    Thread update_thread(update_poll);   
+    switchState = (1 << i);
+    return (1 << i);
 }
\ No newline at end of file