kobe leysen / DAQ

Dependents:   TEST

Committer:
leysenkobe
Date:
Tue Jun 03 08:09:59 2014 +0000
Revision:
5:3bd9edf55a56
Parent:
4:cc896bb62196
test

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 4:cc896bb62196 43 multiplexer->setChannel(i);
leysenkobe 0:88f8e80dc5fd 44 multiplexer->Enable();
leysenkobe 0:88f8e80dc5fd 45 wait_us(1);
leysenkobe 0:88f8e80dc5fd 46
leysenkobe 0:88f8e80dc5fd 47 //ADC uitlezen
leysenkobe 0:88f8e80dc5fd 48 measurement->Enable(i);
leysenkobe 0:88f8e80dc5fd 49 measurement->setPunt(i,adc->measure());
leysenkobe 0:88f8e80dc5fd 50 wait_us(1);
leysenkobe 0:88f8e80dc5fd 51
leysenkobe 0:88f8e80dc5fd 52 //multiplexer uitzetten
leysenkobe 0:88f8e80dc5fd 53 multiplexer->Disable();
leysenkobe 0:88f8e80dc5fd 54 }
leysenkobe 5:3bd9edf55a56 55 else
leysenkobe 5:3bd9edf55a56 56 {
leysenkobe 5:3bd9edf55a56 57 measurement->setPunt(i,0);
leysenkobe 5:3bd9edf55a56 58 }
leysenkobe 0:88f8e80dc5fd 59 }
leysenkobe 0:88f8e80dc5fd 60 return measurement;
leysenkobe 0:88f8e80dc5fd 61 }
leysenkobe 0:88f8e80dc5fd 62 int DAQ::getChannelGain(int channel)
leysenkobe 0:88f8e80dc5fd 63 {
leysenkobe 0:88f8e80dc5fd 64 if(channel>=0 && channel<16)
leysenkobe 0:88f8e80dc5fd 65 {
leysenkobe 0:88f8e80dc5fd 66 return(channels[channel]->getAmplification());
leysenkobe 0:88f8e80dc5fd 67 }
leysenkobe 0:88f8e80dc5fd 68 return -1;
leysenkobe 0:88f8e80dc5fd 69 }
leysenkobe 0:88f8e80dc5fd 70 bool DAQ::ChannelEnabled(int channel)
leysenkobe 0:88f8e80dc5fd 71 {
leysenkobe 0:88f8e80dc5fd 72 if(channel>=0 && channel<16)
leysenkobe 0:88f8e80dc5fd 73 {
leysenkobe 0:88f8e80dc5fd 74 return(channels[channel]->Enabled());
leysenkobe 0:88f8e80dc5fd 75 }
leysenkobe 0:88f8e80dc5fd 76 return false;
leysenkobe 0:88f8e80dc5fd 77 }
leysenkobe 2:ea7eb499a27a 78 bool DAQ::ChannelsDisabled()
leysenkobe 2:ea7eb499a27a 79 {
leysenkobe 2:ea7eb499a27a 80 for(int i=0;i<16;i++)
leysenkobe 2:ea7eb499a27a 81 {
leysenkobe 2:ea7eb499a27a 82 if(channels[i]->Enabled())
leysenkobe 2:ea7eb499a27a 83 {
leysenkobe 2:ea7eb499a27a 84 return false;
leysenkobe 2:ea7eb499a27a 85 }
leysenkobe 2:ea7eb499a27a 86 }
leysenkobe 2:ea7eb499a27a 87 return true;
leysenkobe 2:ea7eb499a27a 88 }
leysenkobe 0:88f8e80dc5fd 89 bool DAQ::Initialized(void)
leysenkobe 0:88f8e80dc5fd 90 {
leysenkobe 0:88f8e80dc5fd 91 return(initialized);
leysenkobe 0:88f8e80dc5fd 92 }
leysenkobe 0:88f8e80dc5fd 93
leysenkobe 0:88f8e80dc5fd 94 //SETTERS
leysenkobe 0:88f8e80dc5fd 95 void DAQ::setChannelGain(int channel,int gain)
leysenkobe 0:88f8e80dc5fd 96 {
leysenkobe 0:88f8e80dc5fd 97 if(channel>=0 && channel<16)
leysenkobe 0:88f8e80dc5fd 98 {
leysenkobe 0:88f8e80dc5fd 99 channels[channel]->setAmplification(gain);
leysenkobe 0:88f8e80dc5fd 100 }
leysenkobe 0:88f8e80dc5fd 101 }
leysenkobe 0:88f8e80dc5fd 102 void DAQ::enableChannel(int channel)
leysenkobe 0:88f8e80dc5fd 103 {
leysenkobe 0:88f8e80dc5fd 104 if(channel>=0 && channel<16)
leysenkobe 0:88f8e80dc5fd 105 {
leysenkobe 0:88f8e80dc5fd 106 channels[channel]->Enable();
leysenkobe 0:88f8e80dc5fd 107 }
leysenkobe 0:88f8e80dc5fd 108 }
leysenkobe 0:88f8e80dc5fd 109 void DAQ::disableChannel(int channel)
leysenkobe 0:88f8e80dc5fd 110 {
leysenkobe 0:88f8e80dc5fd 111 if(channel>=0 && channel<16)
leysenkobe 0:88f8e80dc5fd 112 {
leysenkobe 0:88f8e80dc5fd 113 channels[channel]->Disable();
leysenkobe 0:88f8e80dc5fd 114 }
leysenkobe 0:88f8e80dc5fd 115 }
leysenkobe 0:88f8e80dc5fd 116 void DAQ::setInitialized(bool init)
leysenkobe 0:88f8e80dc5fd 117 {
leysenkobe 0:88f8e80dc5fd 118 initialized = init;
leysenkobe 0:88f8e80dc5fd 119 }