Factory Monitor

Dependencies:   mbed

factory sense HQ

main.cpp

Committer:
melmon
Date:
2015-10-06
Revision:
11:bcac43b76579
Parent:
10:0333f8137979

File content as of revision 11:bcac43b76579:

#include "mbed.h"

#define no_pins 2
#define Inputs 0
#define Outputs 1
#define Rejects Values[2]


DigitalIn sensorPin1( p5, PullDown);
DigitalIn sensorPin2( p6, PullDown);
    //variables

// initialize serial communication:   
Serial pc(USBTX, USBRX);

class PinCheck {

public:
    PinCheck(PinName pin) : _pin(pin) {
    
    }


int Go_and_check(int a) {
    //sensorState = _pin; // read the sensor input pin:   
    //if (sensorState == 0){sensorState = 1; }
    //if (sensorState == 1){sensorState = 0; }
    sensorState = 1;
    lastSensorState[a] = 0;
    int zero = 0;         
    pc.printf("Here = %d\r\n", sensorState);   
        if (sensorState != lastSensorState[a]) // compare the sensorState to its previous state
        {
            // if the state has changed, check to see if it is a change from high to low or low to high             
            if (sensorState == 1){ // if the current state is HIGH then increment the counter
                lastSensorState[a] = sensorState;
                pc.printf("sensor state = %d\r\n", sensorState);
                pc.printf("last sensor state= %d\r\n", lastSensorState[a]);
                return sensorState;
            }
            
            else { // if the current state is LOW then ignore
                pc.printf("zero = %d \r\n", zero);
                lastSensorState[a] = sensorState;
                return zero;
            }
        }
        return zero;
}

private:
    DigitalIn _pin;
    int sensorState;
    int lastSensorState[no_pins];
};

PinCheck inputs(p6);
PinCheck outputs(p5);

int main() {
     
    int Values[3] = {0,0,0}; 

    while(1)
    {
        for(int i = 0; i < no_pins; i ++){
            if (i == Inputs){ Values[i] += inputs.Go_and_check(i); }
            if (i == Outputs){ Values[i] += outputs.Go_and_check(i); }
            pc.printf("sensor state = %d \r\n", i);
            
        };
    Rejects = (Inputs - Outputs);
    pc.printf("not here = %d \r\n", Values[1]);
    wait(0.2);    
    }
}