Library to control the mp3-tf-16p
LAS_TB.cpp@2:4697650da797, 2022-01-25 (annotated)
- Committer:
- JeroenAero
- Date:
- Tue Jan 25 19:26:21 2022 +0000
- Revision:
- 2:4697650da797
Version1;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
JeroenAero | 2:4697650da797 | 1 | #include "mbed.h" |
JeroenAero | 2:4697650da797 | 2 | #include "LAS_TB.h" |
JeroenAero | 2:4697650da797 | 3 | |
JeroenAero | 2:4697650da797 | 4 | LAS_TB::LAS_TB(PinName PinTX, PinName PinRX) : SerialPort(PinTX,PinRX) |
JeroenAero | 2:4697650da797 | 5 | { |
JeroenAero | 2:4697650da797 | 6 | //constructor. |
JeroenAero | 2:4697650da797 | 7 | SerialPort.baud(115200); |
JeroenAero | 2:4697650da797 | 8 | SerialPort.attach(callback(this,&LAS_TB::Rx_interrupt), Serial::RxIrq); |
JeroenAero | 2:4697650da797 | 9 | |
JeroenAero | 2:4697650da797 | 10 | //Dit verzenden we naar de LAS-TB. Bevat het order get measured.... |
JeroenAero | 2:4697650da797 | 11 | Stack[0] = 0x55; //Sync byte. |
JeroenAero | 2:4697650da797 | 12 | Stack[1] = 0x08; //Order (Get measerued values from L-LAS-RAM.) |
JeroenAero | 2:4697650da797 | 13 | Stack[2] = 0x00; //ARG LO. |
JeroenAero | 2:4697650da797 | 14 | Stack[3] = 0x00; //ARG HI. |
JeroenAero | 2:4697650da797 | 15 | Stack[4] = 0x00; //LEN LO. |
JeroenAero | 2:4697650da797 | 16 | Stack[5] = 0x00; //LEN HI. |
JeroenAero | 2:4697650da797 | 17 | Stack[6] = 0xAA; //CRC8 HEAD. |
JeroenAero | 2:4697650da797 | 18 | Stack[7] = 0x76; //CRC8 DATA. |
JeroenAero | 2:4697650da797 | 19 | } |
JeroenAero | 2:4697650da797 | 20 | |
JeroenAero | 2:4697650da797 | 21 | union Converter |
JeroenAero | 2:4697650da797 | 22 | { |
JeroenAero | 2:4697650da797 | 23 | int32_t um; // occupies 4 bytes |
JeroenAero | 2:4697650da797 | 24 | uint8_t byteArray[4]; // occupies 4 bytes |
JeroenAero | 2:4697650da797 | 25 | }; |
JeroenAero | 2:4697650da797 | 26 | |
JeroenAero | 2:4697650da797 | 27 | //Vragen om een meting. |
JeroenAero | 2:4697650da797 | 28 | void LAS_TB::MeasurementRequest() |
JeroenAero | 2:4697650da797 | 29 | { |
JeroenAero | 2:4697650da797 | 30 | SendStack(); |
JeroenAero | 2:4697650da797 | 31 | } |
JeroenAero | 2:4697650da797 | 32 | |
JeroenAero | 2:4697650da797 | 33 | //Wordt uitgevoerd bij ontvangen bericht. |
JeroenAero | 2:4697650da797 | 34 | void LAS_TB::Rx_interrupt() |
JeroenAero | 2:4697650da797 | 35 | { |
JeroenAero | 2:4697650da797 | 36 | while (SerialPort.readable()) |
JeroenAero | 2:4697650da797 | 37 | { |
JeroenAero | 2:4697650da797 | 38 | for (int i = 0; i < 71; i++) |
JeroenAero | 2:4697650da797 | 39 | { |
JeroenAero | 2:4697650da797 | 40 | ReceivedStack[i] = ReceivedStack[i+1]; |
JeroenAero | 2:4697650da797 | 41 | } |
JeroenAero | 2:4697650da797 | 42 | ReceivedStack[71] = SerialPort.getc(); |
JeroenAero | 2:4697650da797 | 43 | |
JeroenAero | 2:4697650da797 | 44 | //Hoe weten we dat het bericht goed is? |
JeroenAero | 2:4697650da797 | 45 | if (ReceivedStack[0] == 0x55 && ReceivedStack[1] == 0x08 && ReceivedStack[4] == 64) |
JeroenAero | 2:4697650da797 | 46 | { |
JeroenAero | 2:4697650da797 | 47 | int32_t temp = ReceivedStack[16]; |
JeroenAero | 2:4697650da797 | 48 | |
JeroenAero | 2:4697650da797 | 49 | umvalue = temp << 24; |
JeroenAero | 2:4697650da797 | 50 | temp = ReceivedStack[17]; |
JeroenAero | 2:4697650da797 | 51 | umvalue += temp << 16; |
JeroenAero | 2:4697650da797 | 52 | temp = ReceivedStack[18]; |
JeroenAero | 2:4697650da797 | 53 | umvalue += temp << 8; |
JeroenAero | 2:4697650da797 | 54 | temp = ReceivedStack[19]; |
JeroenAero | 2:4697650da797 | 55 | umvalue += temp; |
JeroenAero | 2:4697650da797 | 56 | } |
JeroenAero | 2:4697650da797 | 57 | } |
JeroenAero | 2:4697650da797 | 58 | } |
JeroenAero | 2:4697650da797 | 59 | |
JeroenAero | 2:4697650da797 | 60 | //Het sturen van data. |
JeroenAero | 2:4697650da797 | 61 | //Sends the stack of data to the sensor module. |
JeroenAero | 2:4697650da797 | 62 | void LAS_TB::SendStack() |
JeroenAero | 2:4697650da797 | 63 | { |
JeroenAero | 2:4697650da797 | 64 | |
JeroenAero | 2:4697650da797 | 65 | for (int i = 0; i < 10; i++) |
JeroenAero | 2:4697650da797 | 66 | { |
JeroenAero | 2:4697650da797 | 67 | SerialPort.putc(Stack[i]); |
JeroenAero | 2:4697650da797 | 68 | } |
JeroenAero | 2:4697650da797 | 69 | |
JeroenAero | 2:4697650da797 | 70 | } |