diff --git a/doc/SSD1312_Datasheet (1).pdf b/doc/SSD1312_Datasheet (1).pdf deleted file mode 100644 index c718859..0000000 Binary files a/doc/SSD1312_Datasheet (1).pdf and /dev/null differ diff --git a/doc/TXW64128-41-TSWG13P096G-A-VER1.0.pdf b/doc/TXW64128-41-TSWG13P096G-A-VER1.0.pdf deleted file mode 100644 index 5ef088b..0000000 Binary files a/doc/TXW64128-41-TSWG13P096G-A-VER1.0.pdf and /dev/null differ diff --git a/doc/ads1293.pdf b/doc/ads1293.pdf deleted file mode 100644 index 6301615..0000000 Binary files a/doc/ads1293.pdf and /dev/null differ diff --git a/doc/m24m02-dr.pdf b/doc/m24m02-dr.pdf deleted file mode 100644 index 67a6ec6..0000000 Binary files a/doc/m24m02-dr.pdf and /dev/null differ diff --git a/screen_res/font/PC2LCD2021.exe b/screen_res/font/PC2LCD2021.exe deleted file mode 100644 index 42018a2..0000000 Binary files a/screen_res/font/PC2LCD2021.exe and /dev/null differ diff --git a/screen_res/font/data/config/FontsCfg.table b/screen_res/font/data/config/FontsCfg.table deleted file mode 100644 index ff5d7df..0000000 --- a/screen_res/font/data/config/FontsCfg.table +++ /dev/null @@ -1,3 +0,0 @@ -{ -cfg={cutRight=0;cutDown=0;cutLeft=0;userImgPixClrN=4282994728;userImgPixClrP=4288471279;userImgMaxNum=223.22222222222;isRotate180FlipX=false;imgW=24;userImgPixSize="5";imgH=24;userImgDir="./data/fontimg/";offsetH="0";cwRotate90=0;font="仿宋";fontStyple=1;cutUp=0;fontH=24;offsetV="0";isRotate180FlipY=false;fontW=24} -} \ No newline at end of file diff --git a/screen_res/font/data/config/array2ImgFrom.table b/screen_res/font/data/config/array2ImgFrom.table deleted file mode 100644 index 229c285..0000000 --- a/screen_res/font/data/config/array2ImgFrom.table +++ /dev/null @@ -1,17 +0,0 @@ -{ -edtOffset="0"; -cmbbxMode=1; -rdScanModeVH=1; -rdComVcc=0; -edtImgW="24"; -edtImgH="24"; -edtArray=' {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x1C, 0x00, 0x00, 0x00,\r\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x82, 0xFF, 0x21, 0x21, 0x11, 0xF9, 0x01, 0x60, 0x1C,\r\n 0x63, 0x82, 0x62, 0x1F, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x10, 0x0C, 0x03, 0x10, 0x10, 0x70,\r\n 0x4F, 0x40, 0x20, 0x10, 0x08, 0x06, 0x01, 0x06, 0x08, 0x70, 0x60, 0x40, 0x40, 0x00, 0x00}'; -rdScanModeV=0; -rdComGnd=1; -rdScanModeH=0; -afterLoad=null; -beforeSave=null; -rdByteLsb=1; -rdByteMsb=0; -rdScanModeHV=0 -} \ No newline at end of file diff --git a/screen_res/font/data/config/arrayCfg.table b/screen_res/font/data/config/arrayCfg.table deleted file mode 100644 index e0fa78f..0000000 --- a/screen_res/font/data/config/arrayCfg.table +++ /dev/null @@ -1,6 +0,0 @@ -{ -isByteMsb=0; -scanMode="VH"; -txtLineCharMaxNum=20; -isCommonGnd=1 -} \ No newline at end of file diff --git a/screen_res/font/data/config/arrayCfgFrom.table b/screen_res/font/data/config/arrayCfgFrom.table deleted file mode 100644 index dbdd2dd..0000000 --- a/screen_res/font/data/config/arrayCfgFrom.table +++ /dev/null @@ -1,13 +0,0 @@ -{ -rdScanModeHV=0; -afterLoad=null; -rdScanModeVH=1; -rdByteLsb=1; -rdComVcc=0; -beforeSave=null; -rdScanModeH=0; -edtTxtRowByteNum="20"; -rdByteMsb=0; -rdScanModeV=0; -rdComGnd=1 -} \ No newline at end of file diff --git a/screen_res/font/data/config/bottomFrom.table b/screen_res/font/data/config/bottomFrom.table deleted file mode 100644 index 90c3fc1..0000000 --- a/screen_res/font/data/config/bottomFrom.table +++ /dev/null @@ -1,4 +0,0 @@ -{ -afterLoad=null; -beforeSave=null -} \ No newline at end of file diff --git a/screen_res/font/字库生成配置.png b/screen_res/font/字库生成配置.png deleted file mode 100644 index aa00d21..0000000 Binary files a/screen_res/font/字库生成配置.png and /dev/null differ diff --git a/screen_res/font/字库生成配置2.png b/screen_res/font/字库生成配置2.png deleted file mode 100644 index 3e094b2..0000000 Binary files a/screen_res/font/字库生成配置2.png and /dev/null differ diff --git a/screen_res/logo/Image2Lcd/Img2Lcd.exe b/screen_res/logo/Image2Lcd/Img2Lcd.exe deleted file mode 100644 index f3bcce9..0000000 Binary files a/screen_res/logo/Image2Lcd/Img2Lcd.exe and /dev/null differ diff --git a/screen_res/logo/Image2Lcd/Img2Lcd_chs.chm b/screen_res/logo/Image2Lcd/Img2Lcd_chs.chm deleted file mode 100644 index 3aedf90..0000000 Binary files a/screen_res/logo/Image2Lcd/Img2Lcd_chs.chm and /dev/null differ diff --git a/screen_res/logo/Image2Lcd/Img2Lcd_cht.chm b/screen_res/logo/Image2Lcd/Img2Lcd_cht.chm deleted file mode 100644 index e9e74e3..0000000 Binary files a/screen_res/logo/Image2Lcd/Img2Lcd_cht.chm and /dev/null differ diff --git a/screen_res/logo/Image2Lcd/emenu.dll b/screen_res/logo/Image2Lcd/emenu.dll deleted file mode 100644 index a5f86c3..0000000 Binary files a/screen_res/logo/Image2Lcd/emenu.dll and /dev/null differ diff --git a/screen_res/logo/Image2Lcd/sss.dll b/screen_res/logo/Image2Lcd/sss.dll deleted file mode 100644 index 78595aa..0000000 Binary files a/screen_res/logo/Image2Lcd/sss.dll and /dev/null differ diff --git a/screen_res/logo/Image2Lcd/unins000.dat b/screen_res/logo/Image2Lcd/unins000.dat deleted file mode 100644 index 18cc316..0000000 Binary files a/screen_res/logo/Image2Lcd/unins000.dat and /dev/null differ diff --git a/screen_res/logo/Image2Lcd/unins000.exe b/screen_res/logo/Image2Lcd/unins000.exe deleted file mode 100644 index ba57ab9..0000000 Binary files a/screen_res/logo/Image2Lcd/unins000.exe and /dev/null differ diff --git a/screen_res/logo/img2lcd_cfg.png b/screen_res/logo/img2lcd_cfg.png deleted file mode 100644 index 6b2e9cf..0000000 Binary files a/screen_res/logo/img2lcd_cfg.png and /dev/null differ diff --git a/screen_res/logo/logo_mono.bmp b/screen_res/logo/logo_mono.bmp deleted file mode 100644 index 8a451d8..0000000 Binary files a/screen_res/logo/logo_mono.bmp and /dev/null differ diff --git a/screen_res/logo_mono.c b/screen_res/logo_mono.c deleted file mode 100644 index d8c0c6a..0000000 --- a/screen_res/logo_mono.c +++ /dev/null @@ -1,66 +0,0 @@ -const unsigned char gImage_logo_mono[1024] = { /* 0X22,0X01,0X80,0X00,0X40,0X00, */ -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X80,0XC0,0XE0, -0XF0,0XF0,0XF0,0XF0,0XF0,0XF0,0XE0,0XE0,0XC0,0XC0,0X80,0X00,0X00,0X00,0X70,0XF8, -0XF0,0XF0,0XE0,0XC0,0XC0,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X80,0XC0,0X00,0X00,0X00,0X00,0XC0,0XC0,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0XC0,0XC0,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0XC0,0XC0,0X00,0X00,0X00,0X80,0X80,0X80,0X80,0X80,0X80,0X80, -0X80,0X00,0X00,0X80,0X80,0X80,0X80,0X80,0X80,0X80,0X00,0XC0,0XC0,0X00,0X00,0X00, -0XC0,0XC0,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7E,0XFF,0XFF,0XFF, -0XC3,0X81,0X00,0X30,0X78,0XF9,0XF1,0XF3,0XE7,0XC7,0XCF,0X8F,0X9F,0X3E,0X3C,0X3C, -0X01,0X01,0X03,0XCF,0XFF,0XFF,0XFE,0X00,0X00,0X00,0X00,0X00,0X00,0X80,0XE0,0XFC, -0XFF,0XFF,0X07,0XB7,0XB7,0XB7,0XB7,0XB7,0XB7,0XB7,0XB7,0XB7,0XB7,0X97,0X00,0X00, -0XFC,0XFC,0XFC,0XFE,0XFF,0XFE,0X01,0X1F,0XFF,0XF0,0X00,0X00,0X3E,0XFE,0XF0,0X00, -0X00,0X0C,0X9C,0XFC,0XFF,0XFF,0XEC,0X8C,0XFF,0XFF,0XFF,0X31,0X31,0X31,0X73,0XFF, -0XFF,0X00,0X01,0X01,0XFF,0XFF,0X39,0XFF,0XFF,0X01,0X86,0X8F,0X8F,0XFF,0XFE,0X8E, -0X8F,0X8F,0X8E,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X03,0X07, -0X0F,0X0F,0X1F,0X3E,0X3E,0X7C,0XF8,0XF9,0XF3,0XE3,0XE7,0XCF,0X8F,0X9F,0X1E,0X1E, -0X1E,0X1E,0X1F,0X0F,0X0F,0X03,0X01,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X01,0XFF, -0XFF,0XFF,0X00,0XFD,0XFD,0XCD,0X8D,0X8D,0X8D,0X8D,0X8D,0XFD,0XFD,0XF8,0X00,0X30, -0X3F,0X1F,0X01,0X3F,0XFF,0XFF,0XC0,0XC0,0XC3,0XC3,0XE0,0XFC,0X7C,0X1F,0X3F,0X3E, -0X00,0X0E,0X0F,0X07,0XFF,0XFF,0X01,0X01,0X7F,0XFF,0XFF,0XC6,0XC6,0XC6,0XC6,0XFF, -0XFF,0X00,0X60,0X60,0X7F,0X7F,0X33,0XFF,0XFF,0X98,0XC1,0XE1,0XF9,0X3F,0X0F,0X1F, -0X7D,0XF1,0XC1,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X03,0X03,0X07,0X07,0X0F,0X0F,0X06, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01, -0X01,0X00,0X00,0X01,0X01,0X01,0X01,0X01,0X01,0X01,0X01,0X01,0X01,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X01,0X01,0X01,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X01,0X01,0X00,0X00,0X00,0X00,0X01,0X01,0X01,0X01,0X01,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X01,0X00,0X01,0X01,0X00,0X00,0X00,0X00, -0X00,0X00,0X01,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -}; diff --git a/test/MedianFilter.c b/test/MedianFilter.c deleted file mode 100644 index a785900..0000000 --- a/test/MedianFilter.c +++ /dev/null @@ -1,88 +0,0 @@ -/* - * MedianFilter.c - * - * Created on: May 19, 2018 - * Author: alexandru.bogdan - */ - -#include "MedianFilter.h" - -int MEDIANFILTER_Init(sMedianFilter_t *medianFilter) -{ - if(medianFilter && medianFilter->medianBuffer && - (medianFilter->numNodes % 2) && (medianFilter->numNodes > 1)) - { - //initialize buffer nodes - for(unsigned int i = 0; i < medianFilter->numNodes; i++) - { - medianFilter->medianBuffer[i].value = 0; - medianFilter->medianBuffer[i].nextAge = &medianFilter->medianBuffer[(i + 1) % medianFilter->numNodes]; - medianFilter->medianBuffer[i].nextValue = &medianFilter->medianBuffer[(i + 1) % medianFilter->numNodes]; - medianFilter->medianBuffer[(i + 1) % medianFilter->numNodes].prevValue = &medianFilter->medianBuffer[i]; - } - //initialize heads - medianFilter->ageHead = medianFilter->medianBuffer; - medianFilter->valueHead = medianFilter->medianBuffer; - medianFilter->medianHead = &medianFilter->medianBuffer[medianFilter->numNodes / 2]; - - return 0; - } - - return -1; -} - -int MEDIANFILTER_Insert(sMedianFilter_t *medianFilter, int sample) -{ - unsigned int i; - sMedianNode_t *newNode, *it; - - if(medianFilter->ageHead == medianFilter->valueHead) - { //if oldest node is also the smallest node, increment value head - medianFilter->valueHead = medianFilter->valueHead->nextValue; - } - - if((medianFilter->ageHead == medianFilter->medianHead) || - (medianFilter->ageHead->value > medianFilter->medianHead->value)) - { //prepare for median correction - medianFilter->medianHead = medianFilter->medianHead->prevValue; - } - - //replace age head with new sample - newNode = medianFilter->ageHead; - newNode->value = sample; - - //remove age head from list - medianFilter->ageHead->nextValue->prevValue = medianFilter->ageHead->prevValue; - medianFilter->ageHead->prevValue->nextValue = medianFilter->ageHead->nextValue; - //increment age head - medianFilter->ageHead = medianFilter->ageHead->nextAge; - - //find new node position - it = medianFilter->valueHead; //set iterator as value head - for(i = 0; i < medianFilter->numNodes - 1; i++) - { - if(sample < it->value) - { - if(i == 0) - { //replace value head if new node is the smallest - medianFilter->valueHead = newNode; - } - break; - } - it = it->nextValue; - } - - //insert new node in list - it->prevValue->nextValue = newNode; - newNode->prevValue = it->prevValue; - it->prevValue = newNode; - newNode->nextValue = it; - - //adjust median node - if(i >= (medianFilter->numNodes / 2)) - { - medianFilter->medianHead = medianFilter->medianHead->nextValue; - } - - return medianFilter->medianHead->value; -} \ No newline at end of file diff --git a/test/MedianFilter.h b/test/MedianFilter.h deleted file mode 100644 index e616ca5..0000000 --- a/test/MedianFilter.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * MedianFilter.h - * - * Created on: May 19, 2018 - * Author: alexandru.bogdan - */ - -#ifndef MEDIANFILTER_H_ -#define MEDIANFILTER_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct sMedianNode -{ - int value; //sample value - struct sMedianNode *nextAge; //pointer to next oldest value - struct sMedianNode *nextValue; //pointer to next smallest value - struct sMedianNode *prevValue; //pointer to previous smallest value -}sMedianNode_t; - -typedef struct -{ - unsigned int numNodes; //median node buffer length - sMedianNode_t *medianBuffer; //median node buffer - sMedianNode_t *ageHead; //pointer to oldest value - sMedianNode_t *valueHead; //pointer to smallest value - sMedianNode_t *medianHead; //pointer to median value -}sMedianFilter_t; - -int MEDIANFILTER_Init(sMedianFilter_t *medianFilter); -int MEDIANFILTER_Insert(sMedianFilter_t *medianFilter, int sample); - -#ifdef __cplusplus -} -#endif -#endif \ No newline at end of file diff --git a/test/README.md b/test/README.md deleted file mode 100644 index ddbc98c..0000000 --- a/test/README.md +++ /dev/null @@ -1 +0,0 @@ -pip install wfdb \ No newline at end of file diff --git a/test/a.exe b/test/a.exe deleted file mode 100644 index d807dab..0000000 Binary files a/test/a.exe and /dev/null differ diff --git a/test/test.c b/test/test.c deleted file mode 100644 index ebfaf6e..0000000 --- a/test/test.c +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include -#include -#include - -#include "MedianFilter.h" -#define NUM_ELEMENTS 201 - -static sMedianFilter_t medianFilter; -static sMedianNode_t medianBuffer[NUM_ELEMENTS]; - -int main() { - medianFilter.numNodes = NUM_ELEMENTS; - medianFilter.medianBuffer = medianBuffer; - - MEDIANFILTER_Init(&medianFilter); - int newValue = 1; - - while (1) { - newValue++; - int medianValue = MEDIANFILTER_Insert(&medianFilter, newValue); - printf("New value: %d \tMedian value: %d\r\n", newValue, medianValue); - - Sleep(1); - } - - return 0; -} \ No newline at end of file diff --git a/test/test.py b/test/test.py deleted file mode 100644 index 66a9795..0000000 --- a/test/test.py +++ /dev/null @@ -1,129 +0,0 @@ -import csv -from datetime import datetime - -import wfdb -import matplotlib.pyplot as plt -import numpy as np -from scipy.signal import medfilt -import pywt - -fliter = int(0.8*500) -Initial_intercept_point = 0 -Final_intercept_point = 2000 -Give_up_size = int(fliter/2) - -# Get dates, high, and low temperatures from file. -filename = 'sunyan.csv' -with open(filename) as f: - reader = csv.reader(f) - header_row = next(reader) - - leaddatas= [] - for row in reader: - try: - leaddata = int(row[0]) - except ValueError: - print(leaddata, 'missing data') - else: - leaddatas.append(leaddata) -#读取文件结束 - -#bandpass filter -from scipy import signal -fs = 500 # 采样率为500 Hz - -# 设计低通滤波器 -cutoff_freq = 40 # 截止频率 -order = 1 # 滤波器阶数 -nyquist = 0.5 * fs -cutoff = cutoff_freq / nyquist -b, a = signal.butter(order, cutoff, btype='low') - -# 应用低通滤波器 -lowpass_ecg_leaddatas = signal.filtfilt(b, a, leaddatas) - -# 设计高通滤波器 -cutoff_freq_high = 0.5 # 截止频率 -order_high = 1 # 滤波器阶数 -#nyquist = 0.5 * fs -cutoff_high = cutoff_freq_high / nyquist -b, a = signal.butter(order_high, cutoff_high, btype='high') - -# 应用高通滤波器 -filtered_ecg_signal_leaddatas = signal.filtfilt(b, a, lowpass_ecg_leaddatas) - -''' -# 使用小波变换,效果不好 -wavelet = 'sym5' # 选择小波类型,sym5是一种对称小波,常用于ECG信号 -levels = 4 # 分解级数 -coeffs = pywt.wavedec(filtered_ecg_signal_leaddatas, wavelet, level=levels) - -# 对小波系数进行阈值处理,这有助于去噪 -threshold = 0.2 * np.max(coeffs[-1]) -coeffs = [pywt.threshold(c, threshold, mode='soft') for c in coeffs] -reconstructed_signal = pywt.waverec(coeffs, wavelet) -''' - -''' -# 小波分解 -wavelet = 'db4' -coeffs = pywt.wavedec(filtered_ecg_signal_leaddatas, wavelet, level=4) - -# 对高频系数进行阈值处理(软阈值) -sigma = np.median(np.abs(coeffs[-1])) / 0.6745 # 估计噪声标准差 -threshold = sigma * np.sqrt(2 * np.log(len(filtered_ecg_signal_leaddatas))) - -# 对各层系数进行阈值处理 -denoised_coeffs = [pywt.threshold(c, threshold, mode='soft') for c in coeffs] - -# 重建信号 -denoised_signal = pywt.waverec(denoised_coeffs, wavelet) - -''' - -# Define the window size for moving average (adjust as needed) -window_size = 2 - -# Perform moving average filtering -moving_avg_ecg1 = np.convolve(lowpass_ecg_leaddatas, np.ones(window_size)/window_size, mode='valid') - - -#record = wfdb.rdrecord('mit-bih-arrhythmia-database-1.0.0/100', sampfrom=0, sampto=25000, physical=True, channels=[0, ]) -#Original_ECG = record.p_signal[Initial_intercept_point:Final_intercept_point].flatten() -Original_ECG = moving_avg_ecg1 -ECG_baseline = medfilt(Original_ECG, fliter+1) -Totality_Bias = np.sum(ECG_baseline[Give_up_size:-Give_up_size])/(Final_intercept_point-Initial_intercept_point-fliter) -Filtered_ECG = Original_ECG - ECG_baseline -Final_Filtered_ECG = Filtered_ECG[Give_up_size:-Give_up_size]-Totality_Bias - - - -plt.figure(figsize=(100, 8)) -plt.subplot(2, 1, 1) -plt.ylabel("Original ECG signal") -plt.plot(leaddatas)#输出原图像leaddatas - -plt.subplot(2, 1, 2) -plt.ylabel("Filtered ECG signal") -plt.plot(Original_ECG)#基线滤波结果 - -plt.show() - - -#心率计算 -import biosppy.signals.ecg as ecg - -rpeaks = ecg.hamilton_segmenter(signal=Final_Filtered_ECG, sampling_rate=500) - -def calculate_heart_rate(r_peaks, sampling_rate): - # 计算相邻R波之间的时间间隔(单位:秒) - rr_intervals = np.diff(r_peaks) / sampling_rate - # 将时间间隔转换为每分钟的心跳数(bpm) - heart_rates = 60 / rr_intervals - return heart_rates - - -# 计算心率 -heart_rates = calculate_heart_rate(rpeaks, sampling_rate=500) -print("Heart rates (bpm):", heart_rates) - diff --git a/tools/build.bat b/tools/build.bat deleted file mode 100644 index 5c14c42..0000000 --- a/tools/build.bat +++ /dev/null @@ -1,4 +0,0 @@ -g++ -static -static-libgcc -static-libstdc++ -lwsock32 -lstdc++ .\sample_bin_parse.cpp -o sample_bin_parse.exe -g++ -static -static-libgcc -static-libstdc++ -lwsock32 -lstdc++ text2bin.cpp -o text2bin.exe -g++ -static -static-libgcc -static-libstdc++ -lwsock32 -lstdc++ one_lead_upload_packet_parser.cpp -o one_lead_upload_packet_parser.exe -g++ -static -static-libgcc -static-libstdc++ -lwsock32 -lstdc++ one_lead_realtime_report_parser.cpp -o one_lead_realtime_report_parser.exe \ No newline at end of file diff --git a/tools/nrfutil.exe b/tools/nrfutil.exe deleted file mode 100644 index 3de2d9b..0000000 Binary files a/tools/nrfutil.exe and /dev/null differ diff --git a/tools/one_lead_realtime_report_parser.cpp b/tools/one_lead_realtime_report_parser.cpp deleted file mode 100644 index 5b7910f..0000000 --- a/tools/one_lead_realtime_report_parser.cpp +++ /dev/null @@ -1,121 +0,0 @@ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -// -#include -// -#include -// -#include - -#pragma comment(lib, "ws2_32.lib") -#define PORT 8988 - -// #define EACH_FRAME_SIZE 180 -// #define DATA_NUM (EACH_FRAME_SIZE / 3) - -// 5A A5 -// 03 00 65 -// 05 00 00 00 -// 77 07 -// 80 07 -// 7F 07 -// 88 07 -// 8D 07 -// 5B B5 -#pragma pack(1) -typedef struct parse_packet_to_csv { - uint8_t h0; - uint8_t h1; - uint8_t header[3]; - uint8_t index[4]; - uint16_t data[5]; - uint8_t e0; - uint8_t e1; -}; -#pragma pack() - -#define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0])) - -uint16_t chdatacache[5]; - -void parse_chdatacache(parse_packet_to_csv *packet) { - chdatacache[0] = packet->data[0]; - chdatacache[1] = packet->data[1]; - chdatacache[2] = packet->data[2]; - chdatacache[3] = packet->data[3]; - chdatacache[4] = packet->data[4]; -} - -int main(int argc, char *argv[]) { - /** - * @brief - * raw.txt - * ȡraw.txtȫ - * ȥУո񣬻س - * 16ַתɶ - * дraw.bin - */ - - std::ifstream ifs("Data.txt"); - std::string str((std::istreambuf_iterator(ifs)), std::istreambuf_iterator()); - ifs.close(); - - std::string str2; - for (auto &c : str) { - if (c == ' ' || c == '\n' || c == '\r') { - continue; - } - str2.push_back(c); - } - - std::ofstream ofs("Data.bin", std::ios::binary); - for (size_t i = 0; i < str2.size(); i += 2) { - std::string str3 = str2.substr(i, 2); - char c = (char)std::stoi(str3, nullptr, 16); - ofs.write(&c, 1); - } - ofs.close(); - - /** - * @brief - * ϱļ - */ - - { - std::ifstream ifs("Data.bin", std::ios::binary); - std::vector buffer((std::istreambuf_iterator(ifs)), std::istreambuf_iterator()); - ifs.close(); - - printf("buffer.size() = %d\n", buffer.size()); - std::ofstream ofs("Data.csv"); - for (size_t i = 0; i < buffer.size();) { - parse_packet_to_csv *packet = (parse_packet_to_csv *)&buffer[i]; - - if (packet->h0 == 0x5A && packet->h1 == 0xA5 && packet->e0 == 0x5B && packet->e1 == 0xB5) { - parse_chdatacache(packet); - for (size_t i = 0; i < ARRAY_SIZE(chdatacache); i += 1) { - ofs << chdatacache[i] << "\n"; - } - i += sizeof(parse_packet_to_csv); - } else { - i++; - } - } - } - - printf("parse over\n"); - - while (true) { - std::this_thread::sleep_for(std::chrono::seconds(1)); - } -} \ No newline at end of file diff --git a/tools/one_lead_realtime_report_parser.exe b/tools/one_lead_realtime_report_parser.exe deleted file mode 100644 index f42f8bb..0000000 Binary files a/tools/one_lead_realtime_report_parser.exe and /dev/null differ diff --git a/tools/one_lead_upload_packet_parser.cpp b/tools/one_lead_upload_packet_parser.cpp deleted file mode 100644 index ac5d5b3..0000000 --- a/tools/one_lead_upload_packet_parser.cpp +++ /dev/null @@ -1,102 +0,0 @@ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -// -#include -// -#include -// -#include - -#pragma comment(lib, "ws2_32.lib") -#define PORT 8988 - -// #define EACH_FRAME_SIZE 180 -// #define DATA_NUM (EACH_FRAME_SIZE / 3) - -typedef struct parse_packet_to_csv { - uint8_t h0; - uint8_t h1; - uint8_t data[128]; - uint8_t e0; - uint8_t e1; -}; - -uint32_t chdatacache[64]; -void parse_chdatacache(parse_packet_to_csv *packet) { - for (size_t i = 0; i < 64; i++) { - chdatacache[i] = (packet->data[i * 2]) | (packet->data[i * 2 + 1] << 8); - } -} - -int main(int argc, char *argv[]) { - /** - * @brief - * raw.txt - * ȡraw.txtȫ - * ȥУո񣬻س - * 16ַתɶ - * дraw.bin - */ - - std::ifstream ifs("Data.txt"); - std::string str((std::istreambuf_iterator(ifs)), std::istreambuf_iterator()); - ifs.close(); - - std::string str2; - for (auto &c : str) { - if (c == ' ' || c == '\n' || c == '\r') { - continue; - } - str2.push_back(c); - } - - std::ofstream ofs("Data.bin", std::ios::binary); - for (size_t i = 0; i < str2.size(); i += 2) { - std::string str3 = str2.substr(i, 2); - char c = (char)std::stoi(str3, nullptr, 16); - ofs.write(&c, 1); - } - ofs.close(); - - /** - * @brief - * ϱļ - */ - - { - std::ifstream ifs("Data.bin", std::ios::binary); - std::vector buffer((std::istreambuf_iterator(ifs)), std::istreambuf_iterator()); - ifs.close(); - - printf("buffer.size() = %d\n", buffer.size()); - std::ofstream ofs("Data.csv"); - for (size_t i = 0; i < buffer.size();) { - parse_packet_to_csv *packet = (parse_packet_to_csv *)&buffer[i]; - parse_chdatacache(packet); - if (packet->h0 == 0x4A && packet->h1 == 0xA4 && packet->e0 == 0x4B && packet->e1 == 0xB4) { - for (size_t i = 0; i < 64; i += 1) { - ofs << chdatacache[i] << "\n"; - } - i += sizeof(parse_packet_to_csv); - } else { - i++; - } - } - } - - printf("parse over\n"); - - while (true) { - std::this_thread::sleep_for(std::chrono::seconds(1)); - } -} \ No newline at end of file diff --git a/tools/one_lead_upload_packet_parser.exe b/tools/one_lead_upload_packet_parser.exe deleted file mode 100644 index ebc8bcb..0000000 Binary files a/tools/one_lead_upload_packet_parser.exe and /dev/null differ diff --git a/tools/sample_bin_parse.cpp b/tools/sample_bin_parse.cpp deleted file mode 100644 index 2e74d50..0000000 --- a/tools/sample_bin_parse.cpp +++ /dev/null @@ -1,54 +0,0 @@ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -// -#include -// -#include -// -#include - -#pragma comment(lib, "ws2_32.lib") -#define PORT 8988 - -int main(int argc, char *argv[]) { - // 0.bin - // ȡ 0.bin - // ÿζ9byte - // 3byte 3byte 3byte - // ŵ0.csv - - std::ifstream ifs("0.bin", std::ios::binary); - if (!ifs) { - std::cerr << "open 0.bin failed" << std::endl; - return -1; - } - - std::ofstream ofs("0.csv", std::ios::binary | std::ios::trunc); - if (!ofs) { - std::cerr << "open 0.csv failed" << std::endl; - return -1; - } - - char buf[9]; - while (ifs.read(buf, 9)) { - unsigned int a = 0; - unsigned int b = 0; - unsigned int c = 0; - a = (unsigned char)buf[0] | (unsigned char)buf[1] << 8 | (unsigned char)buf[2] << 16; - b = (unsigned char)buf[3] | (unsigned char)buf[4] << 8 | (unsigned char)buf[5] << 16; - c = (unsigned char)buf[6] | (unsigned char)buf[7] << 8 | (unsigned char)buf[8] << 16; - ofs << a << "," << b << "," << c << std::endl; - } - - return 0; -} \ No newline at end of file diff --git a/tools/sample_bin_parse.exe b/tools/sample_bin_parse.exe deleted file mode 100644 index 514e45f..0000000 Binary files a/tools/sample_bin_parse.exe and /dev/null differ diff --git a/tools/text2bin.cpp b/tools/text2bin.cpp deleted file mode 100644 index 5dd2290..0000000 --- a/tools/text2bin.cpp +++ /dev/null @@ -1,54 +0,0 @@ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -// -#include -// -#include -// -#include - -#pragma comment(lib, "ws2_32.lib") -#define PORT 8988 - -int main(int argc, char *argv[]) { - /** - * @brief - * raw.txt - * ȡraw.txtȫ - * ȥУո񣬻س - * 16ַתɶ - * дraw.bin - */ - - std::ifstream ifs("raw.txt"); - std::string str((std::istreambuf_iterator(ifs)), std::istreambuf_iterator()); - ifs.close(); - - std::string str2; - for (auto &c : str) { - if (c == ' ' || c == '\n' || c == '\r') { - continue; - } - str2.push_back(c); - } - - std::ofstream ofs("raw.bin", std::ios::binary); - for (size_t i = 0; i < str2.size(); i += 2) { - std::string str3 = str2.substr(i, 2); - char c = (char)std::stoi(str3, nullptr, 16); - ofs.write(&c, 1); - } - ofs.close(); - - return 0; -} \ No newline at end of file diff --git a/tools/text2bin.exe b/tools/text2bin.exe deleted file mode 100644 index 1c2ad77..0000000 Binary files a/tools/text2bin.exe and /dev/null differ