Legen Dary
/
APP4
APP4 - S5 H16
trame.cpp@5:6315ad5e8686, 2016-02-24 (annotated)
- Committer:
- SonSenpai
- Date:
- Wed Feb 24 06:32:59 2016 +0000
- Revision:
- 5:6315ad5e8686
- Parent:
- 4:d773812f9f7b
last I guess
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
SonSenpai | 0:6b5926b50a71 | 1 | #include "trame.h" |
SonSenpai | 0:6b5926b50a71 | 2 | |
SonSenpai | 0:6b5926b50a71 | 3 | trame::trame( string msg ) |
SonSenpai | 0:6b5926b50a71 | 4 | { |
SonSenpai | 4:d773812f9f7b | 5 | std::printf("debug : creating trame with %s \n\r", msg); |
SonSenpai | 0:6b5926b50a71 | 6 | length = ( msg.length() * 8 ) + ( 7 * 8 ); |
SonSenpai | 0:6b5926b50a71 | 7 | dataLength = ( msg.length() * 8 ); |
SonSenpai | 0:6b5926b50a71 | 8 | preambule = 0x55; |
SonSenpai | 0:6b5926b50a71 | 9 | start = 0x7E; |
SonSenpai | 0:6b5926b50a71 | 10 | type_flags = 0x0; |
SonSenpai | 0:6b5926b50a71 | 11 | end = 0x7E; |
SonSenpai | 4:d773812f9f7b | 12 | message_length = msg.length()*8; |
SonSenpai | 0:6b5926b50a71 | 13 | |
SonSenpai | 0:6b5926b50a71 | 14 | string temp = ""; |
SonSenpai | 0:6b5926b50a71 | 15 | for (int i = 0; i < msg.length(); i++) |
SonSenpai | 0:6b5926b50a71 | 16 | { |
SonSenpai | 0:6b5926b50a71 | 17 | temp += bitset<8>( msg.c_str()[ i ]).to_string<char, string::traits_type, string::allocator_type>(); |
SonSenpai | 0:6b5926b50a71 | 18 | } |
SonSenpai | 4:d773812f9f7b | 19 | message = bitset<640>( temp ); |
SonSenpai | 0:6b5926b50a71 | 20 | char msg_c[ msg.length() ]; |
SonSenpai | 0:6b5926b50a71 | 21 | strcpy( msg_c, msg.c_str() ); |
SonSenpai | 0:6b5926b50a71 | 22 | unsigned short crc_t = CRC16::calculateCRC16( msg_c, msg.length() ); |
SonSenpai | 0:6b5926b50a71 | 23 | crc16 = crc_t; |
SonSenpai | 0:6b5926b50a71 | 24 | } |
SonSenpai | 0:6b5926b50a71 | 25 | |
SonSenpai | 0:6b5926b50a71 | 26 | bitset<696>* trame::getBitset() |
SonSenpai | 0:6b5926b50a71 | 27 | { |
SonSenpai | 0:6b5926b50a71 | 28 | bitFrame = new bitset<696>; |
SonSenpai | 0:6b5926b50a71 | 29 | for( int i = 0; i < 8; i++ ) |
SonSenpai | 0:6b5926b50a71 | 30 | { |
SonSenpai | 4:d773812f9f7b | 31 | (*bitFrame)[i] = preambule[7-i]; |
SonSenpai | 0:6b5926b50a71 | 32 | } |
SonSenpai | 0:6b5926b50a71 | 33 | |
SonSenpai | 0:6b5926b50a71 | 34 | for( int i = 0; i < 8; i++ ) |
SonSenpai | 0:6b5926b50a71 | 35 | { |
SonSenpai | 4:d773812f9f7b | 36 | (*bitFrame)[i+8] = start[7-i]; |
SonSenpai | 0:6b5926b50a71 | 37 | } |
SonSenpai | 0:6b5926b50a71 | 38 | |
SonSenpai | 0:6b5926b50a71 | 39 | for( int i = 0; i < 8; i++ ) |
SonSenpai | 0:6b5926b50a71 | 40 | { |
SonSenpai | 4:d773812f9f7b | 41 | (*bitFrame)[i+16] = type_flags[7-i]; |
SonSenpai | 0:6b5926b50a71 | 42 | } |
SonSenpai | 0:6b5926b50a71 | 43 | |
SonSenpai | 0:6b5926b50a71 | 44 | for( int i = 0; i < 8; i++ ) |
SonSenpai | 0:6b5926b50a71 | 45 | { |
SonSenpai | 4:d773812f9f7b | 46 | (*bitFrame)[i+24] = message_length[7-i]; |
SonSenpai | 0:6b5926b50a71 | 47 | } |
SonSenpai | 0:6b5926b50a71 | 48 | |
SonSenpai | 0:6b5926b50a71 | 49 | for( int i = 0; i < dataLength; i++ ) |
SonSenpai | 0:6b5926b50a71 | 50 | { |
SonSenpai | 4:d773812f9f7b | 51 | (*bitFrame)[i+32] = message[dataLength-1-i]; |
SonSenpai | 0:6b5926b50a71 | 52 | } |
SonSenpai | 0:6b5926b50a71 | 53 | |
SonSenpai | 0:6b5926b50a71 | 54 | for( int i = 0; i < 16; i++ ) |
SonSenpai | 0:6b5926b50a71 | 55 | { |
SonSenpai | 4:d773812f9f7b | 56 | (*bitFrame)[i+32+dataLength] = crc16[15-i]; |
SonSenpai | 0:6b5926b50a71 | 57 | } |
SonSenpai | 0:6b5926b50a71 | 58 | |
SonSenpai | 0:6b5926b50a71 | 59 | for( int i = 0; i < 8; i++ ) |
SonSenpai | 0:6b5926b50a71 | 60 | { |
SonSenpai | 4:d773812f9f7b | 61 | (*bitFrame)[i+48+dataLength] = end[7-i]; |
SonSenpai | 0:6b5926b50a71 | 62 | } |
SonSenpai | 0:6b5926b50a71 | 63 | |
SonSenpai | 0:6b5926b50a71 | 64 | for( int i = i+56+dataLength; i < 696; i++) |
SonSenpai | 0:6b5926b50a71 | 65 | { |
SonSenpai | 4:d773812f9f7b | 66 | (*bitFrame)[i] = 0; |
SonSenpai | 4:d773812f9f7b | 67 | } |
SonSenpai | 4:d773812f9f7b | 68 | for(int i = 0; i<length; i++) |
SonSenpai | 4:d773812f9f7b | 69 | { |
SonSenpai | 4:d773812f9f7b | 70 | std::printf("%d", (*bitFrame)[i] & 0x1); |
SonSenpai | 0:6b5926b50a71 | 71 | } |
SonSenpai | 0:6b5926b50a71 | 72 | return bitFrame; |
SonSenpai | 0:6b5926b50a71 | 73 | } |