Open yiyoMX opened 5 months ago
Juggluco test whether a value is valid: https://github.com/j-kaltes/Juggluco/blob/be880bee5c243b554aa14001ca09f9b5bc1a5d6f/Common/src/main/cpp/SensorGlucoseData.h#L115 Among which it checks that a value is below 502. Where did Juggluco display 1245? Have you found a place where this check is not made? Such large values will be displayed as missing values.
On the juggluco app and it broadcasted it to aaps. I deleted it from aaps for safety. Also, I started another sensor because and it started displaying new values since 1 min first was 45 then 180 and it jumped around for a little while, now it seems stable, the problem is that this values where also broadcasted, maybe it should have an option to disable broadcasts for x time, while the new sensor warms up.
El jue, 9 de may de 2024, 4:15 p. m., Jaap Korthals Altes < @.***> escribió:
Juggluco test whether a value is valid: https://github.com/j-kaltes/Juggluco/blob/be880bee5c243b554aa14001ca09f9b5bc1a5d6f/Common/src/main/cpp/SensorGlucoseData.h#L115 Among which it checks that a value is below 502. Where did Juggluco display 1245? Have you found a place where this check is not made? Such large values will be displayed as missing values.
— Reply to this email directly, view it on GitHub https://github.com/j-kaltes/Juggluco/issues/157#issuecomment-2103498297, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABRKWDM6L3DDJH4FOS74MV3ZBPYQTAVCNFSM6AAAAABHPQJFWWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMBTGQ4TQMRZG4 . You are receiving this because you authored the thread.Message ID: @.***>
El jue, 9 de may de 2024, 4:15 p. m., Jaap Korthals Altes < @.***> escribió:
Juggluco test whether a value is valid: https://github.com/j-kaltes/Juggluco/blob/be880bee5c243b554aa14001ca09f9b5bc1a5d6f/Common/src/main/cpp/SensorGlucoseData.h#L115 Among which it checks that a value is below 502. Where did Juggluco display 1245? Have you found a place where this check is not made? Such large values will be displayed as missing values.
— Reply to this email directly, view it on GitHub https://github.com/j-kaltes/Juggluco/issues/157#issuecomment-2103498297, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABRKWDM6L3DDJH4FOS74MV3ZBPYQTAVCNFSM6AAAAABHPQJFWWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMBTGQ4TQMRZG4 . You are receiving this because you authored the thread.Message ID: @.***>
I should have corrected it strait away, but I thought it didn't matter because of the reason I just mentioned. A few values that are 1080 mg/dL too large is every well possible. But after 5 minutes the values are normal.
The bug should be fixed in 8.0.17: https://www.juggluco.nl/Juggluco/download.html But for you it doesn't matter at all. The bug affects only the first four minutes with 8.0.16.
The thing is that it never went back to normal, it settled on 236 while I was 106 with a glucometer, before the update it was showing 116. I waited like 30 mins to see if it went back to normal but it didn't and decided to change the sensor for a new one. It's weird that it was that off with the update, while using the same sensor.
El jue, 9 de may de 2024, 4:29 p. m., Jaap Korthals Altes < @.***> escribió:
I should have corrected it strait away, but I thought it didn't matter because of the reason I just mentioned. A few values that are 1080 mg/dL too large is every well possible. But after 5 minutes the values are normal.
— Reply to this email directly, view it on GitHub https://github.com/j-kaltes/Juggluco/issues/157#issuecomment-2103548176, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABRKWDMUD2DKGCJETMDW5WLZBP2D7AVCNFSM6AAAAABHPQJFWWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMBTGU2DQMJXGY . You are receiving this because you authored the thread.Message ID: @.***>
That is something of the sensors. If you have a Chinese telephone number you can run the Chinese Sibionics app and receive all past values. https://cgm-prod-public.oss-cn-shenzhen.aliyuncs.com/app/update/android/%E7%A1%85%E5%9F%BA%E5%8A%A8%E6%84%9F.apk
When you press on Blood glucose device, followed by view data, you can view and save the individual values.
I dont have one. So its better to update the app when the sensor time is over?
On Thu, May 9, 2024 at 5:23 PM Jaap Korthals Altes @.***> wrote:
That is something of the sensors. If you have a Chinese telephone number you can run the Chinese Sibionics app and receive all past values. https://cgm-prod-public.oss-cn-shenzhen.aliyuncs.com/app/update/android/%E7%A1%85%E5%9F%BA%E5%8A%A8%E6%84%9F.apk
When you press on Blood glucose device, followed by view data, you can view and save the individual values.
— Reply to this email directly, view it on GitHub https://github.com/j-kaltes/Juggluco/issues/157#issuecomment-2103593795, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABRKWDPWHWLEJ27VPCB5IMTZBQAPDAVCNFSM6AAAAABHPQJFWWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMBTGU4TGNZZGU . You are receiving this because you authored the thread.Message ID: @.***>
--
Ing. Raúl Abraham C.
Director General
DEPOSITOS ELECTRICOS DE MORELIA S.A. DE C.V.
If you update from Juggluco before version 8.0.9, you can better update with a new sensor. From a later version is doesn't matter.
Hello. Thanks for the great features of Juggluco. I want to ask. Can Juggluco read European Sibionics sensors or only Chinese ones? And is it possible to simultaneously use different libraries for different regions of the Sibionics sensor in Juggluco?
I only tested Juggluco with Chinese Sibionics sensors. I think that it will work exactly the same way with European Sibionics sensors.
Russia began purchasing Sibionics from China. They are changing the packaging and I think they are using European sensors. In Russia they are called Hemotonix. Juggluco connected to this sensor but no data was sent. Data flows into the original application stably
And where can I find out the Status designation?
On your screenshot Juggluco is trying to connect to the sensor for only 2 minutes. You certainly have to wait longer. Status=19 (GATT_CONN_TERMINATE_PEER_USER) means that the sensor hanged up, for example because it connects to another app. Did the other app start again? EDIT: If it doesn't connect with more time and after killing competing apps, you can run a logging version of Juggluco and e-mail trace.log to me: https://www.juggluco.nl/Juggluco/download.html#bugreport
I'll try to send you the logs today
I have the same problem of connecting and failing to read Glucose data using the European Sibionics GS1 sensor. As suggested already, I will email you directly the trace.log
Please send me this log file too. I myself did not use this sensor, I helped a person remotely, he was unable to retrieve the log file. 3477734n@gmail.com
I have the same problem of connecting and failing to read Glucose data using the European Sibionics GS1 sensor. As suggested already, I will email you directly the trace.log
Geniy83 (https://github.com/j-kaltes/Juggluco/issues/157#issuecomment-2273841463) talked about sensors for the Hematonix app (https://play.google.com/store/apps/details?id=com.sisensing.rusibionics). He assumed it to be European Sibionics sensors. But why should that be so? You can use them for 16 days with Hematonix app, with the European app you can use sensors for only 14 days. Can you use European sensors for 16 days with the Hematonix app? Now cemcv25 (https://github.com/j-kaltes/Juggluco/issues/157#issuecomment-2288560118) talks about problems with European Sibionics GS1 sensors as if they are Hematonix sensors. What is the official app for your sensors? https://play.google.com/store/apps/details?id=com.sisensing.sijoy ?
The official app I use is https://play.google.com/store/apps/details?id=com.sisensing.sijoy&hl=en_GB using the Sibionics gs1 sensors sent to Europe (14-day) from Hong Kong. Sorry for the confusion, but my question was based on Geniy83 Initial post, where I understood there were two versions of the Sibionics gs1 sensor, Chinese and European. I was trying to understand why juggluco wasn’t connecting to my sensor. I hope that clarifies my question and the reason I sent the trace.log file.
They asked me for help connecting a Hematonix sensor to Juggluco. The person doesn't live nearby. Representatives sent the person 2 sensors, then called and told him not to pay attention to the box of the second sensor, that it was also Hematonix (photo below). After looking at the photo, I concluded that Russia is simply changing the packaging of Sibionics EU. When connecting to Juggluco, the Hematonix app was removed from the phone and the connection failed. The person couldn’t get the logs, there’s no experience, that’s why I didn’t email you anything.
The Hematonix app was reading the second sensor (in the white box), but Juggluco was unable to connect. Because of this, I concluded that there are some changes in the library
Then it is the case that Juggluco only works with Chinese Sibionics sensors. I have modified the github description.
Does the trace.log file that I sent to you confirm this ? I was hoping it might provide a solution to the problem.
trace.log contains very little data. The five bytes the the sensor sends, fail on a validity check, which probably means that the sensor communicates differently. How I don't know. Chinese Sibionics sensors also now and then did send data failing the validity check, but they only send other data which can be interpreted. Because so little data is available I don't know if that is also the case now.
Is it possible to use the library in Juggluco for Sibionics EU?
Hello. Let me send you a Hematonix sensor to test it?
Hello! I collected some Bluetooth logs with this sensor. It seems you need four commands to run it and another prefix. You will need wireshark to view the log. hematonix.log juggluco.log
I have the same problem of connecting and failing to read Glucose data using the European Sibionics GS1 sensor. As suggested already, I will email you directly the trace.log
Hello. If you currently have Sibionics EU installed, then have the Juggluco apk for this sensor. woter86 and I was able to connect the Hematonix and Sibionics EU sensor (for Europe) to the Juggluco. We can send the apk to your email.
If you modified Juggluco I am also interested in adding it to Juggluco. I haven't tried a EU Sibionic sensor myself because I expected it to be a lot of work and was busy with a Dexcom g7 sensor, but I am still interested in adding modifications to make it work.
If you modified Juggluco I am also interested in adding it to Juggluco. I haven't tried a EU Sibionic sensor myself because I expected it to be a lot of work and was busy with a Dexcom g7 sensor, but I am still interested in adding modifications to make it work.
Hi!
You can parse data from sensor with V120SpiltData: int[] arr_v1 = new int[2]; byte[] arr_b2 = new byte[0x1C00]; byte[] arr_b3 = new byte[2]; boolean z = false; if (CGMDataHandle130.V120SpiltData(0, value, arr_v1, arr_b2, z, arr_b3, value.length) <= 0) { CGMDataHandle130.V120SpiltData(0, value, arr_v1, arr_b2, true, arr_b3, value.length); }
To launch sensor: 2а) Data for first command: private byte[] makeDescriptor(BluetoothGatt bluetoothGatt) { // Sibionics EU v120RegisterKey("56CE249349040C94F8B4B2375A8752D5CBE7A17814B502D9132489C0BFDFC99F0CAC670E8CBB085AF1C780B3D282E3"); // Hematonix //v120RegisterKey("60B05FEB7C0A148DEED2B3375A8754D9D0E6A5751BCE02D9132489C0BFDFC99F0CAC670E8DA7115CEACF87B7DE8FD4612E1B7638C2"); byte[] arr_b = new byte[0x400]; String[] arr_s = bluetoothGatt.getDevice().getAddress().split(":"); StringBuilder stringBuffer0 = new StringBuilder(); int v2; for (v2 = arr_s.length - 1; v2 >= 0; --v2) { stringBuffer0.append(arr_s[v2]); } byte[] ad = convertDigitsToHex(stringBuffer0.toString()); int v3 = CGMDataHandle130.V120ApplyAuthentication(1, true, 0, ad, arr_b, 0x400); byte[] data = new byte[v3]; System.arraycopy(arr_b, 0, data, 0, v3); return data; } 2b) If reply to 2a: u16reply_ack_type == 0xC002 byte[] arr_b3 = new byte[0x400]; int v8 = CGMDataHandle130.V120Activation(0, true, new byte[2], ((long) (System.currentTimeMillis() / 1000L)), 1234, arr_b3, 0x400); data1 = new byte[v8]; System.arraycopy(arr_b3, 0, data1, 0, v8); service2.setValue(data1); bluetoothGatt.writeCharacteristic(service2); 2c) If reply to 2b: u16reply_ack_type == 0xC008 byte[] arr_b = new byte[0x400]; int v1 = CGMDataHandle130.V120IsecUpdate(0, true, new byte[2], ((long) (System.currentTimeMillis() / 1000L)), arr_b, 0x400); data1 = new byte[v1]; System.arraycopy(arr_b, 0, data1, 0, v1); service2.setValue(data1); bluetoothGatt.writeCharacteristic(service2); 2d) If reply to 2c: u16reply_ack_type == 0xC004: byte[] arr_b2 = new byte[0x400]; currentIndex = Natives.getSIindex(dataptr); int v12 = CGMDataHandle130.V120RawData(0, true, new byte[2], currentIndex, 0, arr_b2, 30); data1 = new byte[v12]; System.arraycopy(arr_b2, 0, data1, 0, v12); service2.setValue(data1); bluetoothGatt.writeCharacteristic(service2);
Answer to command: String result = new String(arr_b2, StandardCharsets.UTF_8).trim();
{"u16reply_ack_type":49154,"u8reply_ack_resule":1,"u8error_code":0}
Answer with glucodata: {"index":280,"temp":310,"current":84,"dump":2934,"reindex":0,"glouse":0,"trend":0,"gwarn":0,"twarn":0,"cwarn":0,"itime":1724775480} temp and current must be pass to NativesAlgo (as Sibionics)
when can you do it?
Why don’t I receive the APK and why did I receive this information from you and not Geniy83?
I am now kind of forced to put it in Juggluco, but I still can’t do that correctly without more information. • To what characteristic is the output of makeDescriptor written? service1 or service2? • I need some logging of the values of the arguments before and after calling V120ApplyAuthentication, V120Activation, V120IsecUpdate, V120SpiltData and V120RawData and their the return values.
For example CGMDataHandle130_V110SpiltData did nothing more then transforming the binary representation in a string of exactly the same information. For humans it becomes more readable, but for a computer it is more complicated and a waste of time.
Input: 00 01 01 24 0B BA 00 33 00 2D 85 FF 00 B5 00 02 01 24 0B B9 00 33 00 32 85 FE 00 B5 00 03 01 25 0B B9 00 33 00 37 85 FD 00 B5 00 04 01 26 0B B9 00 32 00 3C 85 FC 00 B5 00 05 01 27 0B B7 00 32 00 41 85 FB 00 B5 00 06 01 27 0B B7 00 32 00 46 85 FA 00 B5 00 07 01 28 0B B7 00 32 00 4B 85 F9 00 B5 00 08 01 29 0B B6 00 31 00 50 85 F8 00 B5 00 09 01 28 0B B6 00 31 00 55 85 F7 00 B5 00 0A 01 28 0B B5 00 30 00 5A 85 F6 00 B5 EF
Output: {"index":1,"temp":292,"current":51,"dump":3002,"status":45,"leftsend":34303,"nexttime":181},{"index":2,"temp":292,"current":51,"dump":3001,"status":50,"leftsend":34302,"nexttime":181},{"index":3,"temp":293,"current":51,"dump":3001,"status":55,"leftsend":34301,"nexttime":181},{"index":4,"temp":294,"current":50,"dump":3001,"status":60,"leftsend":34300,"nexttime":181},{"index":5,"temp":295,"current":50,"dump":2999,"status":65,"leftsend":34299,"nexttime":181},{"index":6,"temp":295,"current":50,"dump":2999,"status":70,"leftsend":34298,"nexttime":181},{"index":7,"temp":296,"current":50,"dump":2999,"status":75,"leftsend":34297,"nexttime":181},{"index":8,"temp":297,"current":49,"dump":2998,"status":80,"leftsend":34296,"nexttime":181},{"index":9,"temp":296,"current":49,"dump":2998,"status":85,"leftsend":34295,"nexttime":181},{"index":10,"temp":296,"current":48,"dump":2997,"status":90,"leftsend":34294,"nexttime":181}
The input is just an array of 16 bit big endian numbers with the same information. But this is maybe also changed.
Почему я не получаю APK и почему я получил эту информацию от вас, а не от Geniy83 ?
Теперь я вынужден поместить его в Juggluco, но я все еще не могу сделать это правильно без дополнительной информации. • В какой характеристике записан вывод makeDescriptor? service1 или service2? • Мне нужно некоторое логирование значений аргументов до и после вызова V120ApplyAuthentication, V120Activation, V120IsecUpdate, V120SpiltData и V120RawData и их возвращаемых значений.
Например, CGMDataHandle130_V110SpiltData не сделал ничего, кроме преобразования двоичного представления в строку точно такой же информации. Для людей это становится более читаемым, но для компьютера это более сложно и пустая трата времени.
Ввод: 00 01 01 24 0B BA 00 33 00 2D 85 FF 00 B5 00 02 01 24 0B B9 00 33 00 32 85 FE 00 B5 00 03 01 25 0B B9 00 33 00 37 85 FD 00 B5 00 04 01 26 0B B9 00 32 00 3C 85 FC 00 B5 00 05 01 27 0B B7 00 32 00 41 85 FB 00 B5 00 06 01 27 0B B7 00 32 00 46 85 FA 00 B5 00 07 01 28 0B B7 00 32 00 4B 85 F9 00 B5 00 08 01 29 0B B6 00 31 00 50 85 F8 00 B5 00 09 01 28 0B B6 00 31 00 55 85 F7 00 B5 00 0A 01 28 0B B5 00 30 00 5A 85 F6 00 B5 EF
Вывод: {"index":1,"temp":292,"current":51,"dump":3002,"status":45,"leftsend":34303,"nexttime":181},{"index":2,"temp":292,"current":51,"dump":3001,"status":50,"leftsend":34302,"nexttime":181},{"index":3,"temp":293,"current":51,"dump":3001 ,"status":55,"leftsend":34301,"nexttime":181},{"index":4,"temp":294,"current":50,"dump":3001,"status":60,"leftsend":34300,"nexttime":181},{"index":5,"temp":295,"current":50,"dump":2999,"status":65,"leftsend":34299,"nexttime":181}, {"index":6,"temp":295,"current":50,"dump":2999,"status":70,"leftsend":34298,"nexttime":181},{"index":7,"temp":296,"current":50,"dump":2999,"status":75,"leftsend":34297,"nexttime":181},{"index":8,"temp":297,"current":49,"dump":2998 ,"status":80,"leftsend":34296,"nexttime":181},{"index":9,"temp":296,"current":49,"dump":2998,"status":85,"leftsend":34295,"nexttime":181},{"index":10,"temp":296,"current":48,"dump":2997,"status":90,"leftsend":34294,"nexttime":181}
Вход — это просто массив 16-битных big endian чисел с той же информацией. Но это может быть также изменено.
Now I’ll send you the APK by email. Woter86 contributed to this. He did more of it. He will send you additional information. We just took a lot of your code from native
I sent you the APK. I hope you can make one version of Juggluco for all these sensors.
In the log file you send, I miss the content of the arguments after the function returns. For example of V120SpiltData you log:
[WARN] + Call: public static native int com.no.sisense.enanddecryption.CGMDataHandle130.V120SpiltData(int,byte[],int[],byte[],boolean,byte[],int)
[WARN] - Args[0]: 0
[WARN] - Args[1]: 60,-1,109,-112,8,59,-115,-34,-38,-74,-121,-115,4,-5,6,-116,-126,-124,-27,-36,41,-49,97,-74,126,10,-6,120
[WARN] - Args[2]: 0,0
[WARN] - Args[3]: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, etc
[WARN] - Args[4]: true
[WARN] - Args[5]: 0,0
[WARN] - Args[6]: 28
[WARN] - Return: 2
But the content of the arrays changes in the function. Before calling the function they are empty and afterwards some are filled. You need to log them before and after calling of the function.
I also need output of the BluetoothGattCallback (Override) functions in SiGattCallback. In Debug and Logging builds most are logged to /data/data/tk.glucodata/files/logs/trace.log. onCharacteristicChanged is logged in a native function that is removed, so it should be added, something like:
byte[] value = bluetoothGattCharacteristic.getValue();
showbytes("onCharacteristicChanged "+bluetoothGattCharacteristic.getUuid().toString(),value);
You can then send trace.log. You get it out of the device with:
adb shell run-as tk.glucodata cat /data/data/tk.glucodata/files/logs/trace.log > trace.log
In the log file you send, I miss the content of the arguments after the function returns. For example of V120SpiltData you log:
[WARN] + Call: public static native int com.no.sisense.enanddecryption.CGMDataHandle130.V120SpiltData(int,byte[],int[],byte[],boolean,byte[],int) [WARN] - Args[0]: 0 [WARN] - Args[1]: 60,-1,109,-112,8,59,-115,-34,-38,-74,-121,-115,4,-5,6,-116,-126,-124,-27,-36,41,-49,97,-74,126,10,-6,120 [WARN] - Args[2]: 0,0 [WARN] - Args[3]: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, etc [WARN] - Args[4]: true [WARN] - Args[5]: 0,0 [WARN] - Args[6]: 28 [WARN] - Return: 2
You can call this funtion to check result. I have no more logs.
byte[] value = bluetoothGattCharacteristic.getValue(); showbytes("onCharacteristicChanged "+bluetoothGattCharacteristic.getUuid().toString(),value);
This data you can find in wireshark log https://github.com/user-attachments/files/16770261/hematonix.log
Ok, how do I find the value in onCharacteristicChanged etc in analysis hematonix.log in wireshark?
But onCharacteristicChanged I can also find it in the input of V120SpiltData.
Is hematonix.log made at the same time as call_log_d2.txt so that I can search for the same data? For example for 3C FF 6D 90 08 3B 8D DE DA B6 87 8D 04 FB 06 8C 82 84 E5 DC 29 CF 61 B6 7E 0A FA 78 (the hex representation of 60,-1,109,-112,8,59,-115,-34,-38,-74,-121,-115,4,-5,6,-116,-126,-124,-27,-36,41,-49,97,-74,126,10,-6,120 that was the second argument to V120SpiltData that came from bluetoothGattCharacteristic.getValue() in onCharacteristicChanged)
I have no more logs. My code in comment work and args is constant.
Hi, first of all thanks for your work on this app. I've been using juggluco with Sibionics sensor and it was working great, until I updated the app. I was like 4 builds behind. I had a working sensor already when I updated, I had 115mg/dl but when I made the update it jumped to 1245 or something crazy like that, then it dropped to 250 and it settled somewhere around that number. I checked with a glucometer and I was 106. What can I do? Sensor is like 20days old.