Skip to content

Commit

Permalink
Merge pull request #816 from openaps/dev
Browse files Browse the repository at this point in the history
0.6.1 release dev to master
  • Loading branch information
danamlewis authored May 15, 2018
2 parents a65191a + 28f09a1 commit 749377a
Show file tree
Hide file tree
Showing 67 changed files with 21,829 additions and 785 deletions.
2 changes: 1 addition & 1 deletion bin/nightscout.sh
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,7 @@ ns)
| openaps use $ZONE \
rezone --astimezone --date dateString - \
| openaps use $ZONE \
lsgaps --minutes 5 --after now --date dateString -
lsgaps --minutes 6 --after now --date dateString -


;;
Expand Down
2 changes: 1 addition & 1 deletion bin/ns-get.sh
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ if [[ "${API_SECRET}" =~ "token=" ]]; then
fi
else
REPORT_ENDPOINT=$NIGHTSCOUT_HOST/api/v1/${REPORT}'?'${QUERY}
CURL_AUTH='-H "api-secret: ${API_SECRET}"'
#CURL_AUTH='-H "api-secret: ${API_SECRET}"'
fi

case $1 in
Expand Down
113 changes: 56 additions & 57 deletions bin/ns-status.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,9 @@

var os = require("os");

var requireUtils = require('../lib/require-utils')
, safeRequire = requireUtils.safeRequire
, requireWithTimestamp = requireUtils.requireWithTimestamp
;
var requireUtils = require('../lib/require-utils');
var safeRequire = requireUtils.safeRequire;
var requireWithTimestamp = requireUtils.requireWithTimestamp;

/*
Prepare Status info to for upload to Nightscout
Expand All @@ -25,30 +24,26 @@ var requireUtils = require('../lib/require-utils')
*/

