projet capteur connecté ST/SE
Dependencies: HP206C mbed HMC5883L DHT DS1820
communication.cpp@82:6f5913a97489, 2018-12-10 (annotated)
- Committer:
- MathieuM
- Date:
- Mon Dec 10 11:26:41 2018 +0000
- Revision:
- 82:6f5913a97489
- Parent:
- 77:67faccef7f14
Various updates
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MathieuM | 21:472dda13db73 | 1 | #include "mbed.h" |
MathieuM | 18:c2627f062107 | 2 | #include "communication.h" |
MathieuM | 18:c2627f062107 | 3 | |
MathieuM | 68:26938422fa0c | 4 | char *genMessage(float h_sol, float h_air, float t_sol, float t_air, long pression, int16_t *chMag) { |
MathieuM | 68:26938422fa0c | 5 | char *m; |
MathieuM | 68:26938422fa0c | 6 | m = (char*)malloc(12*sizeof(char)); |
MathieuM | 68:26938422fa0c | 7 | m[0] = ((char)h_sol) << 1; // b0 --- b6 |
MathieuM | 68:26938422fa0c | 8 | m[0] = m[0] + (((char)h_air) >> 6); // b7 |
MathieuM | 68:26938422fa0c | 9 | m[1] = ((char)h_air) << 2; // b8 --- b13 |
MathieuM | 77:67faccef7f14 | 10 | m[1] = m[1] + (((int)(t_sol * 10) + 200) >> 8); // b14 --- b15 |
MathieuM | 68:26938422fa0c | 11 | m[2] = ((int)(t_sol * 10) + 200) & 0x0ff; // b16 --- b23 |
MathieuM | 77:67faccef7f14 | 12 | m[3] = (((int)(t_air * 10) + 200) >> 2) & 0xff; // b24 --- b31 |
MathieuM | 77:67faccef7f14 | 13 | m[4] = (((int)(t_air * 10) + 200) & 0x03) << 10; // b32 --- b33 |
MathieuM | 68:26938422fa0c | 14 | m[4] = m[4] + ((chMag[0] & 0x3ff) >> 4); // b34 --- b39 |
MathieuM | 68:26938422fa0c | 15 | m[5] = chMag[0] & 0xf; // b40 --- b43 |
MathieuM | 68:26938422fa0c | 16 | m[5] = m[5] + ((chMag[1] & 0x3ff) >> 6); // b44 --- b47 |
MathieuM | 68:26938422fa0c | 17 | m[6] = (chMag[1] & 0x3f) << 2; // b48 --- b53 |
MathieuM | 68:26938422fa0c | 18 | m[6] = m[6] + (chMag[2] & 0x3ff) >> 8; // b54 --- b55 |
MathieuM | 68:26938422fa0c | 19 | m[7] = chMag[2] & 0xff; // b56 --- b63 |
MathieuM | 68:26938422fa0c | 20 | m[8] = (char)((pression & 0xff0000) >> 16); // b64 --- b71 |
MathieuM | 68:26938422fa0c | 21 | m[9] = (char)((pression & 0x00ff00) >> 8); // b72 --- b79 |
MathieuM | 68:26938422fa0c | 22 | m[10] = (char)(pression & 0x0000ff); // b80 --- b87 |
MathieuM | 76:04941d128fff | 23 | //m[11] = '\0'; |
MathieuM | 27:d9dec879b7a6 | 24 | return m; |
MathieuM | 27:d9dec879b7a6 | 25 | } |