diff --git a/Plx/Plx.pro b/Plx/Plx.pro
index 30f2abf..82f08e8 100644
--- a/Plx/Plx.pro
+++ b/Plx/Plx.pro
@@ -17,7 +17,8 @@ DEFINES += QT_DEPRECATED_WARNINGS
 #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
 
 SOURCES += \
-    $$files(*.cpp, true) \
+    $$files(*.cpp, true) \ \
+    src/Wrapper/PlxWrapper.cpp
 
 
 HEADERS += \
diff --git a/Plx/include/LowLevel/HonaLowLevelAPI.h b/Plx/include/LowLevel/HonaLowLevelAPI.h
index 0ff54e2..704134d 100644
--- a/Plx/include/LowLevel/HonaLowLevelAPI.h
+++ b/Plx/include/LowLevel/HonaLowLevelAPI.h
@@ -2,6 +2,9 @@
 #define HONALOWLEVELAPI_H
 
 #include <QObject>
+#include "include/LowLevel/Setting/Setting.h"
+#include "include/LowLevel/HonaPacket.h"
+
 
 #include "LowLevel/Setting/Setting.h"
 #include "HonaPacket.h"
@@ -14,6 +17,7 @@ class HonaLowLevelAPI : public QObject
     Q_OBJECT
 
 private:
+
     bool _hsruIsStarted;
     bool _hiruIsStarted;
     HonaSetting _honaSetting;
@@ -22,6 +26,8 @@ private:
     int _threadSforValue = 0;
     bool _isReaderThreadFree = false;
     bool _isUpdateThreadFree = false;
+    quint32 honaRegisterBuffer[8];
+
 
 
 public:
@@ -29,11 +35,13 @@ public:
     bool isHsruStarted();
     bool isHiruStarted();
     void deviceReset();
+
     void setConfig(HonaSetting* honaSetting);
     HonaSetting getConfig();
     QString getSwVersion();
     QString getDeviceId();
     void hsruStart();
+
     void hiruStart();
     void init();
 
@@ -44,7 +52,7 @@ public:
     void setHiruIsStarted(bool hiruIsStarted);
 
 private:
-    void writeSettingToRegisters(HonaSetting& honaSetting);
+    void writeSettingToRegisters(honaSettings& settings);
     void setConfig();
     void hsruMainThread();
     void hsruReadThread();
@@ -52,6 +60,7 @@ private:
     int hiruGetDOA();
 
 
+
 signals:
     void signalToTop(QList<HonaPacket*> honaPacketList, int i, int j);
     //uncrustify off
diff --git a/Plx/include/LowLevel/Setting/Setting.h b/Plx/include/LowLevel/Setting/Setting.h
index 2dae7b9..c31a863 100644
--- a/Plx/include/LowLevel/Setting/Setting.h
+++ b/Plx/include/LowLevel/Setting/Setting.h
@@ -2,37 +2,41 @@
 #define SETTINGS_H
 
 #include <QtGlobal>
+#include <QList>
+#include "include/LowLevel/Utils/Utils.h"
+#include <QtGlobal>
+#include <QList>
 #include "include/LowLevel/Utils/Utils.h"
-
 /***********************************************************************************************/
-typedef struct _HIRUSETTINGS
+ struct hiruSettings_t
 {
-	recorderStart recordStard;
-	recorderMode recordMode;
-	quint32 recordChannel;
-	quint32 threshold = 0;
-	quint32 timeout = 1000;
-	quint32 count = 5;
-}hiruSettings;
+    recorderStart recordStard;
+    recorderMode recordMode;
+    quint32 recordChannel;
+    quint32 threshold = 0;
+    quint32 timeout = 1000;
+    quint32 count = 5;
+
+};
 /***********************************************************************************************/
