LRAUV  revA
DataReceiver.h
Go to the documentation of this file.
1 
9 #ifndef DATARECEIVER_H_
10 #define DATARECEIVER_H_
11 
13 
14 #include "logger/Logger.h"
15 
16 #include "../Lib/aes/AES.h"
17 
19 #define MAX_ZEROES 16
20 
22 #define MAX_STREAM_CMD 130
23 #define MAX_TARGET 100
24 
33 {
34 public:
35 
37  {
38  FILE_START = 0x00, // Contains stamp, crc, size, streamCmd, target, data
39  FILE_PART = 0x01, // Contains stamp, offset, data
40  FILE_MEDIUM_OFFSET = 0x02, // file offsets > 2^16 bytes
41  FILE_LARGE_OFFSET = 0x04, // file offsets > 2^24 bytes
42  FILE_FLAG = 0x80, // this is a file transfer
43  };
44 
45  static bool ReceiveSbd( const char* data, size_t dataLen, const char* keyText, Logger& logger );
46 
47  static void Receive( const char* data, size_t dataLen, Logger& logger );
48 
49 protected:
50 
54  static void FileStart( const char* data, size_t dataLen,
55  unsigned int flags, unsigned int stamp,
56  char* infoFilename, char* partFilename,
57  unsigned int& crc, size_t& size,
58  char* streamCmd, char* targetPath,
59  Logger& logger );
60 
65  static void FilePart( const char* data, size_t dataLen,
66  unsigned int flags, unsigned int stamp,
67  char* infoFilename, char* partFilename,
68  unsigned int& crc, size_t& size,
69  char* streamCmd, char* targetPath,
70  Logger& logger );
71 
74  static bool FileDone( char* partFilename, unsigned int crc,
75  size_t size, char* targetPath,
76  Logger& logger );
77 
78 private:
79 
81  DataReceiver();
82 
83  static AES Crypt_;
84 };
85 
86 #endif /*DATARECEIVER_H_*/
Client-side interface for injecting log data into the log queue.
Definition: Logger.h:30
BinaryTransferFlags
Definition: DataReceiver.h:36
Definition: DataReceiver.h:38
A DataAccessor that writes values to the Slate via its associated DataElement.
Definition: UniversalDataWriter.h:24
Handles data that is sent to the vehicle.
Definition: DataReceiver.h:32
static bool FileDone(char *partFilename, unsigned int crc, size_t size, char *targetPath, Logger &logger)
Returns true if file is completely written and there are no long stringstrailZ of zeroes in the data...
Definition: DataReceiver.cpp:304
static void FileStart(const char *data, size_t dataLen, unsigned int flags, unsigned int stamp, char *infoFilename, char *partFilename, unsigned int &crc, size_t &size, char *streamCmd, char *targetPath, Logger &logger)
Write data to start of file, and set informational parameters Data contains stamp, size, path, data Sets streamCmd.
Definition: DataReceiver.cpp:158
Definition: DataReceiver.h:40
static void Receive(const char *data, size_t dataLen, Logger &logger)
Definition: DataReceiver.cpp:66
static AES Crypt_
Definition: DataReceiver.h:83
Definition: DataReceiver.h:39
Contains the Logger class definition.
Definition: DataReceiver.h:42
DataReceiver()
Private constructor for singleton class.
Definition: DataReceiver.h:41
static void FilePart(const char *data, size_t dataLen, unsigned int flags, unsigned int stamp, char *infoFilename, char *partFilename, unsigned int &crc, size_t &size, char *streamCmd, char *targetPath, Logger &logger)
Write data to middle of file Data contains stamp, offset, data Sets streamCmd if possible Returns tru...
Definition: DataReceiver.cpp:229
static bool ReceiveSbd(const char *data, size_t dataLen, const char *keyText, Logger &logger)
Definition: DataReceiver.cpp:23