function mmtuneStatus (status) {
if (mmtune_input) {
var mmtune = requireWithTimestamp(cwd + '/' + mmtune_input);
if (mmtune) {
if (mmtune.scanDetails && mmtune.scanDetails.length > 0) {
mmtune.scanDetails = mmtune.scanDetails.filter(function (d) {
return d[2] > -99;
});
}
status.mmtune = mmtune;
var mmtune = requireWithTimestamp(cwd + mmtune_input);
if (mmtune) {
if (mmtune.scanDetails && mmtune.scanDetails.length) {
mmtune.scanDetails = mmtune.scanDetails.filter(function (d) {
return d[2] > -99;
});
}
status.mmtune = mmtune;
}
}

function uploaderStatus (status) {
if (uploader_input ) {
var uploader = require(cwd + '/' + uploader_input);
if (uploader) {
if (typeof uploader === 'number') {
status.uploader = {
battery: uploader
};
} else {
status.uploader = uploader;
}
var uploader = require(cwd + uploader_input);
if (uploader) {
if (typeof uploader === 'number') {
status.uploader = {
battery: uploader
};
} else {
status.uploader = uploader;
}
}
}
Expand All @@ -66,29 +61,28 @@ if (!module.parent) {
.help('help');

var params = argv.argv;


var clock_input = params._.slice(0, 1).pop();
var iob_input = params._.slice(1, 2).pop();
var suggested_input = params._.slice(2, 3).pop();
var enacted_input = params._.slice(3, 4).pop();
var battery_input = params._.slice(4, 5).pop();
var reservoir_input = params._.slice(5, 6).pop();
var status_input = params._.slice(6, 7).pop();
var mmtune_input = params._.slice(7, 8).pop();
var inputs = params._;
var clock_input = inputs[0];
var iob_input = inputs[1];
var suggested_input = inputs[2];
var enacted_input = inputs[3];
var battery_input = inputs[4];
var reservoir_input = inputs[5];
var status_input = inputs[6];
var mmtune_input = inputs[7];
var uploader_input = params.uploader;

if (params._.length > 8) {
uploader_input = params.uploader ? params._.slice(7, 8).pop() : false;
mmtune_input = params._.slice(8, 9).pop();
if (inputs.length > 8) {
uploader_input = params.uploader ? inputs[7] : false;
mmtune_input = inputs[8];
}

if (!clock_input || !iob_input || !suggested_input || !enacted_input || !battery_input || !reservoir_input || !status_input) {
console.log('usage: ', process.argv.slice(0, 2), '<clock.json> <iob.json> <suggested.json> <enacted.json> <battery.json> <reservoir.json> <status.json> [--uploader uploader.json] [mmtune.json]');
process.exit(1);
}

var cwd = process.cwd();
var cwd = process.cwd() + '/';

var hostname = 'unknown';
try {
Expand All @@ -98,12 +92,12 @@ if (!module.parent) {
}

try {
var iob = null
, iobArray = requireWithTimestamp(cwd + '/' + iob_input)
, suggested = requireWithTimestamp(cwd + '/' + suggested_input)
, enacted = requireWithTimestamp(cwd + '/' + enacted_input);
var iob = null;
var iobArray = requireWithTimestamp(cwd + iob_input);
var suggested = requireWithTimestamp(cwd + suggested_input);
var enacted = requireWithTimestamp(cwd + enacted_input);

if (iobArray && iobArray.length && iobArray.length > 0) {
if (iobArray && iobArray.length) {
iob = iobArray[0];
iob.timestamp = iob.time;
delete iob.time;
Expand All @@ -119,25 +113,30 @@ if (!module.parent) {
}

var status = {
device: 'openaps://' + os.hostname()
, openaps: {
iob: iob
, suggested: suggested
, enacted: enacted
}
, pump: {
clock: safeRequire(cwd + '/' + clock_input)
, battery: safeRequire(cwd + '/' + battery_input)
, reservoir: safeRequire(cwd + '/' + reservoir_input)
, status: requireWithTimestamp(cwd + '/' + status_input)
device: 'openaps://' + os.hostname(),
openaps: {
iob: iob,
suggested: suggested,
enacted: enacted
},
pump: {
clock: safeRequire(cwd + clock_input),
battery: safeRequire(cwd + battery_input),
reservoir: safeRequire(cwd + reservoir_input),
status: requireWithTimestamp(cwd + status_input)
}
};

mmtuneStatus(status);
uploaderStatus(status);
if (mmtune_input) {
mmtuneStatus(status);
}

if (uploader_input) {
uploaderStatus(status);
}

console.log(JSON.stringify(status));
} catch (e) {
return console.error("Could not parse input data: ", e);
}

console.log(JSON.stringify(status));
}
2 changes: 1 addition & 1 deletion bin/openaps-bootstrap.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ echo -e "\n/etc/network/interfaces:\n"
cat interfaces
cd /etc/wpa_supplicant/
cp wpa_supplicant.conf wpa_supplicant.conf.$(date +%s).bak
echo -e "ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev\nupdate_config=1\nnetwork={\n ssid=\"$SSID\"\n psk=\"$PSK\"\n}" > wpa_supplicant.conf
echo -e "ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev\nnetwork={\n ssid=\"$SSID\"\n psk=\"$PSK\"\n}" > wpa_supplicant.conf
echo -e "\n/etc/wpa_supplicant/wpa_supplicant.conf:\n"
cat wpa_supplicant.conf
echo -e "\nAttempting to bring up wlan0:\n"
Expand Down
3 changes: 1 addition & 2 deletions bin/openaps-install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,7 @@ fi
sed -i "s/daily/hourly/g" /etc/logrotate.conf
sed -i "s/#compress/compress/g" /etc/logrotate.conf

# TODO: change to dev and then master after PR and release
curl -s https://raw.githubusercontent.com/openaps/oref0/dev/bin/openaps-packages.sh | bash -
curl -s https://raw.githubusercontent.com/openaps/oref0/master/bin/openaps-packages.sh | bash -
mkdir -p ~/src; cd ~/src && git clone git://github.com/openaps/oref0.git || (cd oref0 && git checkout master && git pull)
echo "Press Enter to run oref0-setup with the current release (master branch) of oref0,"
read -p "or press ctrl-c to cancel. " -r
Expand Down
2 changes: 1 addition & 1 deletion bin/oref0-autosens-loop.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ main() {
fi

autosens 2>&1
touch /tmp/autons-completed
touch /tmp/autosens-completed
echo Completed oref0-autons-loop at $(date)
}

Expand Down
9 changes: 5 additions & 4 deletions bin/oref0-autotune-core.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,19 @@
*/

var autotune = require('oref0/lib/autotune');
var stringify = require('json-stable-stringify');
function usage ( ) {
console.error('usage: ', process.argv.slice(0, 2), '<autotune/glucose.json> <autotune/autotune.json> <settings/profile.json>');
}

if (!module.parent) {
var prepped_glucose_input = process.argv.slice(2, 3).pop();
var prepped_glucose_input = process.argv[2];
if ([null, '--help', '-h', 'help'].indexOf(prepped_glucose_input) > 0) {
usage( );
process.exit(0)
}
var previous_autotune_input = process.argv.slice(3, 4).pop();
var pumpprofile_input = process.argv.slice(4, 5).pop();
var previous_autotune_input = process.argv[3];
var pumpprofile_input = process.argv[4];

if (!prepped_glucose_input || !previous_autotune_input || !pumpprofile_input ) {
usage( );
Expand All @@ -57,6 +58,6 @@ if (!module.parent) {
};

var autotune_output = autotune(inputs);
console.log(JSON.stringify(autotune_output));
console.log(stringify(autotune_output, { space: ' '}));
}

3 changes: 2 additions & 1 deletion bin/oref0-autotune-dayofweek.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

# This script allows you to run autotune separately for each day of the week

myopenaps=$1
[ -z "$OPENAPS_DIR" ] && OPENAPS_DIR="$1"
myopenaps="$OPENAPS_DIR"
nsurl=$2
DOW=$(date +%u)

Expand Down
39 changes: 22 additions & 17 deletions bin/oref0-autotune-prep.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,27 +22,39 @@

var generate = require('oref0/lib/autotune-prep');
function usage ( ) {
console.error('usage: ', process.argv.slice(0, 2), '<pumphistory.json> <profile.json> <glucose.json> [pumpprofile.json] [carbhistory.json] [autotune/glucose.json]');
console.error('usage: ', process.argv.slice(0, 2), '<pumphistory.json> <profile.json> <glucose.json> [pumpprofile.json] [carbhistory.json] [--categorize_uam_as_basal]');
}

if (!module.parent) {
var pumphistory_input = process.argv.slice(2, 3).pop();
var pumphistory_input = process.argv[2];
if ([null, '--help', '-h', 'help'].indexOf(pumphistory_input) > 0) {
usage( );
process.exit(0)
process.exit(0);
}
var profile_input = process.argv.slice(3, 4).pop();
var glucose_input = process.argv.slice(4, 5).pop();
var pumpprofile_input = process.argv.slice(5, 6).pop()
var carb_input = process.argv.slice(6, 7).pop()
var prepped_glucose_input = process.argv.slice(7, 8).pop()
var profile_input = process.argv[3];
var glucose_input = process.argv[4];
var pumpprofile_input = process.argv[5];
var carb_input = process.argv[6];
var categorize_uam_as_basal_arg = process.argv[7];

var categorize_uam_as_basal = false;

if ( !pumphistory_input || !profile_input || !glucose_input ) {
usage( );
console.log('{ "error": "Insufficient arguments" }');
process.exit(1);
}

if (carb_input === '--categorize_uam_as_basal') {
categorize_uam_as_basal = true;
carb_input = undefined;
} else if (categorize_uam_as_basal_arg === '--categorize_uam_as_basal') {
categorize_uam_as_basal = true;
} else if (typeof categorize_uam_as_basal_arg !== 'undefined') {
usage( );
process.exit(1);
}

var fs = require('fs');
try {
var pumphistory_data = JSON.parse(fs.readFileSync(pumphistory_input, 'utf8'));
Expand Down Expand Up @@ -85,21 +97,14 @@ if (!module.parent) {
console.error("Warning: could not parse "+carb_input);
}
}
var prepped_glucose_data = { };
if (typeof prepped_glucose_input != 'undefined') {
try {
carb_data = JSON.parse(fs.readFileSync(prepped_glucose_input, 'utf8'));
} catch (e) {
console.error("Warning: could not parse "+prepped_glucose_input);
}
}

var inputs = {
history: pumphistory_data
, profile: profile_data
, pumpprofile: pumpprofile_data
, carbs: carb_data
, glucose: glucose_data
, prepped_glucose: prepped_glucose_data
, categorize_uam_as_basal: categorize_uam_as_basal
};

var prepped_glucose = generate(inputs);
Expand Down
18 changes: 14 additions & 4 deletions bin/oref0-autotune.sh
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ START_DAYS_AGO=1 # Default to yesterday if not otherwise specified
END_DAYS_AGO=1 # Default to yesterday if not otherwise specified
EXPORT_EXCEL="" # Default is to not export to Microsoft Excel
TERMINAL_LOGGING=true
CATEGORIZE_UAM_AS_BASAL=false
RECOMMENDS_REPORT=true
UNKNOWN_OPTION=""

Expand Down Expand Up @@ -111,6 +112,10 @@ case $i in
TERMINAL_LOGGING="${i#*=}"
shift
;;
-c=*|--categorize-uam-as-basal=*)
CATEGORIZE_UAM_AS_BASAL="${i#*=}"
shift
;;
*)
# unknown option
echo "Option ${i#*=} unknown"
Expand All @@ -123,7 +128,7 @@ done
NIGHTSCOUT_HOST=$(echo $NIGHTSCOUT_HOST | sed 's/\/$//g')

if [[ -z "$DIR" || -z "$NIGHTSCOUT_HOST" ]]; then
echo "Usage: oref0-autotune <--dir=myopenaps_directory> <--ns-host=https://mynightscout.azurewebsites.net> [--start-days-ago=number_of_days] [--end-days-ago=number_of_days] [--start-date=YYYY-MM-DD] [--end-date=YYYY-MM-DD] [--xlsx=autotune.xlsx] [--log=(true)|false]"
echo "Usage: oref0-autotune <--dir=myopenaps_directory> <--ns-host=https://mynightscout.azurewebsites.net> [--start-days-ago=number_of_days] [--end-days-ago=number_of_days] [--start-date=YYYY-MM-DD] [--end-date=YYYY-MM-DD] [--xlsx=autotune.xlsx] [--log=(true)|false] [--categorize-uam-as-basal=true|(false)]"
exit 1
fi
if [[ -z "$START_DATE" ]]; then
Expand All @@ -137,7 +142,7 @@ if [[ -z "$END_DATE" ]]; then
fi

if [[ -z "$UNKNOWN_OPTION" ]] ; then # everything is ok
echo "Running oref0-autotune --dir=$DIR --ns-host=$NIGHTSCOUT_HOST --start-date=$START_DATE --end-date=$END_DATE"
echo "Running oref0-autotune --dir=$DIR --ns-host=$NIGHTSCOUT_HOST --start-date=$START_DATE --end-date=$END_DATE --categorize-uam-as-basal=$CATEGORIZE_UAM_AS_BASAL"
else
echo "Unknown options. Exiting"
exit 1
Expand Down Expand Up @@ -211,8 +216,13 @@ do
cp profile.json profile.$i.json
# Autotune Prep (required args, <pumphistory.json> <profile.json> <glucose.json>), output prepped glucose
# data or <autotune/glucose.json> below
echo "oref0-autotune-prep ns-treatments.$i.json profile.json ns-entries.$i.json profile.pump.json > autotune.$i.json"
oref0-autotune-prep ns-treatments.$i.json profile.json ns-entries.$i.json profile.pump.json > autotune.$i.json \
if [[ $CATEGORIZE_UAM_AS_BASAL = "true" ]]; then
CATEGORIZE_UAM_AS_BASAL_OPT="--categorize_uam_as_basal"
else
CATEGORIZE_UAM_AS_BASAL_OPT=
fi
echo "oref0-autotune-prep ns-treatments.$i.json profile.json ns-entries.$i.json profile.pump.json $CATEGORIZE_UAM_AS_BASAL_OPT > autotune.$i.json"
oref0-autotune-prep ns-treatments.$i.json profile.json ns-entries.$i.json profile.pump.json $CATEGORIZE_UAM_AS_BASAL_OPT > autotune.$i.json \
|| die "Could not run oref0-autotune-prep ns-treatments.$i.json profile.json ns-entries.$i.json"

# Autotune (required args, <autotune/glucose.json> <autotune/autotune.json> <settings/profile.json>),
Expand Down
Loading

0 comments on commit 749377a

Please sign in to comment.