GithubHelp home page GithubHelp logo

xdripswift's Introduction

Project in development.

Documentation available on https://xdrip4ios.readthedocs.io/en/latest/

for info, send an email to [email protected]

Current Status :

For developers : please go to the Wiki : https://github.com/JohanDegraeve/xdripswift/wiki

xdripswift's People

Contributors

abutmim avatar ahmed-t1d avatar alekst1d avatar andrei0105 avatar avouspierre avatar bjornoleh avatar bubbledevteam avatar dnzxy avatar eduardopietre avatar gabriellm1 avatar gui-dos avatar hdbapro avatar ivalkou avatar jizhongwen avatar johandegraeve avatar jon-b-m avatar liroyvh avatar makotila avatar miguelpruivo avatar mikeplante1 avatar parapent1sta avatar paulplant avatar pvavolas avatar quotengrote avatar sjaveed avatar sn1kk3r5 avatar stami avatar vanzaam avatar yurique avatar znv569 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

xdripswift's Issues

Previous readings after diconnected

This request is when using a combination of Libre+Miaomiao, but can perfectly be applicable also to other devices....

When using xDrip+ in Android, after the app disconnects from miaomiao (i.e. phone is turned off, or connection is lost for any other reason), after reconnecting again, the app pulls data up to 8 hours back, which I'm assuming is the data available in Libre and that can be pulled from miaomiao. In this tool, when the app disconnects from miaomiao, and it reconnects again, only the last 4-5 readings are pulled, and everything else is lost. My request therefore is to pull as much as possible all missing data once reconnecting to the device, and send that data to nightscout like any other reading. Taking into account that with iOS 13 the app disconnects more often, would that be possible so that at least we minimize the amount of missing data after a disconnect?

Wrong way to determine the Bubble hardware

The correct way of determining the Bubble hardware (currently 2.0, 0x2000 as advertised in the Bluetooth manufacturer data) is not the major firmware version:

but the last two bytes of the .dataInfo packet:

let hardware = value[value.count-2].description + "." + value[value.count-1].description

See: NightscoutFoundation/xDrip@60c391f

Proposal: Value type for BGValues

While working on #66 it was unclear to me how to determine whether a bg value is in mmol or mgdl. There is the user setting but for instance in the case of default values for alerts they may have existing before the user setting was available.

I started to sketch out an API that looks like the following

// add same types of values
> print(BGValue.mgdl(100) + BGValue.mgdl(100))
mgdl(200.0)

// add mmol to mgdl
> print(BGValue.mmoll(5) + BGValue.mgdl(100)) 
mmoll(10.55)

// multiple mmoll by mgdl
> print(BGValue.mmoll(5) * BGValue.mgdl(5)) 
mmoll(1.3874999999999997)

// divide mmoll by mgdl
print(BGValue.mmoll(5) / BGValue.mgdl(150)) 
> mmoll(0.6006006006006006)

// compare mmoll to mgdl
> print(BGValue.mmoll(5) < BGValue.mgdl(150)) 
true

// arbitrary expression with values converted to mmoll
> print(BGValue.map2AsMmoll(BGValue.mgdl(100), BGValue.mmoll(5)) { $0 + $1 }) 
mmoll(10.55)

There's an initial implementation and working demo at https://repl.it/@opsb/Bg-value-types.

The main value here is that the compiler can enforce that blood glucose values are always handled correctly. A developer never need to think about whether they're dealing with mgdl or mmol, the compiler will always ensure that they're handled correctly.

It's worth considering performance as there's obviously at least some overhead to using boxed types. It may be that in tight loops the performance overhead would be an issue but in those scenarios you could unbox and work with the raw values.

I'd be interested to hear what you think and if you happy with the proposal I'd be happy to put together a PR swapping them in for the raw double values (seems like the compiler would do most of the work).

XDrip is crashing after loosing the connection with Blucon

Hi, i send a crash report from TestFlight after a crashed.
The root cause it's seems there was a bad connection with Blucon because the battery is low.
Now 3%.. i need to change of course. But it will be better if the app can detect and advice instead of crashing.

Setup the color and background on M5Stack depending on reading value

can you put three field for low range, ok range, hi range to setup the color and background?

For example :

LOW --> RANGE <xx (example <85) COLOR TEXT xxxx (example RED) BACKGROUND xxxx (example BLACK)

OK --> RANGE HIDDEN (LOW<value db<HI ) COLOR TEXT xxxx (example GREEN) BACKGROUND xxxx (example BLACK)

HI --> RANGE >xx (example >180) COLOR TEXT xxxx (example YELLOW) BACKGROUND xxxx (example BLACK)

input field for minutes (alarms)

To change the time for example (missed signal 15 minutes), the field itself says "minutes", but if you enter 15, it will pick some high decimal number instead.

so 20 minutes or whatever it was default you need to enter 1.7 in the field. A bit confusing and also, keyboard input (OSD) to enter this does not have "." (dot) in it.

NFC

Hi Johan. I can't see an option to scan a libre with NFC. Any plans to add this?
Thanks for your efforts!

Absolute paths to `/Users/johandegraeve/OneDrive/`

