#ifndef __OWINTERFACES_H_
#define __OWINTERFACES_H_
+#if defined(WIN) || defined(LINUX)
+#else
+#if defined(_WINDOWS) || defined(__WINDOWS__) || defined(_WIN32) || defined(WIN32)
+#define WIN
+#else
+#define LINUX
+#endif
+#endif
+
+
#include <vector>
#include <stdint.h>
#include <string>
+#ifdef LINUX
#include <termios.h>
+#endif
#include <stdarg.h>
+#ifdef WIN
+#include <Windows.h>
+
+#endif
class owDevice;
class owDeviceConfig;
#if defined(_WINDOWS) || defined(__WINDOWS__) || defined(_WIN32) || defined(WIN32)
#define USE_WINDOWS_TIME 1
#include <windows.h>
- #include "win32/usb.h" // libusb header
+ //#include "win32/usb.h" // libusb header
#else
#define USE_WINDOWS_TIME 0
#include <time.h>
#define OWLOG_WARNING 2
#define OWLOG_ERROR 3
+#ifdef LINUX
+
+#define BLUE_B "\033[1;34m"
+#define COLOR_E "\033[0m"
+#define C2_B "\033[0;36m"
+#define C3_B "\033[3;34m"
+#define C4_B "\033[1;33m"
+#define C5_B "\033[4;33m"
+#define CLE_B "\033[1;31m"
+#define CLW_B "\033[1;33m"
+#endif
+#ifdef WIN
+#define BLUE_B ""
+#define C2_B ""
+#define C3_B ""
+#define C4_B ""
+#define COLOR_E ""
+#define C5_B ""
+#define CLE_B ""
+#define CLW_B ""
+
+#endif
+
+extern uint8_t owCC_44_Temp;
+
class owLog {
int lcount;
std::string logtext;
va_list arg;
int done;
va_start (arg, format);
+#ifdef LINUX
done = vsprintf (s, format, arg);
+#endif
+#ifdef WIN
+ done = vsprintf_s(s,300, format, arg);
+#endif
va_end (arg);
logtext=s;
level=llevel;
lcount++;
if (level>=loglevel) {
- if (loglevel==OWLOG_ERROR) printf("\033[1;31m%s\033[0m\n",s);
- else if (loglevel==OWLOG_WARNING) printf("\033[1;33m%s\033[0m\n",s);
+ if (loglevel==OWLOG_ERROR) printf(CLE_B "%s" COLOR_E "\n",s);
+ else if (loglevel==OWLOG_WARNING) printf(CLW_B "%s" COLOR_E "\n",s);
else printf("%s\n",s);
}
return done;
uint8_t calcCRC8(std::vector<uint8_t> data);
uint16_t calcCRC16(std::vector<uint8_t> data);
int testCRC16(std::vector<uint8_t> data);
+ int testCRC16(std::vector<uint8_t> data,uint16_t load);
- void resetFlasher();
- void resetID();
- int programmPage(int pagenr, std::vector<uint8_t> page, int pagesize);
+ void resetFlasher(uint64_t id);
+ void resetID(uint64_t id);
+ int programmPage(uint64_t id,int pagenr, std::vector<uint8_t> page, int pagesize);
int flashHEXFile(std::string filename,snum_t dev,int resetid,int progress);
void changeID(snum_t nid);
void runFlasher();
virtual int convertAll() {return 1;}
+ virtual int readMemory(int page,int start, int count,std::vector<uint8_t> *data) {return 0;};
+ virtual int writeMemory(int page,int start, int count,std::vector<uint8_t> *data) {return 0;};
+ virtual int getPageSize() {return 0;}
virtual ~owDevice() {}
};
virtual void setDefaultConfig();
int readScratchpad(std::vector<uint8_t> *sp);
virtual int convertAll();
+ virtual int getPageSize() {return 8;}
+ virtual int readMemory(int page,int start, int count,std::vector<uint8_t> *data);
} ;
int setConfigByte(uint8_t cb);
int readScratchpad(std::vector<uint8_t> *sp, uint8_t page, int recall);
-
+ virtual int readMemory(int page,int start, int count,std::vector<uint8_t> *data);
+ virtual int writeMemory(int page,int start, int count,std::vector<uint8_t> *data);
virtual int convertAll();
+ virtual int getPageSize() {return 8;}
} ;
class owDeviceDS2450:public owDevice {
virtual void setDefaultConfig();
virtual int convertAll();
- void readMemory(uint8_t addr,std::vector<uint8_t> *sp);
- void writeMemory(uint8_t addr,std::vector<uint8_t> *sp);
+ virtual int readMemory(int page,int start, int count,std::vector<uint8_t> *data);
+ virtual int writeMemory(int page,int start, int count,std::vector<uint8_t> *data);
+ void readMemory_int(uint8_t addr,std::vector<uint8_t> *sp);
+ void writeMemory_int(uint8_t addr,std::vector<uint8_t> *sp);
void convert(uint8_t mask, uint8_t preset);
+ virtual int getPageSize() {return 8;}
} ;
virtual void setDefaultConfig();
virtual int convertAll();
uint32_t readCounter(uint8_t page);
+ virtual int readMemory(int page,int start, int count,std::vector<uint8_t> *data);
+ virtual int writeMemory(int page,int start, int count,std::vector<uint8_t> *data);
+ virtual int getPageSize() {return 32;}
+
+
+} ;
+
+class owDeviceDS2408:public owDevice {
+public:
+ owDeviceDS2408(owInterface *owi_,snum_t num):owDevice(owi_,num) {}
+
+ virtual void setDefaultConfig();
+ virtual int convertAll();
+ virtual int readMemory(int page,int start, int count,std::vector<uint8_t> *data);
+ virtual int writeMemory(int page,int start, int count,std::vector<uint8_t> *data);
+ int readChannelAccess(int count,std::vector<uint8_t> *data);
+ int writeChannelAccess(int count, std::vector<uint8_t> *data);
+ int resetActivityLatches();
+ virtual int getPageSize() {return 32;}
+
} ;