-typedef struct _HSRUSETTINGS
+ struct hsruSettings_t
 {
-	bool isReal = true;
-	quint32 honaInt123CTHR = 128;
-	quint32 honaRes123CTHR = 128;
-	quint32 honaIntSTHR = 20;
-	quint32 honaResSTHR = 20;
-	quint32 honaSPTHR = 20;     //mode4
-	quint32 intM4_THR = 20;     //mode4
-	quint32 resM4_THR = 20;     //mode4
-}hsruSettings;
+    bool isReal = true;
+    quint32 honaInt123CTHR = 128;
+    quint32 honaRes123CTHR = 128;
+    quint32 honaIntSTHR = 20;
+    quint32 honaResSTHR = 20;
+    quint32 honaSPTHR = 20;     //mode4
+    quint32 intM4_THR = 20;     //mode4
+    quint32 resM4_THR = 20;     //mode4
+};
 /***********************************************************************************************/
-struct HonaSetting
+ struct honaSettings
 {
-	quint32 hsruSettings;
-	quint32 hiruSettings;
-};
+    hiruSettings_t hiruSettings;
+    hsruSettings_t hsruSettings;
 
+};
 /***********************************************************************************************/
 
 #endif //SETTING_H
diff --git a/Plx/include/LowLevel/Utils/Utils.h b/Plx/include/LowLevel/Utils/Utils.h
index d67f89e..2eb3411 100644
--- a/Plx/include/LowLevel/Utils/Utils.h
+++ b/Plx/include/LowLevel/Utils/Utils.h
@@ -1,9 +1,9 @@
 #ifndef UTILS_H
 #define UTILS_H
 
-
+#include <QtCore>
 /*************************************************************************************************/
- enum ApiResult
+enum apiResult : quint8
 {
     success,
     alreadyStarted,
@@ -11,14 +11,14 @@
     error
 };
 /*************************************************************************************************/
-typedef  enum _DRXDEVICEIFCHANNEL
+enum drxDeviceIfChannel : quint8
 {
     ifChannel11,
     ifChannel12
 
-}drxDeviceIfChannel;
+};
 /*************************************************************************************************/
-typedef  enum _HONARECEIVERS
+enum honaReceivers : quint8
 {
     int123C,
     intS,
@@ -26,24 +26,22 @@ typedef  enum _HONARECEIVERS
     int4,           //Mode 4
     res4,           //Mode 4
     signalPulse     //Mode 4
-
-}honaReceivers;
+};
 /*************************************************************************************************/
-typedef  enum _RECORDERMODE
+enum recorderMode : quint8
 {
     signalChannel,
     dualChannel
 
-}recorderMode;
+};
 /*************************************************************************************************/
-typedef  enum _RECORDSTART
+enum  recorderStart : quint8
 {
-    selfTestCounter,
-    freeRunRecording
-
-}recorderStart;
+    selfTestCounter= 1,
+    freeRunRecording = 2
+};
 /*************************************************************************************************/
-typedef  enum _HONAPACKETTYPE
+enum honaPacketType : quint8
 {
     interrogationMode123C,
     interrogationModeS56,
@@ -57,12 +55,11 @@ typedef  enum _HONAPACKETTYPE
     responseMode4,
     signalPulseMode4
 
-}honaPacketType;
+};
 /*************************************************************************************************/
 
 
 
 
 
-
 #endif // UTILS_H
diff --git a/Plx/src/LowLevel/HonaLowLevelAPI.cpp b/Plx/src/LowLevel/HonaLowLevelAPI.cpp
index c875df7..eaccac1 100644
--- a/Plx/src/LowLevel/HonaLowLevelAPI.cpp
+++ b/Plx/src/LowLevel/HonaLowLevelAPI.cpp
@@ -1,9 +1,13 @@
-#include "../../include/LowLevel/HonaLowLevelAPI.h"
+<<<<<<< HEAD
+
 #include <include/LowLevel/Utils/Utils.h>
+#include "include/LowLevel/HonaLowLevelAPI.h"
+#include "include/Wrapper/PlxWrapper.h"
 
 #include "qdebug.h"
 #include "QTime"
 #include "QtConcurrent/QtConcurrent"
