From 18edd60757196580f7d011f13576bd061df6b130 Mon Sep 17 00:00:00 2001 From: Tptpvy <136075294+Tptpvy@users.noreply.github.com> Date: Sun, 14 Apr 2024 13:39:07 +0800 Subject: [PATCH 1/6] Update app.py added r_listdevice, haven't tested due to no devices connected. --- app.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/app.py b/app.py index 6f439a2..2088a4e 100644 --- a/app.py +++ b/app.py @@ -6,6 +6,7 @@ import configparser import sys import json +import time _config = configparser.ConfigParser() DEFAULT_CONFIG_FILES = [] @@ -91,3 +92,18 @@ def get_token(): #DEBUG: print(r_getdevice,file=sys.stderr) return r_getdevice + + # List all samples of stethoscope + #startdate=2024/2/29 + #enddate=1 minute ago + offset = '00' #x next available rows + payload = 'action=list'+"&"+ \ + 'startdate=1709136000'+"&"+ \ + 'enddate='+str(int(time.time())-60)+"&"+ \ + 'offset='+offset + + r_listdevice = requests.post('https://wbsapi.withings.net/v2/stetho', + headers=headers, + params=payload).json() + + return r_listdevice From ece6033255455d4fb1349adb27adec9aa2488f11 Mon Sep 17 00:00:00 2001 From: Tptpvy <136075294+Tptpvy@users.noreply.github.com> Date: Sun, 14 Apr 2024 14:02:36 +0800 Subject: [PATCH 2/6] Update app.py saves all samples into {sampleid}.json --- app.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/app.py b/app.py index 2088a4e..adfd9f2 100644 --- a/app.py +++ b/app.py @@ -107,3 +107,20 @@ def get_token(): params=payload).json() return r_listdevice + + # Get list of all signal id + sample_list = json.loads(r_listdevice) + signalid_list = [series['signalid'] for series in r_listdevice['body']['series']] + + # Download all samples + for signalid in signalid_list: + payload = 'action=get'+"&"+ \ + 'signalid='+str(signalid) + + r_getsample = requests.post('https://wbsapi.withings.net/v2/stetho', + headers=headers, + params=payload).json() + + filename = f"{signalid}.json" + with open(filename, 'w') as file: + file.write(json.dumps(r_getsample)) From b3f9129e8f6c6a5dca02a6af30eeb3a049f2dee3 Mon Sep 17 00:00:00 2001 From: Tptpvy <136075294+Tptpvy@users.noreply.github.com> Date: Thu, 18 Apr 2024 09:07:29 +0800 Subject: [PATCH 3/6] Update app.py downloads all samples json to home/user --- app.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app.py b/app.py index adfd9f2..e1b9981 100644 --- a/app.py +++ b/app.py @@ -91,7 +91,7 @@ def get_token(): #DEBUG: print(r_getdevice,file=sys.stderr) - return r_getdevice + #return r_getdevice # List all samples of stethoscope #startdate=2024/2/29 @@ -106,10 +106,10 @@ def get_token(): headers=headers, params=payload).json() - return r_listdevice + #return r_listdevice # Get list of all signal id - sample_list = json.loads(r_listdevice) + #sample_list = json.loads(r_listdevice) signalid_list = [series['signalid'] for series in r_listdevice['body']['series']] # Download all samples From 036738f5623c39cd7d4ddc6dcc01869606fe669b Mon Sep 17 00:00:00 2001 From: Tptpvy <136075294+Tptpvy@users.noreply.github.com> Date: Thu, 18 Apr 2024 09:09:33 +0800 Subject: [PATCH 4/6] Update app.py added a return value --- app.py | 1 + 1 file changed, 1 insertion(+) diff --git a/app.py b/app.py index e1b9981..d06c6de 100644 --- a/app.py +++ b/app.py @@ -124,3 +124,4 @@ def get_token(): filename = f"{signalid}.json" with open(filename, 'w') as file: file.write(json.dumps(r_getsample)) + return "Done!" From c02910ad6de4fa5a0f628bb5587b3f6bd15385f3 Mon Sep 17 00:00:00 2001 From: Tptpvy <136075294+Tptpvy@users.noreply.github.com> Date: Thu, 18 Apr 2024 12:24:20 +0800 Subject: [PATCH 5/6] Update app.py added decoder --- app.py | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/app.py b/app.py index d06c6de..e769e47 100644 --- a/app.py +++ b/app.py @@ -26,6 +26,21 @@ app = Flask(__name__) +# Signal decoder, exactly the same as the example in C +def decode(c): + m = c ^ 0x55 + m = m & 0x0f + e = (c & 0x70) >> 4 + if e > 0: + m |= 0x10 + m <<= 4 + m |= 0x08 + if e > 1: + m <<= e-1 + if c < 0x80: + m = -m + return m + @app.route("/") def get_code(): """ @@ -120,8 +135,13 @@ def get_token(): r_getsample = requests.post('https://wbsapi.withings.net/v2/stetho', headers=headers, params=payload).json() - + # Decode samples + signal = r_getsample['body']['signal'] + for i in range(len(signal)): + signal[i] = decode(signal[i]) + filename = f"{signalid}.json" with open(filename, 'w') as file: file.write(json.dumps(r_getsample)) + return "Done!" From 45197ace58d24223a9922d573078bf7aa6bf987b Mon Sep 17 00:00:00 2001 From: Tptpvy <136075294+Tptpvy@users.noreply.github.com> Date: Thu, 18 Apr 2024 17:34:36 +0800 Subject: [PATCH 6/6] Update app.py fixed decoder --- app.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app.py b/app.py index e769e47..468f9a6 100644 --- a/app.py +++ b/app.py @@ -28,8 +28,8 @@ # Signal decoder, exactly the same as the example in C def decode(c): - m = c ^ 0x55 - m = m & 0x0f + c = c ^ 0x55 + m = c & 0x0f e = (c & 0x70) >> 4 if e > 0: m |= 0x10 @@ -138,6 +138,8 @@ def get_token(): # Decode samples signal = r_getsample['body']['signal'] for i in range(len(signal)): + if signal[i] <0: + signal[i] += 256 signal[i] = decode(signal[i]) filename = f"{signalid}.json"