kobe leysen / Mbed 2 deprecated TEST

Dependencies:   DAQ mbed-rtos mbed

Committer:
leysenkobe
Date:
Thu Apr 24 10:39:09 2014 +0000
Revision:
1:fa51edf89e71
Parent:
0:6ee88b4152dc
Child:
2:7f7eb0cc78a4
2;

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 0:6ee88b4152dc 4
leysenkobe 0:6ee88b4152dc 5 Module::Module()
leysenkobe 0:6ee88b4152dc 6 {
leysenkobe 0:6ee88b4152dc 7 pl.baud(230400);
leysenkobe 0:6ee88b4152dc 8
leysenkobe 0:6ee88b4152dc 9 //objects
leysenkobe 0:6ee88b4152dc 10 this->daq = new DummyDAQ();
leysenkobe 0:6ee88b4152dc 11 this->uart = new Uart(this);
leysenkobe 0:6ee88b4152dc 12
leysenkobe 0:6ee88b4152dc 13 //local variables
leysenkobe 0:6ee88b4152dc 14 this->ID[0] = 0;
leysenkobe 0:6ee88b4152dc 15 this->ID[1] = 1;
leysenkobe 0:6ee88b4152dc 16
leysenkobe 0:6ee88b4152dc 17 this->IP[0] = 0xff;
leysenkobe 0:6ee88b4152dc 18 this->IP[1] = 0xff;
leysenkobe 0:6ee88b4152dc 19 this->IP[2] = 0xff;
leysenkobe 0:6ee88b4152dc 20 this->IP[3] = 0xff;
leysenkobe 0:6ee88b4152dc 21
leysenkobe 0:6ee88b4152dc 22 this->version[0] = 0;
leysenkobe 0:6ee88b4152dc 23 this->version[1] = 0;
leysenkobe 0:6ee88b4152dc 24
leysenkobe 0:6ee88b4152dc 25 this->enableData= false;
leysenkobe 1:fa51edf89e71 26 this->packageSize = 100;
leysenkobe 0:6ee88b4152dc 27 this->sampleNumber = 0;
leysenkobe 0:6ee88b4152dc 28 this->sampleRate = 250; //default waarde - let op, digitale filters moeten herberekend worden bij het veranderen van de sampleRate
leysenkobe 0:6ee88b4152dc 29 this->dataPacket = NULL;
leysenkobe 0:6ee88b4152dc 30
leysenkobe 0:6ee88b4152dc 31 this->wifiEnabled = false;
leysenkobe 0:6ee88b4152dc 32 this->creatDataPacket();
leysenkobe 0:6ee88b4152dc 33 }
leysenkobe 0:6ee88b4152dc 34 Module::~Module(void)
leysenkobe 0:6ee88b4152dc 35 {
leysenkobe 0:6ee88b4152dc 36 delete uart;
leysenkobe 0:6ee88b4152dc 37 delete daq;
leysenkobe 0:6ee88b4152dc 38 }
leysenkobe 0:6ee88b4152dc 39
leysenkobe 0:6ee88b4152dc 40 //main loop
leysenkobe 0:6ee88b4152dc 41 void Module::mainLoop(void)
leysenkobe 0:6ee88b4152dc 42 {
leysenkobe 0:6ee88b4152dc 43 this->sendAlivePacket();
leysenkobe 0:6ee88b4152dc 44 }
leysenkobe 0:6ee88b4152dc 45
leysenkobe 0:6ee88b4152dc 46 void Module::sendAlivePacket()
leysenkobe 0:6ee88b4152dc 47 {
leysenkobe 0:6ee88b4152dc 48 uint8_t *reserved = new uint8_t[2];
leysenkobe 0:6ee88b4152dc 49 reserved[0] = 0x00;
leysenkobe 0:6ee88b4152dc 50 reserved[1] = 0x00;
leysenkobe 0:6ee88b4152dc 51
leysenkobe 0:6ee88b4152dc 52 Packet *alive = new Packet(this->ID, PACKET_ALIVE, reserved);
leysenkobe 0:6ee88b4152dc 53 this->sendPacket(alive);
leysenkobe 0:6ee88b4152dc 54 }
leysenkobe 0:6ee88b4152dc 55
leysenkobe 0:6ee88b4152dc 56 void Module::meting_thread()
leysenkobe 0:6ee88b4152dc 57 {
leysenkobe 1:fa51edf89e71 58 if(enableData)
leysenkobe 0:6ee88b4152dc 59 {
leysenkobe 1:fa51edf89e71 60 Measurement *m = this->daq->measure();
leysenkobe 1:fa51edf89e71 61 if(this->dataPacket->addMeasurement(m))
leysenkobe 1:fa51edf89e71 62 {
leysenkobe 1:fa51edf89e71 63 this->sampleNumber++;
leysenkobe 1:fa51edf89e71 64 }
leysenkobe 1:fa51edf89e71 65 else
leysenkobe 1:fa51edf89e71 66 {
leysenkobe 1:fa51edf89e71 67 //printf("false \n");
leysenkobe 1:fa51edf89e71 68 this->sendPacket(this->dataPacket);
leysenkobe 1:fa51edf89e71 69 this->creatDataPacket();
leysenkobe 1:fa51edf89e71 70
leysenkobe 1:fa51edf89e71 71 this->dataPacket->addMeasurement(m); //hier niet meer controleren of het lukt?
leysenkobe 1:fa51edf89e71 72 this->sampleNumber++;
leysenkobe 1:fa51edf89e71 73 }
leysenkobe 1:fa51edf89e71 74 delete m;
leysenkobe 0:6ee88b4152dc 75 }
leysenkobe 0:6ee88b4152dc 76 }
leysenkobe 0:6ee88b4152dc 77
leysenkobe 0:6ee88b4152dc 78 //PACKET WORKER
leysenkobe 0:6ee88b4152dc 79 void Module::packetWorker(Packet *p)
leysenkobe 0:6ee88b4152dc 80 {
leysenkobe 1:fa51edf89e71 81 pl.putc(p->getID()[0]);
leysenkobe 1:fa51edf89e71 82 pl.putc(p->getID()[1]);
leysenkobe 1:fa51edf89e71 83 pl.putc(p->getCMD());
leysenkobe 0:6ee88b4152dc 84 switch(p->getCMD())
leysenkobe 0:6ee88b4152dc 85 {
leysenkobe 0:6ee88b4152dc 86 //S2C packets
leysenkobe 1:fa51edf89e71 87 case PACKET_ACK : this->sendPacket(p); pl.printf("ACK"); break;
leysenkobe 1:fa51edf89e71 88 case PACKET_NACK : this->sendPacket(p); pl.printf("NACK"); break;
leysenkobe 1:fa51edf89e71 89 case PACKET_ERROR : this->sendPacket(p); pl.printf("ERROR"); break;
leysenkobe 1:fa51edf89e71 90 case PACKET_ALIVE : this->sendPacket(p); pl.printf("ALIVE"); break;
leysenkobe 1:fa51edf89e71 91 case PACKET_DATA : this->sendPacket(p); pl.printf("DATA"); break;
leysenkobe 1:fa51edf89e71 92 case PACKET_GET_IP_REPLY : this->sendPacket(p); pl.printf("IP_REPLY"); break;
leysenkobe 0:6ee88b4152dc 93
leysenkobe 0:6ee88b4152dc 94 //C2S packets
leysenkobe 0:6ee88b4152dc 95 case PACKET_INIT :
leysenkobe 0:6ee88b4152dc 96 this->HandleInit(p);
leysenkobe 1:fa51edf89e71 97 printf("PACKET_INIT");
leysenkobe 0:6ee88b4152dc 98 break;
leysenkobe 0:6ee88b4152dc 99 case PACKET_ENABLE_DATA :
leysenkobe 0:6ee88b4152dc 100 this->HandleEnableData(p);
leysenkobe 1:fa51edf89e71 101 printf("ENABLE_DATA");
leysenkobe 0:6ee88b4152dc 102 break;
leysenkobe 0:6ee88b4152dc 103 case PACKET_CHANGE_IP :
leysenkobe 0:6ee88b4152dc 104 this->HandleChangeIP(p);
leysenkobe 1:fa51edf89e71 105 printf("CHANGE_IP");
leysenkobe 0:6ee88b4152dc 106 break;
leysenkobe 0:6ee88b4152dc 107 case PACKET_REMOVE_IP :
leysenkobe 0:6ee88b4152dc 108 this->removeIP();
leysenkobe 1:fa51edf89e71 109 printf("REMOVE_IP");
leysenkobe 0:6ee88b4152dc 110 break;
leysenkobe 0:6ee88b4152dc 111 case PACKET_GET_IP :
leysenkobe 0:6ee88b4152dc 112 this->IpReply();
leysenkobe 1:fa51edf89e71 113 printf("GET_IP");
leysenkobe 0:6ee88b4152dc 114 break;
leysenkobe 0:6ee88b4152dc 115 case PACKET_VERSION :
leysenkobe 0:6ee88b4152dc 116 this->VersionReply();
leysenkobe 1:fa51edf89e71 117 printf("VERSION");
leysenkobe 0:6ee88b4152dc 118 break;
leysenkobe 0:6ee88b4152dc 119 //case PACKET_VERSION_REPLY : --> zelf versturen!
leysenkobe 0:6ee88b4152dc 120 // break;
leysenkobe 0:6ee88b4152dc 121 case PACKET_SET_PACKAGE_SIZE :
leysenkobe 0:6ee88b4152dc 122 HandleSetPackageSize(p);
leysenkobe 1:fa51edf89e71 123 printf("SET_PACKAGE_SIZE");
leysenkobe 0:6ee88b4152dc 124 break;
leysenkobe 0:6ee88b4152dc 125 case PACKET_GET_SETTINGS :
leysenkobe 0:6ee88b4152dc 126 this->SettingsReply();
leysenkobe 1:fa51edf89e71 127 printf("GET_SETTINGS");
leysenkobe 0:6ee88b4152dc 128 break;
leysenkobe 0:6ee88b4152dc 129 //case PACKET_GET_SETTINGS_REPLY : --> moet verstuurd worden!
leysenkobe 0:6ee88b4152dc 130 // break;
leysenkobe 0:6ee88b4152dc 131 case PACKET_SET_ID :
leysenkobe 0:6ee88b4152dc 132 uint8_t *cmdData = p->getCMD_DATA();
leysenkobe 0:6ee88b4152dc 133 this->ID[0] = cmdData[0];
leysenkobe 0:6ee88b4152dc 134 this->ID[1] = cmdData[1];
leysenkobe 0:6ee88b4152dc 135 delete cmdData;
leysenkobe 0:6ee88b4152dc 136 this->Acknowledge();
leysenkobe 1:fa51edf89e71 137 printf("SET_ID");
leysenkobe 0:6ee88b4152dc 138 break;
leysenkobe 0:6ee88b4152dc 139 case PACKET_TEST_MODE :
leysenkobe 0:6ee88b4152dc 140 this->uart->send(p); //uitsturen via beide interfaces
leysenkobe 0:6ee88b4152dc 141 //this->wifi->send(p);
leysenkobe 1:fa51edf89e71 142 printf("TEST_MODE");
leysenkobe 0:6ee88b4152dc 143 break;
leysenkobe 0:6ee88b4152dc 144 case PACKET_LED_TEST_MODE :
leysenkobe 0:6ee88b4152dc 145 uint8_t *ledData = p->getCMD_DATA();
leysenkobe 0:6ee88b4152dc 146 uint8_t ledInfo = ledData[0];
leysenkobe 0:6ee88b4152dc 147 this->LedTest(ledInfo);
leysenkobe 0:6ee88b4152dc 148 delete ledData;
leysenkobe 1:fa51edf89e71 149 printf("LED_TEST_MODE");
leysenkobe 0:6ee88b4152dc 150 break;
leysenkobe 0:6ee88b4152dc 151 default:
leysenkobe 0:6ee88b4152dc 152 /// packet dat ik binnen krijg !!!!!
leysenkobe 1:fa51edf89e71 153 printf("huh??");
leysenkobe 0:6ee88b4152dc 154 break;
leysenkobe 0:6ee88b4152dc 155 }
leysenkobe 1:fa51edf89e71 156 printf("gedaan");
leysenkobe 0:6ee88b4152dc 157 delete p;
leysenkobe 0:6ee88b4152dc 158 }
leysenkobe 0:6ee88b4152dc 159
leysenkobe 0:6ee88b4152dc 160 void Module::sendPacket(Packet *p)
leysenkobe 0:6ee88b4152dc 161 {
leysenkobe 0:6ee88b4152dc 162 if(wifiEnabled)
leysenkobe 0:6ee88b4152dc 163 {
leysenkobe 0:6ee88b4152dc 164 //this->wifi->send(p);
leysenkobe 0:6ee88b4152dc 165 }
leysenkobe 0:6ee88b4152dc 166 else
leysenkobe 0:6ee88b4152dc 167 {
leysenkobe 0:6ee88b4152dc 168 this->uart->send(p);
leysenkobe 0:6ee88b4152dc 169 }
leysenkobe 0:6ee88b4152dc 170 }
leysenkobe 0:6ee88b4152dc 171 void Module::creatDataPacket()
leysenkobe 0:6ee88b4152dc 172 {
leysenkobe 0:6ee88b4152dc 173 //printf("MAAK PACKET !! \n");
leysenkobe 0:6ee88b4152dc 174 uint8_t *reserved = new uint8_t[2];
leysenkobe 0:6ee88b4152dc 175 reserved[0] = 0x00;
leysenkobe 0:6ee88b4152dc 176 reserved[1] = 0x00;
leysenkobe 0:6ee88b4152dc 177 int activeChannels = 0; //Het aantal actieve kanalen
leysenkobe 0:6ee88b4152dc 178 int nActiveChannels = 0; //Voor te versturen in het datapakket (zie verder)
leysenkobe 0:6ee88b4152dc 179
leysenkobe 0:6ee88b4152dc 180 for(int i = 0; i < 16; i++)
leysenkobe 0:6ee88b4152dc 181 {
leysenkobe 0:6ee88b4152dc 182 if(this->daq->ChannelEnabled(i) == true)
leysenkobe 0:6ee88b4152dc 183 {
leysenkobe 0:6ee88b4152dc 184 nActiveChannels++;
leysenkobe 0:6ee88b4152dc 185 activeChannels |= 1 << (15 - i);
leysenkobe 0:6ee88b4152dc 186 }
leysenkobe 0:6ee88b4152dc 187 }
leysenkobe 0:6ee88b4152dc 188 this->dataPacket = new Packet(this->ID,this->sampleNumber,this->packageSize,this->sampleRate,activeChannels,nActiveChannels,reserved);
leysenkobe 0:6ee88b4152dc 189 delete [] reserved;
leysenkobe 0:6ee88b4152dc 190 }
leysenkobe 0:6ee88b4152dc 191 void Module::HandleInit(Packet *p)
leysenkobe 0:6ee88b4152dc 192 {
leysenkobe 0:6ee88b4152dc 193 uint8_t cmdSize = p->getCMD_SIZE();
leysenkobe 0:6ee88b4152dc 194 /*
leysenkobe 0:6ee88b4152dc 195 //eventueel controle nog uitvoeren..
leysenkobe 0:6ee88b4152dc 196 if(cmdSize != 33){
leysenkobe 0:6ee88b4152dc 197 Packet *error = new Packet();
leysenkobe 0:6ee88b4152dc 198 this->sendPacket(error);
leysenkobe 0:6ee88b4152dc 199 delete packet;
leysenkobe 0:6ee88b4152dc 200 return;
leysenkobe 0:6ee88b4152dc 201 }*/
leysenkobe 0:6ee88b4152dc 202 uint8_t *cmdData = p->getCMD_DATA();
leysenkobe 0:6ee88b4152dc 203 uint8_t sampleRate = cmdData[0];
leysenkobe 0:6ee88b4152dc 204
leysenkobe 0:6ee88b4152dc 205 uint8_t channelGainByte;
leysenkobe 0:6ee88b4152dc 206 uint8_t channelEnabledByte;
leysenkobe 0:6ee88b4152dc 207
leysenkobe 0:6ee88b4152dc 208 this->sampleRate = sampleRate;
leysenkobe 0:6ee88b4152dc 209
leysenkobe 0:6ee88b4152dc 210 for(int i = 0; i < 16; i++){
leysenkobe 0:6ee88b4152dc 211 channelGainByte = cmdData[1 + i * 2];
leysenkobe 0:6ee88b4152dc 212 channelEnabledByte = cmdData[1 + i * 2 + 1];
leysenkobe 0:6ee88b4152dc 213 switch(channelGainByte){
leysenkobe 0:6ee88b4152dc 214 default: //0x00
leysenkobe 0:6ee88b4152dc 215 this->daq->setChannelGain(i, 1);
leysenkobe 0:6ee88b4152dc 216 break;
leysenkobe 0:6ee88b4152dc 217 case 0x01:
leysenkobe 0:6ee88b4152dc 218 this->daq->setChannelGain(i, 10);
leysenkobe 0:6ee88b4152dc 219 break;
leysenkobe 0:6ee88b4152dc 220 case 0x02:
leysenkobe 0:6ee88b4152dc 221 this->daq->setChannelGain(i, 100);
leysenkobe 0:6ee88b4152dc 222 break;
leysenkobe 0:6ee88b4152dc 223 case 0x03:
leysenkobe 0:6ee88b4152dc 224 this->daq->setChannelGain(i, 1000);
leysenkobe 0:6ee88b4152dc 225 break;
leysenkobe 0:6ee88b4152dc 226 }
leysenkobe 0:6ee88b4152dc 227
leysenkobe 0:6ee88b4152dc 228 if(channelEnabledByte == 0x01){ //enabled
leysenkobe 0:6ee88b4152dc 229 this->daq->enableChannel(i);
leysenkobe 0:6ee88b4152dc 230 }
leysenkobe 0:6ee88b4152dc 231 else{ //disabled
leysenkobe 0:6ee88b4152dc 232 this->daq->disableChannel(i);
leysenkobe 0:6ee88b4152dc 233 }
leysenkobe 0:6ee88b4152dc 234 }
leysenkobe 0:6ee88b4152dc 235
leysenkobe 0:6ee88b4152dc 236 delete cmdData;
leysenkobe 0:6ee88b4152dc 237 }
leysenkobe 0:6ee88b4152dc 238
leysenkobe 0:6ee88b4152dc 239 void Module::HandleEnableData(Packet *p){
leysenkobe 0:6ee88b4152dc 240 uint8_t *data = p->getCMD_DATA();
leysenkobe 0:6ee88b4152dc 241
leysenkobe 0:6ee88b4152dc 242 if(data[0] == 0x00){
leysenkobe 0:6ee88b4152dc 243 this->EnableData();
leysenkobe 0:6ee88b4152dc 244 }
leysenkobe 0:6ee88b4152dc 245 else{
leysenkobe 0:6ee88b4152dc 246 this->DisableData();
leysenkobe 0:6ee88b4152dc 247 }
leysenkobe 0:6ee88b4152dc 248
leysenkobe 0:6ee88b4152dc 249 delete data;
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 }