Factory Monitor

Dependencies:   mbed

factory sense HQ

Committer:
Nick123
Date:
Fri Sep 11 15:28:50 2015 +0000
Revision:
10:0333f8137979
Parent:
9:3ee4f273d7d6
Child:
11:bcac43b76579
troubleshooting

Who changed what in which revision?

UserRevisionLine numberNew contents of line
melmon 0:a521da10b15a 1 #include "mbed.h"
melmon 0:a521da10b15a 2
melmon 4:7a50e0818a47 3 #define no_pins 2
Nick123 5:faa8843f3990 4 #define Inputs 0
Nick123 9:3ee4f273d7d6 5 #define Outputs 0
melmon 4:7a50e0818a47 6 #define Rejects Values[2]
melmon 4:7a50e0818a47 7
melmon 4:7a50e0818a47 8
Nick123 9:3ee4f273d7d6 9 DigitalIn sensorPin1( p5, PullDown);
Nick123 9:3ee4f273d7d6 10 DigitalIn sensorPin2( p6, PullDown);
Nick123 1:b52588ac9aae 11 //variables
melmon 0:a521da10b15a 12
melmon 0:a521da10b15a 13 // initialize serial communication:
melmon 0:a521da10b15a 14 Serial pc(USBTX, USBRX);
melmon 0:a521da10b15a 15
Nick123 2:cff64a27ae9d 16 class PinCheck {
melmon 3:cff56a809a37 17
Nick123 2:cff64a27ae9d 18 public:
Nick123 2:cff64a27ae9d 19 PinCheck(PinName pin) : _pin(pin) {
melmon 3:cff56a809a37 20
Nick123 2:cff64a27ae9d 21 }
Nick123 2:cff64a27ae9d 22
Nick123 2:cff64a27ae9d 23
melmon 4:7a50e0818a47 24 int Go_and_check(int a) {
melmon 3:cff56a809a37 25 sensorState = _pin; // read the sensor input pin:
melmon 4:7a50e0818a47 26 int zero = 0;
melmon 4:7a50e0818a47 27 if (sensorState != lastSensorState[a]) // compare the sensorState to its previous state
melmon 0:a521da10b15a 28 {
melmon 0:a521da10b15a 29 // if the state has changed, check to see if it is a change from high to low or low to high
melmon 3:cff56a809a37 30 if (sensorState == 1){ // if the current state is HIGH then increment the counter
melmon 7:854af9ba3146 31 lastSensorState[a] = sensorState;
Nick123 10:0333f8137979 32 pc.printf("sensor state = %d", sensorState);
Nick123 10:0333f8137979 33 pc.printf("last sensor state= %d", lastSensorState);
melmon 3:cff56a809a37 34 return sensorState;
melmon 0:a521da10b15a 35 }
melmon 0:a521da10b15a 36
Nick123 5:faa8843f3990 37 else { // if the current state is LOW then ignore
Nick123 8:e417787cb2fa 38 lastSensorState[a] = sensorState;
melmon 4:7a50e0818a47 39 return zero;
melmon 0:a521da10b15a 40 }
melmon 0:a521da10b15a 41 }
melmon 4:7a50e0818a47 42 return zero;
Nick123 1:b52588ac9aae 43 }
melmon 3:cff56a809a37 44
Nick123 2:cff64a27ae9d 45 private:
Nick123 2:cff64a27ae9d 46 DigitalIn _pin;
melmon 4:7a50e0818a47 47 int sensorState;
melmon 4:7a50e0818a47 48 int lastSensorState[no_pins];
melmon 4:7a50e0818a47 49
melmon 3:cff56a809a37 50
Nick123 2:cff64a27ae9d 51 };
Nick123 2:cff64a27ae9d 52
melmon 4:7a50e0818a47 53 PinCheck inputs(p6);
melmon 4:7a50e0818a47 54 PinCheck outputs(p5);
Nick123 1:b52588ac9aae 55
Nick123 1:b52588ac9aae 56 int main() {
melmon 4:7a50e0818a47 57
Nick123 8:e417787cb2fa 58 int Values[3];
Nick123 5:faa8843f3990 59
Nick123 1:b52588ac9aae 60
Nick123 1:b52588ac9aae 61 while(1)
Nick123 1:b52588ac9aae 62 {
melmon 4:7a50e0818a47 63
melmon 4:7a50e0818a47 64 for(int i = 0; i < no_pins; i ++){
melmon 4:7a50e0818a47 65 if (i == Inputs){ Values[i] += inputs.Go_and_check(i); }
melmon 4:7a50e0818a47 66 if (i == Outputs){ Values[i] += outputs.Go_and_check(i); }
melmon 4:7a50e0818a47 67
melmon 4:7a50e0818a47 68 };
Nick123 8:e417787cb2fa 69 Rejects = (Inputs - Outputs);
Nick123 10:0333f8137979 70 pc.printf("go and check %d", Go_and_check);
Nick123 8:e417787cb2fa 71 wait(0.2);
melmon 0:a521da10b15a 72 }
Nick123 8:e417787cb2fa 73 }