kobe leysen / DAQ

Dependents:   TEST

Committer:
leysenkobe
Date:
Tue Jun 03 07:32:20 2014 +0000
Revision:
4:cc896bb62196
Parent:
2:ea7eb499a27a
Child:
5:3bd9edf55a56
nieuwe pinnen

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 0:88f8e80dc5fd 55 }
leysenkobe 0:88f8e80dc5fd 56 return measurement;
leysenkobe 0:88f8e80dc5fd 57 }
leysenkobe 0:88f8e80dc5fd 58 int DAQ::getChannelGain(int channel)
leysenkobe 0:88f8e80dc5fd 59 {
leysenkobe 0:88f8e80dc5fd 60 if(channel>=0 && channel<16)
leysenkobe 0:88f8e80dc5fd 61 {
leysenkobe 0:88f8e80dc5fd 62 return(channels[channel]->getAmplification());
leysenkobe 0:88f8e80dc5fd 63 }
leysenkobe 0:88f8e80dc5fd 64 return -1;
leysenkobe 0:88f8e80dc5fd 65 }
leysenkobe 0:88f8e80dc5fd 66 bool DAQ::ChannelEnabled(int channel)
leysenkobe 0:88f8e80dc5fd 67 {
leysenkobe 0:88f8e80dc5fd 68 if(channel>=0 && channel<16)
leysenkobe 0:88f8e80dc5fd 69 {
leysenkobe 0:88f8e80dc5fd 70 return(channels[channel]->Enabled());
leysenkobe 0:88f8e80dc5fd 71 }
leysenkobe 0:88f8e80dc5fd 72 return false;
leysenkobe 0:88f8e80dc5fd 73 }
leysenkobe 2:ea7eb499a27a 74 bool DAQ::ChannelsDisabled()
leysenkobe 2:ea7eb499a27a 75 {
leysenkobe 2:ea7eb499a27a 76 for(int i=0;i<16;i++)
leysenkobe 2:ea7eb499a27a 77 {
leysenkobe 2:ea7eb499a27a 78 if(channels[i]->Enabled())
leysenkobe 2:ea7eb499a27a 79 {
leysenkobe 2:ea7eb499a27a 80 return false;
leysenkobe 2:ea7eb499a27a 81 }
leysenkobe 2:ea7eb499a27a 82 }
leysenkobe 2:ea7eb499a27a 83 return true;
leysenkobe 2:ea7eb499a27a 84 }
leysenkobe 0:88f8e80dc5fd 85 bool DAQ::Initialized(void)
leysenkobe 0:88f8e80dc5fd 86 {
leysenkobe 0:88f8e80dc5fd 87 return(initialized);
leysenkobe 0:88f8e80dc5fd 88 }
leysenkobe 0:88f8e80dc5fd 89
leysenkobe 0:88f8e80dc5fd 90 //SETTERS
leysenkobe 0:88f8e80dc5fd 91 void DAQ::setChannelGain(int channel,int gain)
leysenkobe 0:88f8e80dc5fd 92 {
leysenkobe 0:88f8e80dc5fd 93 if(channel>=0 && channel<16)
leysenkobe 0:88f8e80dc5fd 94 {
leysenkobe 0:88f8e80dc5fd 95 channels[channel]->setAmplification(gain);
leysenkobe 0:88f8e80dc5fd 96 }
leysenkobe 0:88f8e80dc5fd 97 }
leysenkobe 0:88f8e80dc5fd 98 void DAQ::enableChannel(int channel)
leysenkobe 0:88f8e80dc5fd 99 {
leysenkobe 0:88f8e80dc5fd 100 if(channel>=0 && channel<16)
leysenkobe 0:88f8e80dc5fd 101 {
leysenkobe 0:88f8e80dc5fd 102 channels[channel]->Enable();
leysenkobe 0:88f8e80dc5fd 103 }
leysenkobe 0:88f8e80dc5fd 104 }
leysenkobe 0:88f8e80dc5fd 105 void DAQ::disableChannel(int channel)
leysenkobe 0:88f8e80dc5fd 106 {
leysenkobe 0:88f8e80dc5fd 107 if(channel>=0 && channel<16)
leysenkobe 0:88f8e80dc5fd 108 {
leysenkobe 0:88f8e80dc5fd 109 channels[channel]->Disable();
leysenkobe 0:88f8e80dc5fd 110 }
leysenkobe 0:88f8e80dc5fd 111 }
leysenkobe 0:88f8e80dc5fd 112 void DAQ::setInitialized(bool init)
leysenkobe 0:88f8e80dc5fd 113 {
leysenkobe 0:88f8e80dc5fd 114 initialized = init;
leysenkobe 0:88f8e80dc5fd 115 }