+PlxWrapper plx;
 
 bool HonaLowLevelAPI::getHsruIsStarted() const
 {
@@ -101,20 +105,24 @@ QString HonaLowLevelAPI::getSwVersion()
 /*************************************************************************************************/
 QString HonaLowLevelAPI::getDeviceId()
 {
+
 }
 
 /*************************************************************************************************/
 void HonaLowLevelAPI::hsruStart()
 {
+
 }
 
 /*************************************************************************************************/
 void HonaLowLevelAPI::hiruStart()
 {
+
     if (isHiruStarted())
         //exceptiom
 
         QtConcurrent::run(this,&HonaLowLevelAPI::hsruMainThread);
+
 }
 
 /*************************************************************************************************/
@@ -123,8 +131,35 @@ void HonaLowLevelAPI::init()
 }
 
 /*************************************************************************************************/
-void HonaLowLevelAPI::writeSettingToRegisters(HonaSetting& honaSetting)
+void HonaLowLevelAPI::writeSettingToRegisters(honaSettings& settings)
 {
+    honaRegisterBuffer[0] = 0x00000000;
+    /************************************************************************/
+    if(settings.hiruSettings.recordStard == recorderStart::selfTestCounter)
+        honaRegisterBuffer[0] = 0x80000000;
+    else
+        honaRegisterBuffer[0] = 0x7FFFFFFF;
+     /************************************************************************/
+    if(settings.hiruSettings.recordChannel == drxDeviceIfChannel::ifChannel12)
+        honaRegisterBuffer[0] = 0x20000000;
+    else
+        honaRegisterBuffer[0] = 0xDFFFFFFF;
+    /************************************************************************/
+    if(settings.hiruSettings.recordMode == recorderMode::dualChannel)
+        honaRegisterBuffer[0] = 0x10000000;
+    else
+        honaRegisterBuffer[0] = 0xEFFFFFFF;
+    /************************************************************************/
+
+    honaRegisterBuffer[0] += (settings.hiruSettings.threshold & 0x00000FFF);
+
+    honaRegisterBuffer[1] = settings.hsruSettings.honaInt123CTHR;
+    honaRegisterBuffer[2] = settings.hsruSettings.honaRes123CTHR;
+    honaRegisterBuffer[3] = settings.hsruSettings.honaIntSTHR;
+    honaRegisterBuffer[4] = settings.hsruSettings.honaResSTHR;
+    honaRegisterBuffer[5] = settings.hsruSettings.honaSPTHR;
+    honaRegisterBuffer[6] = settings.hsruSettings.intM4_THR;
+    honaRegisterBuffer[7] = settings.hsruSettings.resM4_THR;
 
 }
 
@@ -159,14 +194,12 @@ void HonaLowLevelAPI::hsruReadThread()
         HsruReadDone.wakeAll();
         HsruUpdateAck.wait(&_mutex);
         _mutex.unlock();
-
     }
 }
 
 /*************************************************************************************************/
 void HonaLowLevelAPI::hsruUpdateThread()
 {
-
     while (true)
     {
         _mutex.lock();
@@ -178,6 +211,7 @@ void HonaLowLevelAPI::hsruUpdateThread()
         HsruUpdateAck.wakeAll();
 
     }
+
 }
 
 /*************************************************************************************************/