The compilation is failing with the error messages

error: no such file or directory: '/Users/johandegraeve/OneDrive/Xcode Projects/xdrip/xdrip/Core Data/classes/M5StackName+CoreDataClass.swift'
error: no such file or directory: '/Users/johandegraeve/OneDrive/Xcode Projects/xdrip/xdrip/Core Data/classes/M5StackName+CoreDataProperties.swift

since the paths are absolute in:

F804870E2337B3D300EBDDB7 /* M5StackName+CoreDataProperties.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = "M5StackName+CoreDataProperties.swift"; path = "/Users/johandegraeve/OneDrive/Xcode Projects/xdrip/xdrip/Core Data/classes/M5StackName+CoreDataProperties.swift"; sourceTree = "<absolute>"; };
F804870F2337B3D400EBDDB7 /* M5StackName+CoreDataClass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = "M5StackName+CoreDataClass.swift"; path = "/Users/johandegraeve/OneDrive/Xcode Projects/xdrip/xdrip/Core Data/classes/M5StackName+CoreDataClass.swift"; sourceTree = "<absolute>"; };

miaomiao sensor status

When paired with a miaomiao transmitter, Sensor Start appears as 'not started' - despite session already started via the offical app. No option to start a session appears available.

Not getting any readings overnight

Can't get it to collect overnight despite having the app loaded at the front, all other apps closed & setting DND to off. Xdrip & testflight is always allowed. Any ideas?

Fast rise/drop alerts

Using the Spike app I found that the most useful alerts were fast rise/drop. Is there interest in adding these to xdripswift? If so I'd like to pick it up. I'm new to swift/ios development but I've been a developer for 15 years and this seems like a good little feature to start with.

Sensor automatically started even if canDetectNewSensor returns false

Example for dropet, canDetectNewSensor = false,

but in rootviewcontroller, processNewGlucoseData will start a new sensor if sensorTimeInMinutes is available, which is the case for Droplet.

shouldn't be, code changes needed

and for Droplet : should either have canDetectNewSensor = true, or don't give sensorTimeInMinutes

Misleading comment about bubbleHeaderLength

The following comment is misleading:

    // length of header added by Bubble in front of data dat is received from Libre sensor
    private let bubbleHeaderLength = 8

(

// length of header added by Bubble in front of data dat is received from Libre sensor
private let bubbleHeaderLength = 8
)

Bubble adds a footer of 8 bytes at the end of the FRAM when sending the data packet.

xdripswift itself is accumulating the patchUid and the first 344 FRAM bytes from the data packet reaching the same length of 352 bytes.

Badge notification

Hi, the app is working great. As a feature request is I possible to deactivate the always on notification and just show the current blood sugar as a badge notification ?
Thanks for the app !

Volume high for first 0.5 sec of audio alert

Hi,

So I have a defined alert for missed readings.
Not sure if it matters but i use "modern alert" sound for this.

When alert triggers (no matter how low or high the actual volume on the phone is), initial 0.5 sec of the audio is very high, after that volume goes down for the rest of audio clip according to volume phone is set to.

Any idea what might be causing this?

Change the name of this app to something less confusing

As this app is not related to the original xDrip and also not related to xDrip+, which has replaced the original xDrip, it is a very bad idea to call this completely different iOS app also xDrip. Even though it takes ideas from the Android xDrip+ app, it is a completely different development, isn't it?
It was a bad idea to call the previous app iosXDRIPreader, which also was abbreviated as xdrip by many people. And it is a very bad idea to call this app again xdrip.
Choose a different name to make clear, that this is a different app.

Snoozing and Alert sounds

Hi,

I know pressing "Snooze" in the app says it hasn't been completely implemented, but I thought I would list few things as wish list.

  1. Be able to snooze from within app (preemptively). For example if I expect high values next 2 hours, it would be nice to be able to snooze them before they happen

  2. List of currently enabled snooze(s) and ability to cancel/clear them

  3. When you snooze high or low for lets say 1 hour, if value temporary fluctuates below the threshold and again goes high, snooze should still be active (that't not the case)
    This is frequently seen with Libre if you lay on the arm etc
    Example,

BS is 10.5
High Alert kicks in
You snooze it for X minutes/hours
You happen to put pressure on Libre and value on next update could jump down to lets say 6.5
When pressure is released, value will jump again to 10.x which will sound the High Alert again (it should respect previous snoooze)

  1. Snooze with condition. If value is high or low and you choose to snooze for certain time period, it would be nice to add condition to it with another value.

For example:
BS 10.5
High Alert kicks in
You choose to snooze for x hour
But you can also add condition that if its goes higher than 14 mmol, it should sound alert despite high alerts being snoozed.
(Same with low alerts)

  1. Add more sounds for alerts

Let me know if this is already planned and this post is redundant or if you would like me to split it into several topics (didn't want to spam with multiple posts just yet :) )

@JohanDegraeve Many thanks for your work and effort!

Sensor Start

Hi,Johan

I paired Bubble with xdrip,but the sensor status is :not started ,and there is no way to start the sesnor in xdrip,in fact the sensor was started 3 days ago by Librelink App.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.