kobe leysen / Mbed 2 deprecated TEST

Dependencies:   DAQ mbed-rtos mbed

Committer:
leysenkobe
Date:
Wed Apr 30 11:41:10 2014 +0000
Revision:
2:7f7eb0cc78a4
Parent:
1:fa51edf89e71
kbk;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
leysenkobe 0:6ee88b4152dc 1 #include "Module.h"
leysenkobe 0:6ee88b4152dc 2
leysenkobe 0:6ee88b4152dc 3 Serial pl(USBTX, USBRX);
leysenkobe 2:7f7eb0cc78a4 4 DigitalOut led4(LED4);
leysenkobe 0:6ee88b4152dc 5
leysenkobe 0:6ee88b4152dc 6 Module::Module()
leysenkobe 0:6ee88b4152dc 7 {
leysenkobe 2:7f7eb0cc78a4 8 pl.baud(9600);
leysenkobe 0:6ee88b4152dc 9
leysenkobe 0:6ee88b4152dc 10 //objects
leysenkobe 2:7f7eb0cc78a4 11 this->daq = new DAQ();
leysenkobe 0:6ee88b4152dc 12 this->uart = new Uart(this);
leysenkobe 0:6ee88b4152dc 13
leysenkobe 0:6ee88b4152dc 14 //local variables
leysenkobe 0:6ee88b4152dc 15 this->ID[0] = 0;
leysenkobe 0:6ee88b4152dc 16 this->ID[1] = 1;
leysenkobe 0:6ee88b4152dc 17
leysenkobe 0:6ee88b4152dc 18 this->IP[0] = 0xff;
leysenkobe 0:6ee88b4152dc 19 this->IP[1] = 0xff;
leysenkobe 0:6ee88b4152dc 20 this->IP[2] = 0xff;
leysenkobe 0:6ee88b4152dc 21 this->IP[3] = 0xff;
leysenkobe 0:6ee88b4152dc 22
leysenkobe 0:6ee88b4152dc 23 this->version[0] = 0;
leysenkobe 0:6ee88b4152dc 24 this->version[1] = 0;
leysenkobe 0:6ee88b4152dc 25
leysenkobe 0:6ee88b4152dc 26 this->enableData= false;
leysenkobe 1:fa51edf89e71 27 this->packageSize = 100;
leysenkobe 0:6ee88b4152dc 28 this->sampleNumber = 0;
leysenkobe 0:6ee88b4152dc 29 this->sampleRate = 250; //default waarde - let op, digitale filters moeten herberekend worden bij het veranderen van de sampleRate
leysenkobe 0:6ee88b4152dc 30 this->dataPacket = NULL;
leysenkobe 0:6ee88b4152dc 31
leysenkobe 0:6ee88b4152dc 32 this->wifiEnabled = false;
leysenkobe 0:6ee88b4152dc 33 this->creatDataPacket();
leysenkobe 0:6ee88b4152dc 34 }
leysenkobe 0:6ee88b4152dc 35 Module::~Module(void)
leysenkobe 0:6ee88b4152dc 36 {
leysenkobe 0:6ee88b4152dc 37 delete uart;
leysenkobe 0:6ee88b4152dc 38 delete daq;
leysenkobe 0:6ee88b4152dc 39 }
leysenkobe 0:6ee88b4152dc 40
leysenkobe 0:6ee88b4152dc 41 //main loop
leysenkobe 0:6ee88b4152dc 42 void Module::mainLoop(void)
leysenkobe 0:6ee88b4152dc 43 {
leysenkobe 0:6ee88b4152dc 44 this->sendAlivePacket();
leysenkobe 0:6ee88b4152dc 45 }
leysenkobe 0:6ee88b4152dc 46
leysenkobe 0:6ee88b4152dc 47 void Module::sendAlivePacket()
leysenkobe 0:6ee88b4152dc 48 {
leysenkobe 0:6ee88b4152dc 49 uint8_t *reserved = new uint8_t[2];
leysenkobe 0:6ee88b4152dc 50 reserved[0] = 0x00;
leysenkobe 0:6ee88b4152dc 51 reserved[1] = 0x00;
leysenkobe 0:6ee88b4152dc 52
leysenkobe 0:6ee88b4152dc 53 Packet *alive = new Packet(this->ID, PACKET_ALIVE, reserved);
leysenkobe 0:6ee88b4152dc 54 this->sendPacket(alive);
leysenkobe 0:6ee88b4152dc 55 }
leysenkobe 0:6ee88b4152dc 56
leysenkobe 0:6ee88b4152dc 57 void Module::meting_thread()
leysenkobe 0:6ee88b4152dc 58 {
leysenkobe 2:7f7eb0cc78a4 59 if(enableData && !this->daq->ChannelsDisabled())
leysenkobe 0:6ee88b4152dc 60 {
leysenkobe 2:7f7eb0cc78a4 61 led4 = 1;
leysenkobe 1:fa51edf89e71 62 Measurement *m = this->daq->measure();
leysenkobe 1:fa51edf89e71 63 if(this->dataPacket->addMeasurement(m))
leysenkobe 1:fa51edf89e71 64 {
leysenkobe 1:fa51edf89e71 65 this->sampleNumber++;
leysenkobe 1:fa51edf89e71 66 }
leysenkobe 1:fa51edf89e71 67 else
leysenkobe 1:fa51edf89e71 68 {
leysenkobe 1:fa51edf89e71 69 //printf("false \n");
leysenkobe 1:fa51edf89e71 70 this->sendPacket(this->dataPacket);
leysenkobe 1:fa51edf89e71 71 this->creatDataPacket();
leysenkobe 1:fa51edf89e71 72
leysenkobe 1:fa51edf89e71 73 this->dataPacket->addMeasurement(m); //hier niet meer controleren of het lukt?
leysenkobe 1:fa51edf89e71 74 this->sampleNumber++;
leysenkobe 1:fa51edf89e71 75 }
leysenkobe 1:fa51edf89e71 76 delete m;
leysenkobe 0:6ee88b4152dc 77 }
leysenkobe 2:7f7eb0cc78a4 78 else
leysenkobe 2:7f7eb0cc78a4 79 {
leysenkobe 2:7f7eb0cc78a4 80 led4 = 0;
leysenkobe 2:7f7eb0cc78a4 81 }
leysenkobe 0:6ee88b4152dc 82 }
leysenkobe 0:6ee88b4152dc 83
leysenkobe 0:6ee88b4152dc 84 //PACKET WORKER
leysenkobe 0:6ee88b4152dc 85 void Module::packetWorker(Packet *p)
leysenkobe 0:6ee88b4152dc 86 {
leysenkobe 0:6ee88b4152dc 87 switch(p->getCMD())
leysenkobe 0:6ee88b4152dc 88 {
leysenkobe 0:6ee88b4152dc 89 //S2C packets
leysenkobe 2:7f7eb0cc78a4 90 case PACKET_ACK : this->sendPacket(p); break;
leysenkobe 2:7f7eb0cc78a4 91 case PACKET_NACK : this->sendPacket(p); break;
leysenkobe 2:7f7eb0cc78a4 92 case PACKET_ERROR : this->sendPacket(p); break;
leysenkobe 2:7f7eb0cc78a4 93 case PACKET_ALIVE : this->sendPacket(p); break;
leysenkobe 2:7f7eb0cc78a4 94 case PACKET_DATA : this->sendPacket(p); break;
leysenkobe 2:7f7eb0cc78a4 95 case PACKET_GET_IP_REPLY : this->sendPacket(p); break;
leysenkobe 0:6ee88b4152dc 96
leysenkobe 0:6ee88b4152dc 97 //C2S packets
leysenkobe 0:6ee88b4152dc 98 case PACKET_INIT :
leysenkobe 2:7f7eb0cc78a4 99 this->sendPacket(p);
leysenkobe 0:6ee88b4152dc 100 this->HandleInit(p);
leysenkobe 0:6ee88b4152dc 101 break;
leysenkobe 0:6ee88b4152dc 102 case PACKET_ENABLE_DATA :
leysenkobe 2:7f7eb0cc78a4 103 this->sendPacket(p);
leysenkobe 0:6ee88b4152dc 104 this->HandleEnableData(p);
leysenkobe 0:6ee88b4152dc 105 break;
leysenkobe 0:6ee88b4152dc 106 case PACKET_CHANGE_IP :
leysenkobe 2:7f7eb0cc78a4 107 this->sendPacket(p);
leysenkobe 0:6ee88b4152dc 108 this->HandleChangeIP(p);
leysenkobe 0:6ee88b4152dc 109 break;
leysenkobe 0:6ee88b4152dc 110 case PACKET_REMOVE_IP :
leysenkobe 2:7f7eb0cc78a4 111 this->sendPacket(p);
leysenkobe 0:6ee88b4152dc 112 this->removeIP();
leysenkobe 0:6ee88b4152dc 113 break;
leysenkobe 0:6ee88b4152dc 114 case PACKET_GET_IP :
leysenkobe 2:7f7eb0cc78a4 115 this->sendPacket(p);
leysenkobe 0:6ee88b4152dc 116 this->IpReply();
leysenkobe 0:6ee88b4152dc 117 break;
leysenkobe 0:6ee88b4152dc 118 case PACKET_VERSION :
leysenkobe 2:7f7eb0cc78a4 119 this->sendPacket(p);
leysenkobe 0:6ee88b4152dc 120 this->VersionReply();
leysenkobe 0:6ee88b4152dc 121 break;
leysenkobe 0:6ee88b4152dc 122 //case PACKET_VERSION_REPLY : --> zelf versturen!
leysenkobe 0:6ee88b4152dc 123 // break;
leysenkobe 0:6ee88b4152dc 124 case PACKET_SET_PACKAGE_SIZE :
leysenkobe 2:7f7eb0cc78a4 125 this->sendPacket(p);
leysenkobe 0:6ee88b4152dc 126 HandleSetPackageSize(p);
leysenkobe 0:6ee88b4152dc 127 break;
leysenkobe 0:6ee88b4152dc 128 case PACKET_GET_SETTINGS :
leysenkobe 2:7f7eb0cc78a4 129 this->sendPacket(p);
leysenkobe 0:6ee88b4152dc 130 this->SettingsReply();
leysenkobe 0:6ee88b4152dc 131 break;
leysenkobe 0:6ee88b4152dc 132 //case PACKET_GET_SETTINGS_REPLY : --> moet verstuurd worden!
leysenkobe 0:6ee88b4152dc 133 // break;
leysenkobe 0:6ee88b4152dc 134 case PACKET_SET_ID :
leysenkobe 2:7f7eb0cc78a4 135 this->sendPacket(p);
leysenkobe 0:6ee88b4152dc 136 uint8_t *cmdData = p->getCMD_DATA();
leysenkobe 0:6ee88b4152dc 137 this->ID[0] = cmdData[0];
leysenkobe 0:6ee88b4152dc 138 this->ID[1] = cmdData[1];
leysenkobe 0:6ee88b4152dc 139 delete cmdData;
leysenkobe 0:6ee88b4152dc 140 this->Acknowledge();
leysenkobe 0:6ee88b4152dc 141 break;
leysenkobe 0:6ee88b4152dc 142 case PACKET_TEST_MODE :
leysenkobe 2:7f7eb0cc78a4 143 this->sendPacket(p);
leysenkobe 0:6ee88b4152dc 144 this->uart->send(p); //uitsturen via beide interfaces
leysenkobe 0:6ee88b4152dc 145 //this->wifi->send(p);
leysenkobe 0:6ee88b4152dc 146 break;
leysenkobe 0:6ee88b4152dc 147 case PACKET_LED_TEST_MODE :
leysenkobe 2:7f7eb0cc78a4 148 this->sendPacket(p);
leysenkobe 0:6ee88b4152dc 149 uint8_t *ledData = p->getCMD_DATA();
leysenkobe 0:6ee88b4152dc 150 uint8_t ledInfo = ledData[0];
leysenkobe 0:6ee88b4152dc 151 this->LedTest(ledInfo);
leysenkobe 0:6ee88b4152dc 152 delete ledData;
leysenkobe 0:6ee88b4152dc 153 break;
leysenkobe 0:6ee88b4152dc 154 default:
leysenkobe 0:6ee88b4152dc 155 /// packet dat ik binnen krijg !!!!!
leysenkobe 2:7f7eb0cc78a4 156 pl.printf("erorrrrrrr");
leysenkobe 0:6ee88b4152dc 157 break;
leysenkobe 2:7f7eb0cc78a4 158 }
leysenkobe 0:6ee88b4152dc 159 }
leysenkobe 0:6ee88b4152dc 160
leysenkobe 0:6ee88b4152dc 161 void Module::sendPacket(Packet *p)
leysenkobe 0:6ee88b4152dc 162 {
leysenkobe 0:6ee88b4152dc 163 if(wifiEnabled)
leysenkobe 0:6ee88b4152dc 164 {
leysenkobe 0:6ee88b4152dc 165 //this->wifi->send(p);
leysenkobe 0:6ee88b4152dc 166 }
leysenkobe 0:6ee88b4152dc 167 else
leysenkobe 0:6ee88b4152dc 168 {
leysenkobe 0:6ee88b4152dc 169 this->uart->send(p);
leysenkobe 0:6ee88b4152dc 170 }
leysenkobe 0:6ee88b4152dc 171 }
leysenkobe 0:6ee88b4152dc 172 void Module::creatDataPacket()
leysenkobe 0:6ee88b4152dc 173 {
leysenkobe 0:6ee88b4152dc 174 //printf("MAAK PACKET !! \n");
leysenkobe 0:6ee88b4152dc 175 uint8_t *reserved = new uint8_t[2];
leysenkobe 0:6ee88b4152dc 176 reserved[0] = 0x00;
leysenkobe 0:6ee88b4152dc 177 reserved[1] = 0x00;
leysenkobe 0:6ee88b4152dc 178 int activeChannels = 0; //Het aantal actieve kanalen
leysenkobe 0:6ee88b4152dc 179 int nActiveChannels = 0; //Voor te versturen in het datapakket (zie verder)
leysenkobe 0:6ee88b4152dc 180
leysenkobe 0:6ee88b4152dc 181 for(int i = 0; i < 16; i++)
leysenkobe 0:6ee88b4152dc 182 {
leysenkobe 0:6ee88b4152dc 183 if(this->daq->ChannelEnabled(i) == true)
leysenkobe 0:6ee88b4152dc 184 {
leysenkobe 0:6ee88b4152dc 185 nActiveChannels++;
leysenkobe 0:6ee88b4152dc 186 activeChannels |= 1 << (15 - i);
leysenkobe 0:6ee88b4152dc 187 }
leysenkobe 0:6ee88b4152dc 188 }
leysenkobe 0:6ee88b4152dc 189 this->dataPacket = new Packet(this->ID,this->sampleNumber,this->packageSize,this->sampleRate,activeChannels,nActiveChannels,reserved);
leysenkobe 0:6ee88b4152dc 190 delete [] reserved;
leysenkobe 0:6ee88b4152dc 191 }
leysenkobe 0:6ee88b4152dc 192 void Module::HandleInit(Packet *p)
leysenkobe 0:6ee88b4152dc 193 {
leysenkobe 0:6ee88b4152dc 194 uint8_t cmdSize = p->getCMD_SIZE();
leysenkobe 0:6ee88b4152dc 195 /*
leysenkobe 0:6ee88b4152dc 196 //eventueel controle nog uitvoeren..
leysenkobe 0:6ee88b4152dc 197 if(cmdSize != 33){
leysenkobe 0:6ee88b4152dc 198 Packet *error = new Packet();
leysenkobe 0:6ee88b4152dc 199 this->sendPacket(error);
leysenkobe 0:6ee88b4152dc 200 delete packet;
leysenkobe 0:6ee88b4152dc 201 return;
leysenkobe 0:6ee88b4152dc 202 }*/
leysenkobe 0:6ee88b4152dc 203 uint8_t *cmdData = p->getCMD_DATA();
leysenkobe 0:6ee88b4152dc 204 uint8_t sampleRate = cmdData[0];
leysenkobe 0:6ee88b4152dc 205
leysenkobe 0:6ee88b4152dc 206 uint8_t channelGainByte;
leysenkobe 0:6ee88b4152dc 207 uint8_t channelEnabledByte;
leysenkobe 0:6ee88b4152dc 208
leysenkobe 0:6ee88b4152dc 209 this->sampleRate = sampleRate;
leysenkobe 0:6ee88b4152dc 210
leysenkobe 0:6ee88b4152dc 211 for(int i = 0; i < 16; i++){
leysenkobe 0:6ee88b4152dc 212 channelGainByte = cmdData[1 + i * 2];
leysenkobe 0:6ee88b4152dc 213 channelEnabledByte = cmdData[1 + i * 2 + 1];
leysenkobe 0:6ee88b4152dc 214 switch(channelGainByte){
leysenkobe 0:6ee88b4152dc 215 default: //0x00
leysenkobe 0:6ee88b4152dc 216 this->daq->setChannelGain(i, 1);
leysenkobe 0:6ee88b4152dc 217 break;
leysenkobe 0:6ee88b4152dc 218 case 0x01:
leysenkobe 0:6ee88b4152dc 219 this->daq->setChannelGain(i, 10);
leysenkobe 0:6ee88b4152dc 220 break;
leysenkobe 0:6ee88b4152dc 221 case 0x02:
leysenkobe 0:6ee88b4152dc 222 this->daq->setChannelGain(i, 100);
leysenkobe 0:6ee88b4152dc 223 break;
leysenkobe 0:6ee88b4152dc 224 case 0x03:
leysenkobe 0:6ee88b4152dc 225 this->daq->setChannelGain(i, 1000);
leysenkobe 0:6ee88b4152dc 226 break;
leysenkobe 0:6ee88b4152dc 227 }
leysenkobe 0:6ee88b4152dc 228
leysenkobe 0:6ee88b4152dc 229 if(channelEnabledByte == 0x01){ //enabled
leysenkobe 0:6ee88b4152dc 230 this->daq->enableChannel(i);
leysenkobe 0:6ee88b4152dc 231 }
leysenkobe 0:6ee88b4152dc 232 else{ //disabled
leysenkobe 0:6ee88b4152dc 233 this->daq->disableChannel(i);
leysenkobe 0:6ee88b4152dc 234 }
leysenkobe 0:6ee88b4152dc 235 }
leysenkobe 0:6ee88b4152dc 236
leysenkobe 0:6ee88b4152dc 237 delete cmdData;
leysenkobe 0:6ee88b4152dc 238 }
leysenkobe 0:6ee88b4152dc 239
leysenkobe 0:6ee88b4152dc 240 void Module::HandleEnableData(Packet *p){
leysenkobe 0:6ee88b4152dc 241 uint8_t *data = p->getCMD_DATA();
leysenkobe 2:7f7eb0cc78a4 242 if(data[0] == 0x01)
leysenkobe 2:7f7eb0cc78a4 243 {
leysenkobe 0:6ee88b4152dc 244 this->EnableData();
leysenkobe 0:6ee88b4152dc 245 }
leysenkobe 2:7f7eb0cc78a4 246 else
leysenkobe 2:7f7eb0cc78a4 247 {
leysenkobe 0:6ee88b4152dc 248 this->DisableData();
leysenkobe 2:7f7eb0cc78a4 249 }
leysenkobe 0:6ee88b4152dc 250 }
leysenkobe 0:6ee88b4152dc 251
leysenkobe 0:6ee88b4152dc 252 void Module::HandleSetPackageSize(Packet *p){
leysenkobe 0:6ee88b4152dc 253 uint8_t *data = p->getCMD_DATA();
leysenkobe 0:6ee88b4152dc 254 this->setPackageSize(data[0]); //data[0] = packageSize!
leysenkobe 0:6ee88b4152dc 255 delete data;
leysenkobe 0:6ee88b4152dc 256 }
leysenkobe 0:6ee88b4152dc 257
leysenkobe 0:6ee88b4152dc 258 void Module::HandleChangeIP(Packet *p){
leysenkobe 0:6ee88b4152dc 259 int cmdSize = p->getCMD_SIZE();
leysenkobe 0:6ee88b4152dc 260
leysenkobe 0:6ee88b4152dc 261 if(cmdSize != 4){
leysenkobe 0:6ee88b4152dc 262 Packet *errorPacket = new Packet(this->ID);
leysenkobe 0:6ee88b4152dc 263 this->sendPacket(errorPacket);
leysenkobe 0:6ee88b4152dc 264 delete errorPacket;
leysenkobe 0:6ee88b4152dc 265 return;
leysenkobe 0:6ee88b4152dc 266 }
leysenkobe 0:6ee88b4152dc 267
leysenkobe 0:6ee88b4152dc 268 uint8_t* data = p->getCMD_DATA();
leysenkobe 0:6ee88b4152dc 269 this->setIP(data);
leysenkobe 0:6ee88b4152dc 270 delete data;
leysenkobe 0:6ee88b4152dc 271 }
leysenkobe 0:6ee88b4152dc 272
leysenkobe 0:6ee88b4152dc 273 void Module::IpReply(){
leysenkobe 0:6ee88b4152dc 274 uint8_t cmdDataLengte = 4;
leysenkobe 0:6ee88b4152dc 275 uint8_t *cmdData = new uint8_t[cmdDataLengte];
leysenkobe 0:6ee88b4152dc 276 uint8_t *reserved = new uint8_t[2];
leysenkobe 0:6ee88b4152dc 277
leysenkobe 0:6ee88b4152dc 278 cmdData[0] = this->IP[0];
leysenkobe 0:6ee88b4152dc 279 cmdData[1] = this->IP[1];
leysenkobe 0:6ee88b4152dc 280 cmdData[2] = this->IP[2];
leysenkobe 0:6ee88b4152dc 281 cmdData[3] = this->IP[3];
leysenkobe 0:6ee88b4152dc 282
leysenkobe 0:6ee88b4152dc 283 reserved[0] = 0x00;
leysenkobe 0:6ee88b4152dc 284 reserved[1] = 0x00;
leysenkobe 0:6ee88b4152dc 285
leysenkobe 0:6ee88b4152dc 286 Packet *ipInfoPacket = new Packet(this->ID, PACKET_GET_IP_REPLY, cmdData, cmdDataLengte, reserved);
leysenkobe 0:6ee88b4152dc 287 this->sendPacket(ipInfoPacket);
leysenkobe 0:6ee88b4152dc 288
leysenkobe 0:6ee88b4152dc 289 delete ipInfoPacket;
leysenkobe 0:6ee88b4152dc 290 delete reserved;
leysenkobe 0:6ee88b4152dc 291 delete cmdData;
leysenkobe 0:6ee88b4152dc 292 }
leysenkobe 0:6ee88b4152dc 293
leysenkobe 0:6ee88b4152dc 294 void Module::VersionReply(){
leysenkobe 0:6ee88b4152dc 295 uint8_t cmdDataLengte = 2;
leysenkobe 0:6ee88b4152dc 296 uint8_t *cmdData = new uint8_t[cmdDataLengte];
leysenkobe 0:6ee88b4152dc 297 uint8_t *reserved = new uint8_t[2];
leysenkobe 0:6ee88b4152dc 298
leysenkobe 0:6ee88b4152dc 299 cmdData[0] = this->version[0];
leysenkobe 0:6ee88b4152dc 300 cmdData[1] = this->version[1];
leysenkobe 0:6ee88b4152dc 301
leysenkobe 0:6ee88b4152dc 302 reserved[0] = 0x00;
leysenkobe 0:6ee88b4152dc 303 reserved[1] = 0x00;
leysenkobe 0:6ee88b4152dc 304
leysenkobe 0:6ee88b4152dc 305 Packet *versionPacket = new Packet(this->ID, PACKET_VERSION_REPLY, cmdData, cmdDataLengte, reserved);
leysenkobe 0:6ee88b4152dc 306 this->sendPacket(versionPacket);
leysenkobe 0:6ee88b4152dc 307
leysenkobe 0:6ee88b4152dc 308 delete reserved;
leysenkobe 0:6ee88b4152dc 309 delete versionPacket;
leysenkobe 0:6ee88b4152dc 310 delete cmdData;
leysenkobe 0:6ee88b4152dc 311 }
leysenkobe 0:6ee88b4152dc 312
leysenkobe 0:6ee88b4152dc 313 void Module::SettingsReply(){
leysenkobe 0:6ee88b4152dc 314 uint8_t cmdDataLengte = 41;
leysenkobe 0:6ee88b4152dc 315 uint8_t *cmdData = new uint8_t[cmdDataLengte];
leysenkobe 0:6ee88b4152dc 316 uint8_t *reserved = new uint8_t[2];
leysenkobe 0:6ee88b4152dc 317
leysenkobe 0:6ee88b4152dc 318 cmdData[0] = this->IP[0];
leysenkobe 0:6ee88b4152dc 319 cmdData[1] = this->IP[1];
leysenkobe 0:6ee88b4152dc 320 cmdData[2] = this->IP[2];
leysenkobe 0:6ee88b4152dc 321 cmdData[3] = this->IP[3];
leysenkobe 0:6ee88b4152dc 322
leysenkobe 0:6ee88b4152dc 323 if(enableData){
leysenkobe 0:6ee88b4152dc 324 cmdData[4] = 0x01;
leysenkobe 0:6ee88b4152dc 325 }
leysenkobe 0:6ee88b4152dc 326 else{
leysenkobe 0:6ee88b4152dc 327 cmdData[4] = 0x00;
leysenkobe 0:6ee88b4152dc 328 }
leysenkobe 0:6ee88b4152dc 329
leysenkobe 0:6ee88b4152dc 330 cmdData[5] = this->version[0];
leysenkobe 0:6ee88b4152dc 331 cmdData[6] = this->version[1];
leysenkobe 0:6ee88b4152dc 332
leysenkobe 0:6ee88b4152dc 333 for(int i = 0; i < 16; i++){
leysenkobe 0:6ee88b4152dc 334 cmdData[7 + i * 2] = this->daq->getChannelGain(i);
leysenkobe 0:6ee88b4152dc 335
leysenkobe 0:6ee88b4152dc 336 if(this->daq->ChannelEnabled(i) == true){
leysenkobe 0:6ee88b4152dc 337 cmdData[7 + i * 2 + 1] = 0x01;
leysenkobe 0:6ee88b4152dc 338 }
leysenkobe 0:6ee88b4152dc 339 else{
leysenkobe 0:6ee88b4152dc 340 cmdData[7 + i * 2 + 1] = 0x00;
leysenkobe 0:6ee88b4152dc 341 }
leysenkobe 0:6ee88b4152dc 342 }
leysenkobe 0:6ee88b4152dc 343
leysenkobe 0:6ee88b4152dc 344 cmdData[39] = this->sampleRate;
leysenkobe 0:6ee88b4152dc 345 cmdData[40] = this->packageSize;
leysenkobe 0:6ee88b4152dc 346
leysenkobe 0:6ee88b4152dc 347 reserved[0] = 0x00;
leysenkobe 0:6ee88b4152dc 348 reserved[1] = 0x00;
leysenkobe 0:6ee88b4152dc 349
leysenkobe 0:6ee88b4152dc 350 Packet *settingsPacket = new Packet(this->ID, PACKET_GET_SETTINGS_REPLY, cmdData, cmdDataLengte, reserved);
leysenkobe 0:6ee88b4152dc 351 this->sendPacket(settingsPacket);
leysenkobe 0:6ee88b4152dc 352
leysenkobe 0:6ee88b4152dc 353 delete settingsPacket;
leysenkobe 0:6ee88b4152dc 354 delete cmdData;
leysenkobe 0:6ee88b4152dc 355 delete reserved;
leysenkobe 0:6ee88b4152dc 356 }
leysenkobe 0:6ee88b4152dc 357
leysenkobe 0:6ee88b4152dc 358 void Module::LedTest(uint8_t ledInfo){
leysenkobe 0:6ee88b4152dc 359 for(int i = 4; i < 8; i++){
leysenkobe 0:6ee88b4152dc 360 if(((ledInfo >> i) & 1) == 1){ //LED moet aan!
leysenkobe 0:6ee88b4152dc 361 switch(i){
leysenkobe 0:6ee88b4152dc 362 case 4:
leysenkobe 0:6ee88b4152dc 363 //LED0 aanzetten
leysenkobe 0:6ee88b4152dc 364
leysenkobe 0:6ee88b4152dc 365 break;
leysenkobe 0:6ee88b4152dc 366 case 5:
leysenkobe 0:6ee88b4152dc 367 //LED1 aanzetten
leysenkobe 0:6ee88b4152dc 368
leysenkobe 0:6ee88b4152dc 369 break;
leysenkobe 0:6ee88b4152dc 370 case 6:
leysenkobe 0:6ee88b4152dc 371 //LED2 aanzetten
leysenkobe 0:6ee88b4152dc 372
leysenkobe 0:6ee88b4152dc 373 break;
leysenkobe 0:6ee88b4152dc 374 case 7:
leysenkobe 0:6ee88b4152dc 375 //LED3 aanzetten
leysenkobe 0:6ee88b4152dc 376
leysenkobe 0:6ee88b4152dc 377 break;
leysenkobe 0:6ee88b4152dc 378 default:
leysenkobe 0:6ee88b4152dc 379 break;
leysenkobe 0:6ee88b4152dc 380 }
leysenkobe 0:6ee88b4152dc 381 }
leysenkobe 0:6ee88b4152dc 382 }
leysenkobe 0:6ee88b4152dc 383 }
leysenkobe 0:6ee88b4152dc 384
leysenkobe 0:6ee88b4152dc 385 void Module::Acknowledge(uint8_t RESERVED[2])
leysenkobe 0:6ee88b4152dc 386 {
leysenkobe 0:6ee88b4152dc 387 Packet *ack = new Packet(this->ID, PACKET_ACK, RESERVED);
leysenkobe 0:6ee88b4152dc 388 this->sendPacket(ack);
leysenkobe 0:6ee88b4152dc 389 delete ack;
leysenkobe 0:6ee88b4152dc 390 //delete reserved; //moet weggedaan worden waar deze array aangemaakt wordt!
leysenkobe 0:6ee88b4152dc 391 }
leysenkobe 0:6ee88b4152dc 392
leysenkobe 0:6ee88b4152dc 393 void Module::Acknowledge()
leysenkobe 0:6ee88b4152dc 394 {
leysenkobe 0:6ee88b4152dc 395 uint8_t *reserved = new uint8_t[2];
leysenkobe 0:6ee88b4152dc 396 reserved[0] = 0x00;
leysenkobe 0:6ee88b4152dc 397 reserved[1] = 0x00;
leysenkobe 0:6ee88b4152dc 398
leysenkobe 0:6ee88b4152dc 399 Packet *ack = new Packet(this->ID, PACKET_ACK, reserved);
leysenkobe 0:6ee88b4152dc 400 this->sendPacket(ack);
leysenkobe 0:6ee88b4152dc 401
leysenkobe 0:6ee88b4152dc 402 delete ack;
leysenkobe 0:6ee88b4152dc 403 delete reserved;
leysenkobe 0:6ee88b4152dc 404 }
leysenkobe 0:6ee88b4152dc 405
leysenkobe 0:6ee88b4152dc 406
leysenkobe 0:6ee88b4152dc 407 //GETTERS
leysenkobe 0:6ee88b4152dc 408 Uart* Module::getUart(void)
leysenkobe 0:6ee88b4152dc 409 {
leysenkobe 0:6ee88b4152dc 410 return(this->uart);
leysenkobe 0:6ee88b4152dc 411 }
leysenkobe 0:6ee88b4152dc 412 uint8_t* Module::getID(void)
leysenkobe 0:6ee88b4152dc 413 {
leysenkobe 0:6ee88b4152dc 414 return(this->ID);
leysenkobe 0:6ee88b4152dc 415 }
leysenkobe 0:6ee88b4152dc 416 uint8_t* Module::getIP(void)
leysenkobe 0:6ee88b4152dc 417 {
leysenkobe 0:6ee88b4152dc 418 return(this->IP);
leysenkobe 0:6ee88b4152dc 419 }
leysenkobe 0:6ee88b4152dc 420 uint8_t* Module::getVersion(void)
leysenkobe 0:6ee88b4152dc 421 {
leysenkobe 0:6ee88b4152dc 422 return(this->version);
leysenkobe 0:6ee88b4152dc 423 }
leysenkobe 0:6ee88b4152dc 424 bool Module::dataEnabled(void)
leysenkobe 0:6ee88b4152dc 425 {
leysenkobe 0:6ee88b4152dc 426 return(this->enableData);
leysenkobe 0:6ee88b4152dc 427 }
leysenkobe 0:6ee88b4152dc 428 uint8_t Module::getPackageSize(void)
leysenkobe 0:6ee88b4152dc 429 {
leysenkobe 0:6ee88b4152dc 430 return(this->packageSize);
leysenkobe 0:6ee88b4152dc 431 }
leysenkobe 0:6ee88b4152dc 432 unsigned int Module::getSampleNumber(void)
leysenkobe 0:6ee88b4152dc 433 {
leysenkobe 0:6ee88b4152dc 434 return(this->sampleNumber);
leysenkobe 0:6ee88b4152dc 435 }
leysenkobe 0:6ee88b4152dc 436 uint8_t Module::getSampleRate(void)
leysenkobe 0:6ee88b4152dc 437 {
leysenkobe 0:6ee88b4152dc 438 return(this->sampleRate);
leysenkobe 0:6ee88b4152dc 439 }
leysenkobe 0:6ee88b4152dc 440
leysenkobe 0:6ee88b4152dc 441 //SETTERS
leysenkobe 0:6ee88b4152dc 442 void Module::setID(uint8_t ID[2])
leysenkobe 0:6ee88b4152dc 443 {
leysenkobe 0:6ee88b4152dc 444 this->ID[0] = ID[0];
leysenkobe 0:6ee88b4152dc 445 this->ID[1] = ID[1];
leysenkobe 0:6ee88b4152dc 446 }
leysenkobe 0:6ee88b4152dc 447 void Module::setIP(uint8_t IP[4])
leysenkobe 0:6ee88b4152dc 448 {
leysenkobe 0:6ee88b4152dc 449 this->IP[0] = IP[0];
leysenkobe 0:6ee88b4152dc 450 this->IP[1] = IP[1];
leysenkobe 0:6ee88b4152dc 451 this->IP[2] = IP[2];
leysenkobe 0:6ee88b4152dc 452 this->IP[3] = IP[3];
leysenkobe 0:6ee88b4152dc 453 }
leysenkobe 0:6ee88b4152dc 454 void Module::removeIP(){
leysenkobe 0:6ee88b4152dc 455 this->IP[0] = 0xff;
leysenkobe 0:6ee88b4152dc 456 this->IP[1] = 0xff;
leysenkobe 0:6ee88b4152dc 457 this->IP[2] = 0xff;
leysenkobe 0:6ee88b4152dc 458 this->IP[3] = 0xff;
leysenkobe 0:6ee88b4152dc 459 }
leysenkobe 0:6ee88b4152dc 460 void Module::setVersion(uint8_t version[2])
leysenkobe 0:6ee88b4152dc 461 {
leysenkobe 0:6ee88b4152dc 462 this->version[0] = version[0];
leysenkobe 0:6ee88b4152dc 463 this->version[1] = version[1];
leysenkobe 0:6ee88b4152dc 464 }
leysenkobe 0:6ee88b4152dc 465 void Module::EnableData(void)
leysenkobe 0:6ee88b4152dc 466 {
leysenkobe 0:6ee88b4152dc 467 this->enableData = true;
leysenkobe 0:6ee88b4152dc 468 }
leysenkobe 0:6ee88b4152dc 469 void Module::DisableData(void)
leysenkobe 0:6ee88b4152dc 470 {
leysenkobe 0:6ee88b4152dc 471 this->enableData = false;
leysenkobe 0:6ee88b4152dc 472 }
leysenkobe 0:6ee88b4152dc 473 void Module::setPackageSize(uint8_t packageSize)
leysenkobe 0:6ee88b4152dc 474 {
leysenkobe 0:6ee88b4152dc 475 this->packageSize = packageSize;
leysenkobe 0:6ee88b4152dc 476 }
leysenkobe 0:6ee88b4152dc 477 void Module::setSampleNumber(unsigned int sampleNumber)
leysenkobe 0:6ee88b4152dc 478 {
leysenkobe 0:6ee88b4152dc 479 this->sampleNumber = sampleNumber;
leysenkobe 0:6ee88b4152dc 480 }
leysenkobe 0:6ee88b4152dc 481 void Module::setSampleRate(uint8_t sampleRate)
leysenkobe 0:6ee88b4152dc 482 {
leysenkobe 0:6ee88b4152dc 483 this->sampleRate = sampleRate;
leysenkobe 0:6ee88b4152dc 484 }