diff --git a/Plx/src/Wrapper/PlxWrapper.cpp b/Plx/src/Wrapper/PlxWrapper.cpp
new file mode 100644
index 0000000..e77198a
--- /dev/null
+++ b/Plx/src/Wrapper/PlxWrapper.cpp
@@ -0,0 +1,140 @@
+#include <QDebug>
+#include <QVector>
+#include "include/Wrapper/PlxWrapper.h"
+
+PlxWrapper::PlxWrapper()
+{
+
+}
+/*************************************************************************************************/
+bool PlxWrapper::deviceInit(quint32 devicekey)
+{
+    return PlxPci_9054_SelDevice(devicekey);
+}
+/*************************************************************************************************/
+bool PlxWrapper::deviceOpen(void)
+{
+    return  PlxPci_9054_Open();
+}
+/*************************************************************************************************/
+
+bool PlxWrapper::deviceClose(void)
+{
+    return PlxPci_9054_Close();
+}
+/*************************************************************************************************/
+bool PlxWrapper::deviceReset(void)
+{
+    return PlxPci_9054_Reset();
+}
+/*************************************************************************************************/
+bool PlxWrapper::deviceLoadE2pToFPGA(void)
+{
+    return PlxPci_9054_LoadE2pToFPGA();
+}
+/*************************************************************************************************/
+bool PlxWrapper::deviceReadEeprom(quint16 offset,quint32 length, QVector<quint32> &data)
+{
+    bool ret = true;
+    data.clear();
+
+    for(auto i = 0U; i < (length-1)*4; i+=4)
+    {
+        quint32 temp;
+        ret &= PlxPci_9054_ReadEep(offset+i, &temp);
+        data.append(temp);
+    }
+    return ret;
+}
+/*************************************************************************************************/
+bool PlxWrapper::deviceWriteEeprom(quint16 offset,quint32 data)
+{
+    return PlxPci_9054_WriteEep(offset,data);
+}
+/*************************************************************************************************/
+bool PlxWrapper::deviceReadRegister(quint32 address,QVector<quint32> &data,quint32 length)
+{
+    bool ret = true;
+    data.clear();
+
+    quint32 temp[length];
+    ret &= PlxPci_9054_ReadBar(address,&temp,length * 4);
+    if(ret == true)
+    {
+        for(auto i = 0U; i <length; i++)
+        {
+           data.append(temp[i]);
+            qDebug()<<hex<<temp[i];
+        }
+    }
+    return ret;
+}
+/*************************************************************************************************/
+bool PlxWrapper::deviceReadRegister(quint32 address,quint32 &data)
+{
+    return PlxPci_9054_ReadBar(address,&data,4);
+}
+/*************************************************************************************************/
+bool PlxWrapper::deviceWriteRegister(quint32 address,QVector<quint32> &data)
+{
+    bool ret = true;
+    auto length = data.length();
+    quint32 temp[length];
+
+    for(auto i = 0U; i <length; i++)
+       temp[i] = data.at(i);
+
+    ret &= PlxPci_9054_WriteBar(address,&temp,length * 4);
+
+    return ret;
+}
+/*************************************************************************************************/
+bool PlxWrapper::deviceWriteRegister(quint32 address,quint32 data)
+{
+    return PlxPci_9054_WriteBar(address,&data,4);
+}
+/*************************************************************************************************/
+bool PlxWrapper::deviceReadMemory(quint32 localAddress ,QVector<quint32> &data,quint32 length)
+{
+    bool ret = true;
+    data.clear();
+
+    quint32 temp[length];
+    ret &= PlxPci_9054_DMATransfer(localAddress,&temp,(quint32)(length*4));
+
+    for(auto i = 0U; i <length; i++)
+       data.append(temp[i]);
+
+      return  ret;
+}
+/*************************************************************************************************/
+bool PlxWrapper::deviceOpenPCIChannel(void)
+{
+    return PlxPci_9054_DMAChannelOpen();
+}
+/*************************************************************************************************/
+bool PlxWrapper::deviceClosePCIChannel(void)
+{
+    return PlxPci_9054_DMAChannelClose();
+}
+/*************************************************************************************************/
+
+bool PlxWrapper::deviceEnableInterrupt(void)
+{
+    return PlxPci_9054_EnableInterrupt();
+}
+/*************************************************************************************************/
+bool PlxWrapper::deviceDisableInterrupt(void)
+{
+    return PlxPci_9054_DisableInterrupt();
+}
+/*************************************************************************************************/
+bool PlxWrapper::deviceWaitForInterrupt(quint32 timeout)
+{
+    return PlxPci_9054_WaitForInterrupt(timeout);
+}
+/*************************************************************************************************/
+bool PlxWrapper::deviceGetChipType(quint8 revision,quint16 chipType)
+{
+    return PlxPci_9054_ChipTypeGet(revision,chipType);
+}