Omnipod Bluetooth PumpManager For Loop

Related tags

Bluetooth OmniBLE
Overview

OmniBLE

Omnipod Bluetooth PumpManager For Loop

Status

This module is at the very beginning stages of development and does not even compile yet. DO NOT ATTEMPT to use it unless you are a developer trying to help out build it.

WARNING: DO NOT ATTEMPT to use this on a real person.

It has not been tested yet in any way.

Comments
  • Add Unit Tests

    Add Unit Tests

    This will start building out our unit test suite for OmniBLE. I have about 50% of the Kotlin tests rewritten for Swift. To run the unit tests, you need to:

    1. Open Loop Workspace
    2. Build the Loop Workspace target for the iPhone simulator 1x to build the required simulator dependencies.
    3. Run OmniBLE tests for iPhone Simulator from Xcode Workspace.

    tests

    opened by gestrich 5
  • Connection management changes, and changes to work with Loop Dev

    Connection management changes, and changes to work with Loop Dev

    This includes a fairly large update to how connections are managed in OmniBLE.

    • Multiple ready-to-pair pods are detected during pairing, so the user does not inadvertently pair to the wrong pod.
    • BLE connection identifier is tracked to ensure reconnection to the correct peripheral
    • During session restoration, iOS may have maintained connection to the pod, so that from the pod's point of view, nothing has changed, and creating a session is not needed; changes are included to handle this situation, and not attempt to recreate a session.

    It also includes changes to work with the latest Loop dev code, and, in fact, will only compile with dev LoopKit. So I recommend this patch does not land into master until a suitable maintenance branch for FreeAPS is found.

    If you create a dev branch, I can re-submit this PR to point there.

    opened by ps2 1
  • Handle Crash From Block Running on Wrong Thread

    Handle Crash From Block Running on Wrong Thread

    Calls to configureAndRun need to currently be done on the queue since that hits areas of code protected by queue assertions. This seems like a simple fix by just removing the call to configureAndRun, since the call to perform() already calls configureAndRun on the queue.

    Screen Shot 2021-12-03 at 6 12 58 AM

    opened by gestrich 1
  • Incorporate sraka1 Improvements

    Incorporate sraka1 Improvements

    The improvements from sraka1 have been merged and tested in the marionbarker repo (rk-dev-01 branch). I suggest these be merged (or alternately, this could be pulled directly from sraka1).

    opened by marionbarker 0
  •  Match Kotlin's implementation for ID increment

    Match Kotlin's implementation for ID increment

    I've been working at aligning the messaging that is sent from AndroidAPS vs OmniBLE. One difference is how the ID is incremented. I think we can revert this once we successfully figured out Pod Pariing. But in the meantime, this ensures we are sending the same payloads as AndroidAPS.

    opened by bill-foreflight 0
  • New OmnipodCommon directory to hold Omnipod common files for Eros & Dash

    New OmnipodCommon directory to hold Omnipod common files for Eros & Dash

    • MessageTransport/CRC16.swift -> OmnipodCommon/CRC16.swift
    • MessageTransport/Message.swift -> OmnipodCommon/Message.swift
    • MessageTransport/MessageBlocks/* -> OmnipodCommon/MessageBlocks/*
    • MessageTransport/MessageTransport.swift -> PumpManager/MessageTransport.swift
    • MessageTransport/StringLengthPrefixEncoding.swift -> Bluetooth/StringLengthPrefixEncoding.swift
    • Model/AlertSlot.swift -> OmnipodCommon/AlertSlot.swift
    • Model/BasalDeliveryTable.swift -> OmnipodCommon/BasalDeliveryTable.swift
    • Model/BasalSchedule.swift -> OmnipodCommon/BasalSchedule.swift
    • Model/BeepType.swift -> OmnipodCommon/BeepType.swift
    • Model/FaultEventCode.swift -> OmnipodCommon/FaultEventCode.swift
    • Model/Pod.swift -> OmnipodCommon/Pod.swift
    • Model/PodProgressStatus.swift -> PumpManager/PodProgressStatus.swift
    • Model/UnfinalizedDose.swift -> OmnipodCommon/UnfinalizedDose.swift
    • PumpManager/PodCommsSession+LoopKit.swift -> OmnipodCommon/PodCommsSession+LoopKit.swift
    • PumpManager/PodDoseProgressEstimator.swift -> OmnipodCommon/PodDoseProgressEstimator.swift
    • PumpManager/PodInsulinMeasurements.swift -> OmnipodCommon/PodInsulinMeasurements.swift
    • Delete now empty MessageTransport & Model directories
    • Alphabetize directory contents
    opened by itsmojo 0
  • Use timeout with thread lock

    Use timeout with thread lock

    When an error occurs communicating with the pump, the thread seemed blocked from returning. This should repsect the timeouts that are passed by the client.

    opened by gestrich 0
  • Incorporate Bluetooth Improvements

    Incorporate Bluetooth Improvements

    Incorporate the Bluetooth improvements found in ps2/OmniBLE dev-protocols branch, while maintaining the older Loop master and FreeAPS protocols.

    The changes to files are post commit 6e2dddd.

    opened by marionbarker 0
Owner
Randall Knutson
Randall Knutson
iOS Bluetooth LE framework

Features A futures interface replacing protocol implementations. Timeout for Peripheral connection, Service scan, Service + Characteristic discovery a

Troy Stribling 696 Dec 25, 2022
Bluejay is a simple Swift framework for building reliable Bluetooth LE apps.

Bluejay is a simple Swift framework for building reliable Bluetooth LE apps. Bluejay's primary goals are: Simplify talking to a single Bluetooth LE pe

Steamclock Software 1k Dec 13, 2022
RxBluetoothKit is a Bluetooth library that makes interaction with BLE devices much more pleasant.

RxBluetoothKit is a Bluetooth library that makes interaction with BLE devices much more pleasant. It's backed by RxSwift and CoreBluetooth and it prov

Polidea 1.3k Jan 6, 2023
Build your own 'AirTags' 🏷 today! Framework for tracking personal Bluetooth devices via Apple's massive Find My network.

OpenHaystack is a framework for tracking personal Bluetooth devices via Apple's massive Find My network.

Secure Mobile Networking Lab 5.8k Jan 9, 2023
Diabetes: test the FreeStyle Libre glucose sensor as a Bluetooth Low Energy device, even directly from an Apple Watch.

Since the FreeStyle Libre 2 / 3 glucose sensors are Bluetooth Low Energy devices, I am trying to leverage their capabilities to implement something ne

Guido Soranzio 6 Jan 2, 2023
Simple, block-based, lightweight library over CoreBluetooth. Will clean up your Core Bluetooth related code.

LGBluetooth Simple, block-based, lightweight library over CoreBluetooth. Steps to start using Drag and Drop it into your project Import "LGBluetooth.h

null 170 Sep 19, 2022
Bluetooth mapping in Swift

Bluetonium is part of the E-sites iOS Suite. Bluetonium is a Swift Library that makes it easy to communicate with Bluetooth devices. Features ?? Servi

E-sites 165 Nov 20, 2022
The easiest way to use Bluetooth (BLE )in ios,even bady can use.

The easiest way to use Bluetooth (BLE )in ios,even bady can use.

刘彦玮 4.6k Dec 27, 2022
Blocks Based Bluetooth LE Connectivity framework for iOS/watchOS/tvOS/OSX. Quickly configure centrals & peripherals, perform read/write operations, and respond characteristic updates.

ExtendaBLE Introduction ExtendaBLE provides a very flexible syntax for defining centrals and peripherals with ease. Following a blocks based builder a

Anton 94 Nov 29, 2022
Bluetooth mesh messaging SDK for apps

Berkanan SDK Berkanan SDK enables Bluetooth mesh messaging between nearby apps. It's the framework used by Berkanan Messenger (Product Hunt, TechCrunc

Zsombor Szabo 189 Jan 1, 2023
Fluetooth - Flutter library for sending bytes to Bluetooth devices on Android/iOS

A Flutter library for sending bytes to Bluetooth devices. Available on Android a

Iandi Santulus 1 Jan 2, 2022
MiniVendingMachine - SwiftUI demo Apple Watch app to open a mini vending machine via bluetooth

Mini Vending Machine Use Apple Watch to open vending machine cells. Note: This a

CGH 3 Apr 8, 2022
The Bluetooth LE library for iOS and Mac. 100% Swift.

iOS-BLE-Library An in-development Bluetooth Low Energy Library by Nordic Semiconductor to interact with the , which is not complicated, but requires w

Nordic Semiconductor 6 Dec 19, 2022
BLE (Bluetooth LE) for U🎁 Bleu is the best in the Bluetooth library.

Bleu Bleu is a Bluetooth library. Bleu is the easiest way to operate CoreBluetooth. Bleu is possible to operate by replacing Bluetooth 's Peripheral a

1amageek 484 Dec 29, 2022
Spin aims to provide a versatile Feedback Loop implementation working with the three main reactive frameworks available in the Swift community (RxSwift, ReactiveSwift and Combine)

With the introduction of Combine and SwiftUI, we will face some transition periods in our code base. Our applications will use both Combine and a thir

Spinners 119 Dec 29, 2022
Loop videos on iOS and Android (assuming only one video like on YouTube)

Mobile Video Loop By: Andrew-Chen-Wang iOS Safari Extension (soon Android) that lets you loop a video on your current website. This only works for the

Andrew Chen Wang 0 Dec 19, 2021
VideoBackgroundSwiftUI - Video Background loop made with SwiftUI

VideoBackgroundSwiftUI (Updated) Video Background loop made with SwiftUI Video N

Shreyas Bhike 19 Sep 9, 2022
Loop video using Optical Flow on iOS/Mac

Perfect-Loop-Maker Loop video using Optical Flow and Metal on iOS Description The app loops video to make an effect like it is endless, it uses optica

Sviatoslav 36 Nov 21, 2022
iOS Bluetooth LE framework

Features A futures interface replacing protocol implementations. Timeout for Peripheral connection, Service scan, Service + Characteristic discovery a

Troy Stribling 696 Dec 25, 2022
Bluejay is a simple Swift framework for building reliable Bluetooth LE apps.

Bluejay is a simple Swift framework for building reliable Bluetooth LE apps. Bluejay's primary goals are: Simplify talking to a single Bluetooth LE pe

Steamclock Software 1k Dec 13, 2022