Go to the documentation of this file.00001 #ifndef ROC_UDPBOARD_H
00002 #define ROC_UDPBOARD_H
00003
00004 #include "roc/Board.h"
00005 #include "roc/defines_udp.h"
00006
00007 namespace roc {
00008
00009 extern const char* xmlTransferWindow;
00010
00011 class UdpBoard : public roc::Board {
00012
00013 protected:
00014
00015 int fRunningUpload;
00016 uint32_t fUploadChecksum;
00017
00018 UdpBoard();
00019 virtual ~UdpBoard();
00020
00021 int parseBitfileHeader(char* pBuffer, unsigned int nLen);
00022 uint8_t calcBinXOR(const char* filename);
00023
00024 virtual int rawPut(uint32_t address, uint32_t value, const void* rawdata = 0, double tmout = 0.) = 0;
00025 bool uploadDataToRoc(char* buf, unsigned len);
00026
00027 virtual bool submitSwPut(uint32_t address, uint32_t value, double tmout) = 0;
00028 virtual int checkSwPut() = 0;
00029
00030 public:
00031
00032
00033 virtual int getTransportKind() const { return kind_UDP; }
00034
00035 virtual int invokeDLM(unsigned num, double tmout = 0.);
00036
00037
00039 virtual uint32_t getPowerPCVersion();
00040
00041
00042 virtual uint32_t getRocBackendVersion();
00043
00045
00052 void BURST(uint32_t val);
00053
00055
00066 bool getRocLowHighWater(int& lowWater, int& highWater);
00067
00069
00085 bool setRocLowHighWater(int lowWater, int highWater);
00086
00088
00097 bool getRocBufferFlushTimer(uint32_t& bufferFlushTimer);
00098
00100
00114 bool setRocBufferFlushTimer(uint32_t bufferFlushTimer);
00115
00117
00124 virtual BoardStatistic* takeStat(double tmout = 0.01, bool print = false) = 0;
00125
00126
00128
00134 virtual void setConsoleOutput(bool terminal = false, bool network = false);
00135
00140 virtual bool sendConsoleCommand(const char* cmd);
00141
00143
00147 void switchToConsole();
00148
00153 int uploadBitfile(const char* filename, int position);
00154
00158 int uploadSDfile(const char* filename, const char* sdfilename = 0);
00159
00162 int checkUpload();
00163
00166 virtual bool saveConfig(const char* filename = 0);
00167
00170 virtual bool loadConfig(const char* filename = 0);
00171 };
00172
00173 }
00174
00175 #endif