kobe leysen / DAQ

Dependents:   TEST

Committer:
leysenkobe
Date:
Wed Apr 30 11:40:31 2014 +0000
Revision:
2:ea7eb499a27a
Parent:
0:88f8e80dc5fd
Child:
4:cc896bb62196
jllklkj; ;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
leysenkobe 0:88f8e80dc5fd 1 #include "DAQ.h"
leysenkobe 0:88f8e80dc5fd 2 #include "mbed.h"
leysenkobe 0:88f8e80dc5fd 3
leysenkobe 0:88f8e80dc5fd 4 //Constructor en Destructor
leysenkobe 0:88f8e80dc5fd 5 DAQ::DAQ(void)
leysenkobe 0:88f8e80dc5fd 6 {
leysenkobe 0:88f8e80dc5fd 7 this->channels = new Channel*[16];
leysenkobe 0:88f8e80dc5fd 8 this->multiplexer = new Multiplexer();
leysenkobe 0:88f8e80dc5fd 9 this->amplifier = new Amplifier();
leysenkobe 0:88f8e80dc5fd 10 this->adc = new ADC();
leysenkobe 0:88f8e80dc5fd 11 this->initialized = false;
leysenkobe 0:88f8e80dc5fd 12
leysenkobe 0:88f8e80dc5fd 13 for (int i = 0; i < 16; i++)
leysenkobe 0:88f8e80dc5fd 14 {
leysenkobe 0:88f8e80dc5fd 15 channels[i] = new Channel();
leysenkobe 0:88f8e80dc5fd 16 }
leysenkobe 0:88f8e80dc5fd 17 }
leysenkobe 0:88f8e80dc5fd 18 DAQ::~DAQ(void)
leysenkobe 0:88f8e80dc5fd 19 {
leysenkobe 0:88f8e80dc5fd 20 for (int i = 0; i < 16; i++)
leysenkobe 0:88f8e80dc5fd 21 {
leysenkobe 0:88f8e80dc5fd 22 delete channels[i];
leysenkobe 0:88f8e80dc5fd 23 }
leysenkobe 0:88f8e80dc5fd 24 delete [] channels;
leysenkobe 0:88f8e80dc5fd 25 delete multiplexer;
leysenkobe 0:88f8e80dc5fd 26 delete amplifier;
leysenkobe 0:88f8e80dc5fd 27 delete adc;
leysenkobe 0:88f8e80dc5fd 28 }
leysenkobe 0:88f8e80dc5fd 29
leysenkobe 0:88f8e80dc5fd 30 //GETTERS
leysenkobe 0:88f8e80dc5fd 31 Measurement* DAQ::measure(void)
leysenkobe 0:88f8e80dc5fd 32 {
leysenkobe 0:88f8e80dc5fd 33 Measurement *measurement = new Measurement();
leysenkobe 0:88f8e80dc5fd 34 for (int i = 0; i < 16; i++)
leysenkobe 0:88f8e80dc5fd 35 {
leysenkobe 0:88f8e80dc5fd 36 if(channels[i]->Enabled())
leysenkobe 0:88f8e80dc5fd 37 {
leysenkobe 0:88f8e80dc5fd 38 //amplifier op de juiste waarde zetten
leysenkobe 0:88f8e80dc5fd 39 amplifier->setAmplification(channels[i]->getAmplification());
leysenkobe 0:88f8e80dc5fd 40 wait_us(1);
leysenkobe 0:88f8e80dc5fd 41
leysenkobe 0:88f8e80dc5fd 42 //multiplexer aanzetten
leysenkobe 0:88f8e80dc5fd 43 multiplexer->Enable();
leysenkobe 0:88f8e80dc5fd 44 wait_us(1);
leysenkobe 0:88f8e80dc5fd 45
leysenkobe 0:88f8e80dc5fd 46 //ADC uitlezen
leysenkobe 0:88f8e80dc5fd 47 measurement->Enable(i);
leysenkobe 0:88f8e80dc5fd 48 measurement->setPunt(i,adc->measure());
leysenkobe 0:88f8e80dc5fd 49 wait_us(1);
leysenkobe 0:88f8e80dc5fd 50
leysenkobe 0:88f8e80dc5fd 51 //multiplexer uitzetten
leysenkobe 0:88f8e80dc5fd 52 multiplexer->Disable();
leysenkobe 0:88f8e80dc5fd 53 }
leysenkobe 0:88f8e80dc5fd 54 }
leysenkobe 0:88f8e80dc5fd 55 return measurement;
leysenkobe 0:88f8e80dc5fd 56 }
leysenkobe 0:88f8e80dc5fd 57 int DAQ::getChannelGain(int channel)
leysenkobe 0:88f8e80dc5fd 58 {
leysenkobe 0:88f8e80dc5fd 59 if(channel>=0 && channel<16)
leysenkobe 0:88f8e80dc5fd 60 {
leysenkobe 0:88f8e80dc5fd 61 return(channels[channel]->getAmplification());
leysenkobe 0:88f8e80dc5fd 62 }
leysenkobe 0:88f8e80dc5fd 63 return -1;
leysenkobe 0:88f8e80dc5fd 64 }
leysenkobe 0:88f8e80dc5fd 65 bool DAQ::ChannelEnabled(int channel)
leysenkobe 0:88f8e80dc5fd 66 {
leysenkobe 0:88f8e80dc5fd 67 if(channel>=0 && channel<16)
leysenkobe 0:88f8e80dc5fd 68 {
leysenkobe 0:88f8e80dc5fd 69 return(channels[channel]->Enabled());
leysenkobe 0:88f8e80dc5fd 70 }
leysenkobe 0:88f8e80dc5fd 71 return false;
leysenkobe 0:88f8e80dc5fd 72 }
leysenkobe 2:ea7eb499a27a 73 bool DAQ::ChannelsDisabled()
leysenkobe 2:ea7eb499a27a 74 {
leysenkobe 2:ea7eb499a27a 75 for(int i=0;i<16;i++)
leysenkobe 2:ea7eb499a27a 76 {
leysenkobe 2:ea7eb499a27a 77 if(channels[i]->Enabled())
leysenkobe 2:ea7eb499a27a 78 {
leysenkobe 2:ea7eb499a27a 79 return false;
leysenkobe 2:ea7eb499a27a 80 }
leysenkobe 2:ea7eb499a27a 81 }
leysenkobe 2:ea7eb499a27a 82 return true;
leysenkobe 2:ea7eb499a27a 83 }
leysenkobe 0:88f8e80dc5fd 84 bool DAQ::Initialized(void)
leysenkobe 0:88f8e80dc5fd 85 {
leysenkobe 0:88f8e80dc5fd 86 return(initialized);
leysenkobe 0:88f8e80dc5fd 87 }
leysenkobe 0:88f8e80dc5fd 88
leysenkobe 0:88f8e80dc5fd 89 //SETTERS
leysenkobe 0:88f8e80dc5fd 90 void DAQ::setChannelGain(int channel,int gain)
leysenkobe 0:88f8e80dc5fd 91 {
leysenkobe 0:88f8e80dc5fd 92 if(channel>=0 && channel<16)
leysenkobe 0:88f8e80dc5fd 93 {
leysenkobe 0:88f8e80dc5fd 94 channels[channel]->setAmplification(gain);
leysenkobe 0:88f8e80dc5fd 95 }
leysenkobe 0:88f8e80dc5fd 96 }
leysenkobe 0:88f8e80dc5fd 97 void DAQ::enableChannel(int channel)
leysenkobe 0:88f8e80dc5fd 98 {
leysenkobe 0:88f8e80dc5fd 99 if(channel>=0 && channel<16)
leysenkobe 0:88f8e80dc5fd 100 {
leysenkobe 0:88f8e80dc5fd 101 channels[channel]->Enable();
leysenkobe 0:88f8e80dc5fd 102 }
leysenkobe 0:88f8e80dc5fd 103 }
leysenkobe 0:88f8e80dc5fd 104 void DAQ::disableChannel(int channel)
leysenkobe 0:88f8e80dc5fd 105 {
leysenkobe 0:88f8e80dc5fd 106 if(channel>=0 && channel<16)
leysenkobe 0:88f8e80dc5fd 107 {
leysenkobe 0:88f8e80dc5fd 108 channels[channel]->Disable();
leysenkobe 0:88f8e80dc5fd 109 }
leysenkobe 0:88f8e80dc5fd 110 }
leysenkobe 0:88f8e80dc5fd 111 void DAQ::setInitialized(bool init)
leysenkobe 0:88f8e80dc5fd 112 {
leysenkobe 0:88f8e80dc5fd 113 initialized = init;
leysenkobe 0:88f8e80dc5fd 114 }