diff --git a/app/package.json b/app/package.json index 686f540f3..cb1089b9d 100644 --- a/app/package.json +++ b/app/package.json @@ -1,7 +1,7 @@ { "name": "tidepool-uploader", "productName": "tidepool-uploader", - "version": "2.59.1-false-av.1", + "version": "2.59.1-ultra-plus-flex.3", "description": "Tidepool Project Universal Uploader", "main": "./main.prod.js", "author": { diff --git a/app/reducers/devices.js b/app/reducers/devices.js index 4e92e7caf..7b4f13b52 100644 --- a/app/reducers/devices.js +++ b/app/reducers/devices.js @@ -225,9 +225,17 @@ const devices = { enabled: {linux: false, mac: false, win: true}, powerOnlyWarning: true, }, + onetouchultraplus: { + instructions: i18n.t('Plug in meter with micro-USB'), + name: 'OneTouch Ultra Plus Flex', + key: 'onetouchultraplus', + source: {type: 'device', driverId: 'OneTouchUltraPlus'}, + enabled: {linux: true, mac: true, win: true}, + powerOnlyWarning: true, + }, onetouchverioble: { instructions: i18n.t('Turn meter on and make sure Bluetooth is switched on'), - name: 'OneTouch Verio Flex, Verio Reflect & Select Plus Flex (with Bluetooth)', + name: 'OneTouch Verio Flex, Verio Reflect, Select Plus Flex and Ultra Plus Flex (with Bluetooth)', key: 'onetouchverioble', source: {type: 'device', driverId: 'OneTouchVerioBLE'}, enabled: {mac: true, win: true, linux: true} diff --git a/lib/core/device.js b/lib/core/device.js index b7d74e975..1c44bd59f 100644 --- a/lib/core/device.js +++ b/lib/core/device.js @@ -85,6 +85,7 @@ device.deviceDrivers = { OneTouchVerioIQ: oneTouchVerioIQ, OneTouchVerioBLE: oneTouchVerioBLE, OneTouchSelect: oneTouchVerio, + OneTouchUltraPlus: oneTouchVerio, AbbottFreeStyleLite: abbottFreeStyleLite, AbbottFreeStyleLibre: abbottFreeStyleLibre, AbbottFreeStyleNeo: abbottFreeStyleNeo, @@ -120,6 +121,7 @@ device.deviceComms = { OneTouchVerioIQ: serialDevice, OneTouchVerioBLE: bleDevice, OneTouchSelect: usbDevice, + OneTouchUltraPlus: usbDevice, AbbottFreeStyleLite: serialDevice, AbbottFreeStyleLibre: hidDevice, AbbottFreeStyleNeo: hidDevice, @@ -338,7 +340,8 @@ device.detect = (driverId, options, cb) => { if (webUSBDevice == null && ( driverId === 'InsuletOmniPod' || driverId === 'OneTouchVerio' || - driverId === 'OneTouchSelect' + driverId === 'OneTouchSelect' || + driverId === 'OneTouchUltraPlus' )) { // could also be block mode device device.deviceInfoCache[driverId] = _.cloneDeep(devdata); diff --git a/lib/core/driverManifests.js b/lib/core/driverManifests.js index 4debe98c6..ac9dab9bf 100644 --- a/lib/core/driverManifests.js +++ b/lib/core/driverManifests.js @@ -115,6 +115,12 @@ const driverManifests = { { vendorId: 10086, productId: 4100 }, // Select Plus Flex ], }, + OneTouchUltraPlus: { + mode: 'usb', + usb: [ + { vendorId: 10086, productId: 14 }, // Ultra Plus Flex + ], + }, OneTouchUltraMini: { mode: 'serial', usb: [ diff --git a/lib/drivers/onetouch/oneTouchVerio.js b/lib/drivers/onetouch/oneTouchVerio.js index d6243c9bd..cbebdb836 100644 --- a/lib/drivers/onetouch/oneTouchVerio.js +++ b/lib/drivers/onetouch/oneTouchVerio.js @@ -103,7 +103,7 @@ class USBScsiDevice { return callback(new Error(`Could not find device "${deviceInfo.driverId}".`)); } - this.device = findByIds(deviceInfo.usbDevice.vendorId, deviceInfo.usbDevice.productId); + this.device = findByIds(deviceInfo?.usbDevice?.vendorId, deviceInfo?.usbDevice?.productId); if (!this.device) { return callback(new Error(`Failed to open connection to ${deviceInfo.driverId}`)); } diff --git a/package.json b/package.json index abdec2f0e..5c3c99aea 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "tidepool-uploader", - "version": "2.59.1-false-av.1", + "version": "2.59.1-ultra-plus-flex.3", "description": "Tidepool Project Universal Uploader", "private": true, "main": "main.prod.js",