Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- typedef struct{
- unsigned char pream;
- unsigned char packetType;
- unsigned char dataLen;
- unsigned char data;
- unsigned char hash;
- }packet;
- int main(int argc, char* argv[])
- {
- if (argc < 2)
- return 1;
- packet pac;
- FILE *pFile = fopen(argv[1], "rb");
- if (!pFile){
- printf("Can`t open file\n");
- return 1;
- }
- unsigned short buf;
- fread(&buf, sizeof(unsigned char), sizeof(buf), pFile);
- // pream ppppXXXX XXXXXXXX
- // type XXXXtttX XXXXXXXX
- // len XXXXXXXl llXXXXXX
- // 01011101 01NNNNNN NNNNNNNN NNNNNNNN NNNNNNNN NNNNNNNN NNCCCCXX
- // 01NNNNNN 01011101
- buf = ntohs(buf);
- // 01011101 01NNNNNN
- unsigned long long data = buf & 0x3F; // 0011 1111
- buf = buf >> 6;
- // 000000 0101110101
- unsigned char pream = (buf >> 6) & 0xF;
- unsigned char type = (buf >> 3) & 0x7;
- unsigned char len = buf & 0x7;
- unsigned char databuf[8];
- fread(databuf, sizeof(unsigned char), len, pFile);
- for (unsigned i = 0; i < len - 1; ++i)
- data = (data << 8) | databuf[i];
- data = (data << 2) | ((databuf[i] >> 6) & 0x3);
- while (!feof(pFile)){
- fread(&pac, sizeof(unsigned char), sizeof(pac), pFile);
- }
- fclose(pFile);
- printf("End operations...\n");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement