This commit is contained in:
Milos Kozak 2019-09-23 19:37:42 +02:00
commit 5fa9d4df62
6 changed files with 151 additions and 146 deletions

View file

@ -17,31 +17,31 @@ public class Objective2 extends Objective {
@Override @Override
protected void setupTasks(List<Task> tasks) { protected void setupTasks(List<Task> tasks) {
tasks.add(new ExamTask(R.string.dia_meaningofdia, R.string.dia_whatmeansdia,"dia") tasks.add(new ExamTask(R.string.dia_label, R.string.dia_whatmeansdia,"dia")
.option(new Option(R.string.dia_minimumis3h, false)) .option(new Option(R.string.dia_minimumis3h, false))
.option(new Option(R.string.dia_minimumis5h, true)) .option(new Option(R.string.dia_minimumis5h, true))
.option(new Option(R.string.dia_meaningisequaltodiapump, false)) .option(new Option(R.string.dia_meaningisequaltodiapump, false))
.option(new Option(R.string.dia_valuemustbedetermined, true)) .option(new Option(R.string.dia_valuemustbedetermined, true))
.hint(new Hint(R.string.dia_hint1)) .hint(new Hint(R.string.dia_hint1))
); );
tasks.add(new ExamTask(R.string.hypott, R.string.hypott_whenhypott,"hypott") tasks.add(new ExamTask(R.string.hypott_label, R.string.hypott_whenhypott,"hypott")
.option(new Option(R.string.hypott_goinglow, false)) .option(new Option(R.string.hypott_goinglow, false))
.option(new Option(R.string.hypott_havinglow, false)) .option(new Option(R.string.hypott_havinglow, false))
.option(new Option(R.string.hypott_preventoversmb, true)) .option(new Option(R.string.hypott_preventoversmb, true))
.hint(new Hint(R.string.hypott_hint1)) .hint(new Hint(R.string.hypott_hint1))
); );
tasks.add(new ExamTask(R.string.offlineprofile, R.string.offlineprofile_whatprofile,"offlineprofile") tasks.add(new ExamTask(R.string.offlineprofile_label, R.string.offlineprofile_whatprofile,"offlineprofile")
.option(new Option(R.string.localprofile, true)) .option(new Option(R.string.localprofile, true))
.option(new Option(R.string.nsprofile, false)) .option(new Option(R.string.nsprofile, false))
.option(new Option(R.string.offlineprofile_nsprofile, true)) .option(new Option(R.string.offlineprofile_nsprofile, true))
.hint(new Hint(R.string.offlineprofile_hint1)) .hint(new Hint(R.string.offlineprofile_hint1))
); );
tasks.add(new ExamTask(R.string.pumpdisconnect, R.string.pumpdisconnect_whattodo,"pumpdisconnect") tasks.add(new ExamTask(R.string.pumpdisconnect_label, R.string.pumpdisconnect_label,"pumpdisconnect")
.option(new Option(R.string.pumpdisconnect_letknow, true)) .option(new Option(R.string.pumpdisconnect_letknow, true))
.option(new Option(R.string.pumpdisconnect_dontchnage, false)) .option(new Option(R.string.pumpdisconnect_dontchnage, false))
.hint(new Hint(R.string.pumpdisconnect_hint1)) .hint(new Hint(R.string.pumpdisconnect_hint1))
); );
tasks.add(new ExamTask(R.string.objectives, R.string.objectives_howtosave,"objectives") tasks.add(new ExamTask(R.string.objectives_label, R.string.objectives_howtosave,"objectives")
.option(new Option(R.string.objectives_exportsettings, true)) .option(new Option(R.string.objectives_exportsettings, true))
.option(new Option(R.string.objectives_storeelsewhere, true)) .option(new Option(R.string.objectives_storeelsewhere, true))
.option(new Option(R.string.objectives_doexportonstart, false)) .option(new Option(R.string.objectives_doexportonstart, false))
@ -50,7 +50,7 @@ public class Objective2 extends Objective {
.hint(new Hint(R.string.objectives_hint1)) .hint(new Hint(R.string.objectives_hint1))
.hint(new Hint(R.string.objectives_hint2)) .hint(new Hint(R.string.objectives_hint2))
); );
tasks.add(new ExamTask(R.string.noisycgm, R.string.noisycgm_whattodo,"noisycgm") tasks.add(new ExamTask(R.string.noisycgm_label, R.string.noisycgm_whattodo,"noisycgm")
.option(new Option(R.string.nothing, false)) .option(new Option(R.string.nothing, false))
.option(new Option(R.string.disconnectpumpfor1h, false)) .option(new Option(R.string.disconnectpumpfor1h, false))
.option(new Option(R.string.noisycgm_pause, true)) .option(new Option(R.string.noisycgm_pause, true))
@ -59,7 +59,7 @@ public class Objective2 extends Objective {
.option(new Option(R.string.noisycgm_checksmoothing, true)) .option(new Option(R.string.noisycgm_checksmoothing, true))
.hint(new Hint(R.string.noisycgm_hint1)) .hint(new Hint(R.string.noisycgm_hint1))
); );
tasks.add(new ExamTask(R.string.exercise, R.string.exercise_whattodo,"exercise") tasks.add(new ExamTask(R.string.exercise_label, R.string.exercise_whattodo,"exercise")
.option(new Option(R.string.nothing, false)) .option(new Option(R.string.nothing, false))
.option(new Option(R.string.exercise_setactivitytt, true)) .option(new Option(R.string.exercise_setactivitytt, true))
.option(new Option(R.string.exercise_switchprofilebelow100, true)) .option(new Option(R.string.exercise_switchprofilebelow100, true))
@ -69,17 +69,17 @@ public class Objective2 extends Objective {
.option(new Option(R.string.exercise_doitafterstart, false)) .option(new Option(R.string.exercise_doitafterstart, false))
.hint(new Hint(R.string.exercise_hint1)) .hint(new Hint(R.string.exercise_hint1))
); );
tasks.add(new ExamTask(R.string.suspendloop, R.string.suspendloop_doigetinsulin,"suspendloop") tasks.add(new ExamTask(R.string.suspendloop_label, R.string.suspendloop_doigetinsulin,"suspendloop")
.option(new Option(R.string.suspendloop_yes, true)) .option(new Option(R.string.suspendloop_yes, true))
.option(new Option(R.string.suspendloop_no, false)) .option(new Option(R.string.suspendloop_no, false))
); );
tasks.add(new ExamTask(R.string.basaltest, R.string.basaltest_when,"basaltest") tasks.add(new ExamTask(R.string.basaltest_label, R.string.basaltest_when,"basaltest")
.option(new Option(R.string.basaltest_beforeloop, true)) .option(new Option(R.string.basaltest_beforeloop, true))
.option(new Option(R.string.basaltest_havingregularhypo, true)) .option(new Option(R.string.basaltest_havingregularhypo, true))
.option(new Option(R.string.basaltest_havingregularhyper, true)) .option(new Option(R.string.basaltest_havingregularhyper, true))
.hint(new Hint(R.string.basaltest_hint1)) .hint(new Hint(R.string.basaltest_hint1))
); );
tasks.add(new ExamTask(R.string.prerequisites, R.string.prerequisites_what, "prerequisites") tasks.add(new ExamTask(R.string.prerequisites_label, R.string.prerequisites_what, "prerequisites")
.option(new Option(R.string.prerequisites_determinedcorrectprofile, true)) .option(new Option(R.string.prerequisites_determinedcorrectprofile, true))
.option(new Option(R.string.prerequisites_computer, true)) .option(new Option(R.string.prerequisites_computer, true))
.option(new Option(R.string.prerequisites_phone, true)) .option(new Option(R.string.prerequisites_phone, true))
@ -94,7 +94,7 @@ public class Objective2 extends Objective {
.option(new Option(R.string.prerequisites_supportedcgm, true)) .option(new Option(R.string.prerequisites_supportedcgm, true))
.hint(new Hint(R.string.prerequisites_hint1)) .hint(new Hint(R.string.prerequisites_hint1))
); );
tasks.add(new ExamTask(R.string.update_update, R.string.whatistrue,"update") tasks.add(new ExamTask(R.string.update_label, R.string.whatistrue,"update")
.option(new Option(R.string.update_git, true)) .option(new Option(R.string.update_git, true))
.option(new Option(R.string.update_asap, true)) .option(new Option(R.string.update_asap, true))
.option(new Option(R.string.update_keys, true)) .option(new Option(R.string.update_keys, true))
@ -102,7 +102,7 @@ public class Objective2 extends Objective {
.option(new Option(R.string.update_askfriend, false)) .option(new Option(R.string.update_askfriend, false))
.hint(new Hint(R.string.update_hint1)) .hint(new Hint(R.string.update_hint1))
); );
tasks.add(new ExamTask(R.string.troubleshooting, R.string.troubleshooting_wheretoask,"troubleshooting") tasks.add(new ExamTask(R.string.troubleshooting_label, R.string.troubleshooting_wheretoask,"troubleshooting")
.option(new Option(R.string.troubleshooting_fb, true)) .option(new Option(R.string.troubleshooting_fb, true))
.option(new Option(R.string.troubleshooting_wiki, true)) .option(new Option(R.string.troubleshooting_wiki, true))
.option(new Option(R.string.troubleshooting_gitter, true)) .option(new Option(R.string.troubleshooting_gitter, true))
@ -112,47 +112,47 @@ public class Objective2 extends Objective {
.hint(new Hint(R.string.troubleshooting_hint2)) .hint(new Hint(R.string.troubleshooting_hint2))
.hint(new Hint(R.string.troubleshooting_hint3)) .hint(new Hint(R.string.troubleshooting_hint3))
); );
tasks.add(new ExamTask(R.string.insulin, R.string.insulin_ultrarapid,"insulin") tasks.add(new ExamTask(R.string.insulin_label, R.string.insulin_ultrarapid,"insulin")
.option(new Option(R.string.insulin_fiasp, true)) .option(new Option(R.string.insulin_fiasp, true))
.option(new Option(R.string.insulin_novorapid, false)) .option(new Option(R.string.insulin_novorapid, false))
.option(new Option(R.string.insulin_humalog, false)) .option(new Option(R.string.insulin_humalog, false))
.option(new Option(R.string.insulin_actrapid, false)) .option(new Option(R.string.insulin_actrapid, false))
.hint(new Hint(R.string.insulin_hint1)) .hint(new Hint(R.string.insulin_hint1))
); );
tasks.add(new ExamTask(R.string.sensitivity, R.string.sensitivity_which,"sensitivity") tasks.add(new ExamTask(R.string.sensitivity_label, R.string.sensitivity_which,"sensitivity")
.option(new Option(R.string.sensitivityweightedaverage, true)) .option(new Option(R.string.sensitivityweightedaverage, true))
.option(new Option(R.string.sensitivityoref0, false)) .option(new Option(R.string.sensitivityoref0, false))
.option(new Option(R.string.sensitivityoref1, false)) .option(new Option(R.string.sensitivityoref1, false))
.option(new Option(R.string.sensitivityaaps, true)) .option(new Option(R.string.sensitivityaaps, true))
.hint(new Hint(R.string.sensitivity_hint1)) .hint(new Hint(R.string.sensitivity_hint1))
); );
tasks.add(new ExamTask(R.string.sensitivity, R.string.sensitivityuam_which,"sensitivityuam") tasks.add(new ExamTask(R.string.sensitivity_label, R.string.sensitivityuam_which,"sensitivityuam")
.option(new Option(R.string.sensitivityweightedaverage, false)) .option(new Option(R.string.sensitivityweightedaverage, false))
.option(new Option(R.string.sensitivityoref0, false)) .option(new Option(R.string.sensitivityoref0, false))
.option(new Option(R.string.sensitivityoref1, true)) .option(new Option(R.string.sensitivityoref1, true))
.option(new Option(R.string.sensitivityaaps, false)) .option(new Option(R.string.sensitivityaaps, false))
.hint(new Hint(R.string.sensitivity_hint1)) .hint(new Hint(R.string.sensitivity_hint1))
); );
tasks.add(new ExamTask(R.string.wrongcarbs, R.string.wrongcarbs_whattodo,"wrongcarbs") tasks.add(new ExamTask(R.string.wrongcarbs_label, R.string.wrongcarbs_whattodo,"wrongcarbs")
.option(new Option(R.string.wrongcarbs_addfakeinsulin, false)) .option(new Option(R.string.wrongcarbs_addfakeinsulin, false))
.option(new Option(R.string.wrongcarbs_treatmentstab, true)) .option(new Option(R.string.wrongcarbs_treatmentstab, true))
); );
tasks.add(new ExamTask(R.string.extendedcarbs, R.string.extendedcarbs_handling,"extendedcarbs") tasks.add(new ExamTask(R.string.extendedcarbs_label, R.string.extendedcarbs_handling,"extendedcarbs")
.option(new Option(R.string.extendedcarbs_useextendedcarbs, true)) .option(new Option(R.string.extendedcarbs_useextendedcarbs, true))
.option(new Option(R.string.extendedcarbs_add, false)) .option(new Option(R.string.extendedcarbs_add, false))
.option(new Option(R.string.extendedcarbs_useextendedbolus, false)) .option(new Option(R.string.extendedcarbs_useextendedbolus, false))
.hint(new Hint(R.string.extendedcarbs_hint1)) .hint(new Hint(R.string.extendedcarbs_hint1))
); );
tasks.add(new ExamTask(R.string.nsclient_monitoring, R.string.nsclient_howcanyou,"nsclient") tasks.add(new ExamTask(R.string.nsclient_label, R.string.nsclient_howcanyou,"nsclient")
.option(new Option(R.string.nightscout, true)) .option(new Option(R.string.nsclient_nightscout, true))
.option(new Option(R.string.nsclientinternal, true)) .option(new Option(R.string.nsclientinternal, true))
.option(new Option(R.string.dexcomfollow, true)) .option(new Option(R.string.nsclient_dexcomfollow, true))
.option(new Option(R.string.dexcomfollowxdrip, false)) .option(new Option(R.string.nsclient_dexcomfollowxdrip, false))
.option(new Option(R.string.xdripfollower, true)) .option(new Option(R.string.nsclient_xdripfollower, true))
.option(new Option(R.string.looponiphone, false)) .option(new Option(R.string.nsclient_looponiphone, false))
.option(new Option(R.string.spikeiphone, true)) .option(new Option(R.string.nsclient_spikeiphone, true))
); );
tasks.add(new ExamTask(R.string.nsprofileview_isf_label, R.string.whatistrue,"isf") tasks.add(new ExamTask(R.string.isf_label, R.string.whatistrue,"isf")
.option(new Option(R.string.isf_increasingvalue, true)) .option(new Option(R.string.isf_increasingvalue, true))
.option(new Option(R.string.isf_decreasingvalue, false)) .option(new Option(R.string.isf_decreasingvalue, false))
.option(new Option(R.string.isf_noeffect, false)) .option(new Option(R.string.isf_noeffect, false))
@ -161,7 +161,7 @@ public class Objective2 extends Objective {
.hint(new Hint(R.string.isf_hint1)) .hint(new Hint(R.string.isf_hint1))
.hint(new Hint(R.string.isf_hint2)) .hint(new Hint(R.string.isf_hint2))
); );
tasks.add(new ExamTask(R.string.nsprofileview_ic_label, R.string.whatistrue,"ic") tasks.add(new ExamTask(R.string.ic_label, R.string.whatistrue,"ic")
.option(new Option(R.string.ic_increasingvalue, true)) .option(new Option(R.string.ic_increasingvalue, true))
.option(new Option(R.string.ic_decreasingvalue, false)) .option(new Option(R.string.ic_decreasingvalue, false))
.option(new Option(R.string.ic_noeffect, false)) .option(new Option(R.string.ic_noeffect, false))
@ -169,7 +169,7 @@ public class Objective2 extends Objective {
.option(new Option(R.string.ic_meaning, false)) .option(new Option(R.string.ic_meaning, false))
.hint(new Hint(R.string.ic_hint1)) .hint(new Hint(R.string.ic_hint1))
); );
tasks.add(new ExamTask(R.string.profileswitch, R.string.profileswitch_pctwillchange,"profileswitch") tasks.add(new ExamTask(R.string.profileswitch_label, R.string.profileswitch_pctwillchange,"profileswitch")
.option(new Option(R.string.profileswitch_basalhigher, false)) .option(new Option(R.string.profileswitch_basalhigher, false))
.option(new Option(R.string.profileswitch_basallower, true)) .option(new Option(R.string.profileswitch_basallower, true))
.option(new Option(R.string.profileswitch_ichigher, true)) .option(new Option(R.string.profileswitch_ichigher, true))
@ -183,7 +183,7 @@ public class Objective2 extends Objective {
.hint(new Hint(R.string.profileswitch_hint1)) .hint(new Hint(R.string.profileswitch_hint1))
); );
tasks.add(new ExamTask(R.string.profileswitch, R.string.profileswitchtime_iwant,"profileswitchtime") tasks.add(new ExamTask(R.string.profileswitch_label, R.string.profileswitchtime_iwant,"profileswitchtime")
.option(new Option(R.string.profileswitchtime_1, false)) .option(new Option(R.string.profileswitchtime_1, false))
.option(new Option(R.string.profileswitchtime__1, true)) .option(new Option(R.string.profileswitchtime__1, true))
.option(new Option(R.string.profileswitchtime_60, false)) .option(new Option(R.string.profileswitchtime_60, false))

View file

@ -703,7 +703,6 @@ public class MedtronicCommunicationManager extends RileyLinkCommunicationManager
// create message // create message
PumpMessage msg; PumpMessage msg;
// if (bodyData == null)
msg = makePumpMessage(commandType); msg = makePumpMessage(commandType);
// send and wait for response // send and wait for response
@ -718,8 +717,6 @@ public class MedtronicCommunicationManager extends RileyLinkCommunicationManager
byte[] data = null; byte[] data = null;
int runs = 1;
if (check == null) { if (check == null) {
data = response.getRawContentOfFrame(); data = response.getRawContentOfFrame();
@ -728,24 +725,21 @@ public class MedtronicCommunicationManager extends RileyLinkCommunicationManager
while (checkIfWeHaveMoreData(commandType, response, data)) { while (checkIfWeHaveMoreData(commandType, response, data)) {
runs++; response = sendAndListen(ackMsg, DEFAULT_TIMEOUT + (DEFAULT_TIMEOUT * retries));
PumpMessage response2 = sendAndListen(ackMsg, DEFAULT_TIMEOUT + (DEFAULT_TIMEOUT * retries));
// LOG.debug("{} Response: {}", runs, HexDump.toHexStringDisplayable(response2.getRawContent())); // LOG.debug("{} Response: {}", runs, HexDump.toHexStringDisplayable(response2.getRawContent()));
// LOG.debug("{} Response: {}", runs, // LOG.debug("{} Response: {}", runs,
// HexDump.toHexStringDisplayable(response2.getMessageBody().getTxData())); // HexDump.toHexStringDisplayable(response2.getMessageBody().getTxData()));
String check2 = checkResponseContent(response2, commandType.commandDescription, 1); String check2 = checkResponseContent(response, commandType.commandDescription, 1);
if (check2 == null) { if (check2 == null) {
data = ByteUtil.concat(data, response2.getRawContentOfFrame()); data = ByteUtil.concat(data, response.getRawContentOfFrame());
} else { } else {
this.errorMessage = check2; this.errorMessage = check2;
if (isLogEnabled()) LOG.error("Error with response got GetProfile: " + check2);
LOG.debug("Error message: " + check2);
} }
} }
@ -784,11 +778,10 @@ public class MedtronicCommunicationManager extends RileyLinkCommunicationManager
if (commandType == MedtronicCommandType.GetBasalProfileSTD || // if (commandType == MedtronicCommandType.GetBasalProfileSTD || //
commandType == MedtronicCommandType.GetBasalProfileA || // commandType == MedtronicCommandType.GetBasalProfileA || //
commandType == MedtronicCommandType.GetBasalProfileB) { commandType == MedtronicCommandType.GetBasalProfileB) {
byte[] responseRaw = response.getRawContent(); byte[] responseRaw = response.getRawContentOfFrame();
int last = responseRaw.length - 1; int last = responseRaw.length - 1;
if (isLogEnabled())
LOG.debug("Length: " + data.length); LOG.debug("Length: " + data.length);
if (data.length >= BasalProfile.MAX_RAW_DATA_SIZE) { if (data.length >= BasalProfile.MAX_RAW_DATA_SIZE) {
@ -954,7 +947,7 @@ public class MedtronicCommunicationManager extends RileyLinkCommunicationManager
LOG.warn("Error getting response from RileyLink (error={}, retry={})", e.getMessage(), retries + 1); LOG.warn("Error getting response from RileyLink (error={}, retry={})", e.getMessage(), retries + 1);
} }
if (responseMessage!=null) if (responseMessage != null)
LOG.warn("Set Basal Profile: Invalid response: commandType={},rawData={}", responseMessage.commandType, ByteUtil.shortHexString(responseMessage.getRawContent())); LOG.warn("Set Basal Profile: Invalid response: commandType={},rawData={}", responseMessage.commandType, ByteUtil.shortHexString(responseMessage.getRawContent()));
else else
LOG.warn("Set Basal Profile: Null response."); LOG.warn("Set Basal Profile: Null response.");

View file

@ -22,6 +22,8 @@ public class PumpMessage implements RLMessage {
public MessageBody messageBody = new MessageBody(); public MessageBody messageBody = new MessageBody();
public String error = null; public String error = null;
public static final int FRAME_DATA_LENGTH = 64;
public PumpMessage(String error) { public PumpMessage(String error) {
this.error = error; this.error = error;
@ -129,9 +131,10 @@ public class PumpMessage implements RLMessage {
return arrayOut; return arrayOut;
} }
public byte[] getRawContentOfFrame() { public byte[] getRawContentOfFrame() {
byte[] raw = getRawContent(); byte[] raw = messageBody.getTxData();
return ByteUtil.substring(raw, 0, raw.length - 1); return ByteUtil.substring(raw, 1, Math.min(FRAME_DATA_LENGTH, raw.length - 1));
} }

View file

@ -105,9 +105,9 @@ public enum MedtronicDeviceType {
} }
public static boolean isLargerFormat(MedtronicDeviceType model) { // public static boolean isLargerFormat(MedtronicDeviceType model) {
return isSameDevice(model, Medtronic_523andHigher); // return isSameDevice(model, Medtronic_523andHigher);
} // }
public boolean isFamily() { public boolean isFamily() {
@ -120,13 +120,17 @@ public enum MedtronicDeviceType {
} }
public boolean isLargerFormat() { // public boolean isLargerFormat() {
// return isSameDevice(this, Medtronic_523andHigher);
// }
public boolean isMedtronic_523orHigher() {
return isSameDevice(this, Medtronic_523andHigher); return isSameDevice(this, Medtronic_523andHigher);
} }
public int getBolusStrokes() { public int getBolusStrokes() {
return (isLargerFormat(this)) ? 40 : 10; return (isMedtronic_523orHigher()) ? 40 : 10;
} }

View file

@ -1,147 +1,152 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="dia_whatmeansdia">What is true about DIA?</string> <string name="dia_whatmeansdia">What is true about DIA?</string>
<string name="dia_meaningofdia">Meaning of DIA</string> <string name="dia_label">Topic: Duration of Insulin Action</string>
<string name="dia_minimumis3h">The predetermined minimum is 3 hours.</string> <string name="dia_minimumis3h">The predetermined minimum is 3 hours.</string>
<string name="dia_minimumis5h">The predetermined minimum is 5 hours.</string> <string name="dia_minimumis5h">The predetermined minimum is 5 hours.</string>
<string name="dia_hint1">https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html?#insulin</string> <string name="dia_hint1">https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html?#insulin</string>
<string name="dia_meaningisequaltodiapump">It is equal to the DIA parameter used in your pump.</string> <string name="dia_meaningisequaltodiapump">It is equal to the DIA parameter used in your pump.</string>
<string name="dia_valuemustbedetermined">You have to determine your individual value (but not less than 5 hours).</string> <string name="dia_valuemustbedetermined">You have to determine your individual value (but not less than 5 hours).</string>
<string name="hypott">Hypo temp target</string> <string name="hypott_label">Topic: Hypo Temp-Target</string>
<string name="hypott_whenhypott">Why is it useful to set a hypo TT?</string> <string name="hypott_whenhypott">Why is it useful to set a hypo TT?</string>
<string name="hypott_goinglow">Prevent to be low.</string> <string name="hypott_goinglow">Prevent BG from going low.</string>
<string name="hypott_havinglow">To help recovering from a low BG.</string> <string name="hypott_havinglow">To help recovering from a low BG.</string>
<string name="hypott_preventoversmb">To prevent SMB after a hypo rise from fast carbs</string> <string name="hypott_preventoversmb">To prevent SMB enactment after a hypo rise from fast carbs.</string>
<string name="hypott_hint1">https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html</string> <string name="hypott_hint1">https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html</string>
<string name="offlineprofile_whatprofile">Which profile can be used and configured offline?</string> <string name="offlineprofile_whatprofile">Which profile can be used and configured offline?</string>
<string name="offlineprofile">Offline profile</string> <string name="offlineprofile_label">Topic: Offline Profile</string>
<string name="offlineprofile_nsprofile">NS Profile can be used but not configured</string> <string name="offlineprofile_nsprofile">NS Profile can be used, but not configured.</string>
<string name="offlineprofile_hint1">https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#profile</string> <string name="offlineprofile_hint1">https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#profile</string>
<string name="pumpdisconnect">Taking off pump</string> <string name="pumpdisconnect_label">Topic: Disconnecting from the Pump</string>
<string name="pumpdisconnect_whattodo">What to do when taking the pump off?</string> <string name="pumpdisconnect_whattodo">What to do when taking the pump off?</string>
<string name="pumpdisconnect_letknow">Let loop know that there is no insulin running to your body by clicking disconnect pump.</string> <string name="pumpdisconnect_letknow">Let the loop know that there is no insulin being delivered to your body by clicking disconnect pump.</string>
<string name="pumpdisconnect_dontchnage">Don\'t change anything in loop, just take it off.</string> <string name="pumpdisconnect_dontchnage">Don\'t change anything in loop, just take the pump off.</string>
<string name="pumpdisconnect_hint1">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#other-settings</string> <string name="pumpdisconnect_hint1">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#other-settings</string>
<string name="objectives_label">Topic: AndroidAPS Settings</string>
<string name="objectives_howtosave">What are best practices to backup your settings?</string> <string name="objectives_howtosave">What are best practices to backup your settings?</string>
<string name="objectives_exportsettings">Locally export them from Maintenance menu.</string> <string name="objectives_exportsettings">Locally export them from Maintenance menu.</string>
<string name="objectives_storeelsewhere">Store exported file to another place like email, Dropbox, Google drive </string> <string name="objectives_storeelsewhere">Store exported file to another place like email, Dropbox, Google drive…</string>
<string name="objectives_doexportonstart">Export them right after installation of AAPS.</string> <string name="objectives_doexportonstart">Export them right after installation of AAPS.</string>
<string name="objectives_doexportafterchange">Export them after every change of a setting.</string> <string name="objectives_doexportafterchange">Export them after every change of a setting.</string>
<string name="objectives_doexportafterfirtssettings">Export them when you finish initial settings.</string> <string name="objectives_doexportafterfirtssettings">Export them when you finish initial settings.</string>
<string name="objectives_hint1">https://androidaps.readthedocs.io/en/latest/EN/Usage/ExportImportSettings.html</string> <string name="objectives_hint1">https://androidaps.readthedocs.io/en/latest/EN/Usage/ExportImportSettings.html</string>
<string name="objectives_hint2">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-emergency-equipment-is-recommended-to-take-with-me</string> <string name="objectives_hint2">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-emergency-equipment-is-recommended-to-take-with-me</string>
<string name="noisycgm">Noisy CGM</string> <string name="noisycgm_label">Topic: Noisy CGM Readings</string>
<string name="noisycgm_whattodo">What to do when you see CGM signals are too noisy?</string> <string name="noisycgm_whattodo">What to do when you see CGM signals are too noisy?</string>
<string name="nothing">Nothing, the loop will deal with it.</string> <string name="nothing">Nothing, the loop will deal with it.</string>
<string name="noisycgm_pause">Pause closed loop mode to avoid overdosing.</string> <string name="noisycgm_pause">Pause closed-loop mode to avoid overdosing.</string>
<string name="noisycgm_replacesensor">Replace sensor</string> <string name="noisycgm_replacesensor">Replace the CGM sensor.</string>
<string name="noisycgm_turnoffphone">Turn off the phone.</string> <string name="noisycgm_turnoffphone">Turn off the phone.</string>
<string name="noisycgm_hint1">https://androidaps.readthedocs.io/en/latest/EN/Usage/Smoothing-Blood-Glucose-Data-in-xDrip.html#smoothing-blood-glucose-data</string> <string name="noisycgm_hint1">https://androidaps.readthedocs.io/en/latest/EN/Usage/Smoothing-Blood-Glucose-Data-in-xDrip.html#smoothing-blood-glucose-data</string>
<string name="noisycgm_checksmoothing">Check if your CGM app smoothes data.</string> <string name="noisycgm_checksmoothing">Check if your CGM app smoothes data.</string>
<string name="exercise">Exercise</string> <string name="exercise_label">Topic: Exercise</string>
<string name="exercise_whattodo">How is the best practice to help the system deal with exercise</string> <string name="exercise_whattodo">How can you help the system deal with exercise?</string>
<string name="exercise_setactivitytt">Set activity temp target</string> <string name="exercise_setactivitytt">Set an activity temp-target.</string>
<string name="exercise_switchprofilebelow100">Do a profile switch below 100%</string> <string name="exercise_switchprofilebelow100">Do a profile switch below 100%.</string>
<string name="exercise_switchprofileabove100">Do profile switch above 100%</string> <string name="exercise_switchprofileabove100">Do a profile switch above 100%.</string>
<string name="exercise_stoploop">Stop loop</string> <string name="exercise_stoploop">Stop the loop.</string>
<string name="exercise_doitbeforestart">Help before start exercise</string> <string name="exercise_doitbeforestart">Set activity temp-target before the start of exercise.</string>
<string name="exercise_doitafterstart">Help after start exercise</string> <string name="exercise_doitafterstart">Set activity temp-target after the start of exercise.</string>
<string name="exercise_hint1">https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target</string> <string name="exercise_hint1">https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target</string>
<string name="suspendloop_label">Topic: Suspended Loop</string>
<string name="suspendloop_doigetinsulin">Do I get insulin when loop is suspended?</string> <string name="suspendloop_doigetinsulin">Do I get insulin when loop is suspended?</string>
<string name="suspendloop_yes">Yes, common basal rate</string> <string name="suspendloop_yes">Yes, the common basal rate.</string>
<string name="suspendloop_no">No, delivering of insulin is stopped</string> <string name="suspendloop_no">No, delivery of insulin is stopped.</string>
<string name="basaltest">Basal and ISF, IC testing</string> <string name="basaltest_label">Topic: Basal, ISF, and IC Testing</string>
<string name="basaltest_when">When should I test basals, ISF and IC?</string> <string name="basaltest_when">When should I validate basals, ISF, and IC values?</string>
<string name="basaltest_beforeloop">Before I start looping</string> <string name="basaltest_beforeloop">Before I start looping.</string>
<string name="basaltest_havingregularhypo">When having regular hypos</string> <string name="basaltest_havingregularhypo">When having regular hypos BG\'s.</string>
<string name="basaltest_havingregularhyper">When having regular hypers</string> <string name="basaltest_havingregularhyper">When having regular hypers BG\'s.</string>
<string name="basaltest_hint1">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#androidaps-settings</string> <string name="basaltest_hint1">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#androidaps-settings</string>
<string name="prerequisites">Prerequisites</string> <string name="prerequisites_label">Topic: Prerequisites</string>
<string name="prerequisites_what">What do I need?</string> <string name="prerequisites_what">What do I need?</string>
<string name="prerequisites_determinedcorrectprofile">Determined correct profile (Basals, IC, ISF, DIA)</string> <string name="prerequisites_determinedcorrectprofile">Determined correct profile (Basals, IC, ISF, DIA).</string>
<string name="prerequisites_computer">Computer to create an APK</string> <string name="prerequisites_computer">A computer to create an APK.</string>
<string name="prerequisites_phone">Supported phone</string> <string name="prerequisites_phone">A supported phone.</string>
<string name="prerequisites_car">Car</string> <string name="prerequisites_car">A Car.</string>
<string name="prerequisites_nightscout">Nightscout to pass objectives</string> <string name="prerequisites_nightscout">Nightscout to pass the objectives.</string>
<string name="prerequisites_tidepoolaccount">Tidepool account</string> <string name="prerequisites_tidepoolaccount">A Tidepool account.</string>
<string name="prerequisites_googleaccount">Google account</string> <string name="prerequisites_googleaccount">A Google account.</string>
<string name="prerequisites_githubaccount">Github account</string> <string name="prerequisites_githubaccount">A Github account.</string>
<string name="prerequisites_beanandroiddeveloper">To be an Android developer</string> <string name="prerequisites_beanandroiddeveloper">Need to be an Android developer.</string>
<string name="prerequisites_own670g">Own a 670g pump</string> <string name="prerequisites_own670g">A MiniMed 670G pump.</string>
<string name="prerequisites_hint1">https://androidaps.readthedocs.io/en/latest/EN/Module/module.html</string> <string name="prerequisites_hint1">https://androidaps.readthedocs.io/en/latest/EN/Module/module.html</string>
<string name="prerequisites_smartwatch">Smartwatch</string> <string name="prerequisites_smartwatch">A Smartwatch.</string>
<string name="prerequisites_supportedcgm">Supported CGM</string> <string name="prerequisites_supportedcgm">A Supported CGM.</string>
<string name="update_update">Updating of AndroidAPS</string> <string name="update_label">Topic: Updating of AndroidAPS</string>
<string name="whatistrue">What is true?</string> <string name="whatistrue">What is true?</string>
<string name="update_git">You need to have Git installed</string> <string name="update_git">You need to have Git installed.</string>
<string name="update_asap">Update as soon as new version is released</string> <string name="update_asap">Update as soon as new version is released.</string>
<string name="update_keys">Use the same signing keys</string> <string name="update_keys">You can use the same signing keys.</string>
<string name="update_neverupdate">Never update if system is working well</string> <string name="update_neverupdate">Never update if the system is working well.</string>
<string name="update_askfriend">Ask your friend for new APK</string> <string name="update_askfriend">Ask your friend for the new APK.</string>
<string name="update_hint1">https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#update-to-a-new-version-or-branch</string> <string name="update_hint1">https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#update-to-a-new-version-or-branch</string>
<string name="troubleshooting">Troubleshooting</string> <string name="troubleshooting_label">Topic: Troubleshooting</string>
<string name="troubleshooting_wheretoask">Where to look for help?</string> <string name="troubleshooting_wheretoask">Where to look for help?</string>
<string name="troubleshooting_fb">Facebook group</string> <string name="troubleshooting_fb">Join the AndroidAPS Facebook group.</string>
<string name="troubleshooting_wiki">Wiki</string> <string name="troubleshooting_wiki">Visit the AndroidAPS Wiki.</string>
<string name="troubleshooting_gitter">Gitter</string> <string name="troubleshooting_gitter">Visit AndroidAPS Gitter Room.</string>
<string name="troubleshooting_googlesupport">Google support</string> <string name="troubleshooting_googlesupport">Visit AndroidAPS Google support</string>
<string name="troubleshooting_yourendo">Your endo</string> <string name="troubleshooting_yourendo">Speak to your endocrinologist.</string>
<string name="troubleshooting_hint1">https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#troubleshooting</string> <string name="troubleshooting_hint1">https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#troubleshooting</string>
<string name="troubleshooting_hint2">https://www.facebook.com/groups/AndroidAPSUsers/</string> <string name="troubleshooting_hint2">https://www.facebook.com/groups/AndroidAPSUsers/</string>
<string name="troubleshooting_hint3">https://gitter.im/MilosKozak/AndroidAPS</string> <string name="troubleshooting_hint3">https://gitter.im/MilosKozak/AndroidAPS</string>
<string name="insulin">Insulin</string> <string name="insulin_label">Topic: Insulin</string>
<string name="insulin_ultrarapid">Which insulin can be used with Ultra-Rapid-Oref plugin?</string> <string name="insulin_ultrarapid">Which brand of insulin can be used with Ultra-Rapid-Oref plugin?</string>
<string name="insulin_fiasp">Fiasp</string> <string name="insulin_fiasp">Fiasp®</string>
<string name="insulin_novorapid">Novorapid</string> <string name="insulin_novorapid">NovoRapid®</string>
<string name="insulin_humalog">Humalog</string> <string name="insulin_humalog">Humalog®</string>
<string name="insulin_actrapid">Actrapid</string> <string name="insulin_actrapid">Actrapid®</string>
<string name="insulin_hint1">https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#insulin</string> <string name="insulin_hint1">https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#insulin</string>
<string name="sensitivity">Sensitivity plugin</string> <string name="sensitivity_label">Topic: Sensitivity Plugin</string>
<string name="sensitivity_which">Which sensitivity plugin has user defined time range for detection?</string> <string name="sensitivity_which">Which sensitivity plugin has user defined time range for detection?</string>
<string name="sensitivity_hint1">https://androidaps.readthedocs.io/en/latest/EN/Configuration/Sensitivity-detection-and-COB.html</string> <string name="sensitivity_hint1">https://androidaps.readthedocs.io/en/latest/EN/Configuration/Sensitivity-detection-and-COB.html</string>
<string name="sensitivityuam_which">Which sensitivity plugin must be used for UAM?</string> <string name="sensitivityuam_which">Which sensitivity plugin must be used for the UAM feature?</string>
<string name="wrongcarbs">Wrong carbs</string> <string name="wrongcarbs_label">Topic: Wrong Carb Entries</string>
<string name="wrongcarbs_whattodo">You see you have entered wrong carbs. What should you do?</string> <string name="wrongcarbs_whattodo">You see you have entered wrong carbs. What should you do?</string>
<string name="wrongcarbs_treatmentstab">Go to treatments, delete wrong carbs and enter new carbs</string> <string name="wrongcarbs_treatmentstab">Go to Treatments, delete wrong carbs and enter new carbs.</string>
<string name="wrongcarbs_addfakeinsulin">Add fake insulin by using Refill function</string> <string name="wrongcarbs_addfakeinsulin">Add fake insulin by using Refill function</string>
<string name="extendedcarbs">Food with fat and protein</string> <string name="extendedcarbs_label">Topic: Food with Fat and Protein</string>
<string name="extendedcarbs_handling">What to do if your food contains larger amount of fat or proteins?</string> <string name="extendedcarbs_handling">What to do if your food contains a large amount of fat and\/or proteins?</string>
<string name="extendedcarbs_useextendedcarbs">Recalculate fat and proteins to carbs and use \"Extended carbs\" feature to tell system about it</string> <string name="extendedcarbs_useextendedcarbs">Recalculate fat and proteins to carbs and use \"Extended carbs\" feature.</string>
<string name="extendedcarbs_add">Recalculate fat and proteins to carbs and add it to bolus calculation</string> <string name="extendedcarbs_add">Recalculate fat and proteins to carbs and add it to bolus calculation.</string>
<string name="extendedcarbs_useextendedbolus">Use extended bolus to cover fat and proteins</string> <string name="extendedcarbs_useextendedbolus">Use extended bolus to cover fat and proteins.</string>
<string name="extendedcarbs_hint1">https://androidaps.readthedocs.io/en/latest/EN/Usage/Extended-Carbs.html</string> <string name="extendedcarbs_hint1">https://androidaps.readthedocs.io/en/latest/EN/Usage/Extended-Carbs.html</string>
<string name="nsclient_monitoring">Monitoring children</string> <string name="nsclient_label">Topic: Monitoring Children</string>
<string name="nsclient_howcanyou">How can you monitor AAPS of your child remotely?</string> <string name="nsclient_howcanyou">How can you monitor AAPS of your child remotely?</string>
<string name="nightscout">Nightscout</string> <string name="nsclient_nightscout">Using a Nightscout site.</string>
<string name="dexcomfollow">Dexcom follow if you are using original Dexcom app</string> <string name="nsclient_dexcomfollow">Dexcom Follow app if you are using the original Dexcom app.</string>
<string name="dexcomfollowxdrip">Dexcom follow if you are using xDrip</string> <string name="nsclient_dexcomfollowxdrip">Dexcom Follow if you are using the xDrip app.</string>
<string name="xdripfollower">xDrip in follower mode</string> <string name="nsclient_xdripfollower">xDrip running in follower mode.</string>
<string name="looponiphone">Loop app on iPhone</string> <string name="nsclient_looponiphone">Loop app on iPhone.</string>
<string name="spikeiphone">Spike on iPhone</string> <string name="nsclient_spikeiphone">Spike app on iPhone.</string>
<string name="isf_increasingvalue">Assume you have high glycemia. Increasing ISF number will lead to giving less insulin if you try to correct high glycemia by bolus wizard</string> <string name="isf_label">Topic: Insulin Sensitivity Factor</string>
<string name="isf_decreasingvalue">Assume you have high glycemia. Decreasing ISF number will lead to giving less insulin if you try to correct high glycemia by bolus wizard</string> <string name="isf_increasingvalue">Increasing ISF number will lead to less insulin delivery if you are trying to lower your BG with the bolus wizard.</string>
<string name="isf_noeffect">Changing ISF has no effect on amount of insulin given by APS when trying to correct high glycemia</string> <string name="isf_decreasingvalue">Decreasing ISF number will lead to less insulin delivery if you are trying to lower your BG with the bolus wizard.</string>
<string name="isf_preferences">You have to enter ISF in preferences</string> <string name="isf_noeffect">Changing ISF has no effect on amount of insulin given by AAPS when trying to correct hyperglycemia.</string>
<string name="isf_profile">Changing ISF in profile is enough to apply the change</string> <string name="isf_preferences">You have to enter ISF in Preferences.</string>
<string name="isf_profile">Changing the ISF value in your profile is enough to apply the change.</string>
<string name="isf_hint1">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#insulin-sensitivity-factor-isf-mmol-l-u-or-mg-dl-u</string> <string name="isf_hint1">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#insulin-sensitivity-factor-isf-mmol-l-u-or-mg-dl-u</string>
<string name="isf_hint2">https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html</string> <string name="isf_hint2">https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html</string>
<string name="ic_increasingvalue">Increasing IC value will lead to giving less insulin for the same amount of carbs</string> <string name="ic_label">Topic: The IC Value</string>
<string name="ic_decreasingvalue">Decreasing IC value will lead to giving less insulin for the same amount of carbs</string> <string name="ic_increasingvalue">Increasing the IC value will lead to less insulin delivery for the same amount of carbs.</string>
<string name="ic_noeffect">Assume you have no active carbs. Changing IC will lead to different amount of insuling to correct your glycemia</string> <string name="ic_decreasingvalue">Decreasing the IC value will lead to less insulin delivery for the same amount of carbs.</string>
<string name="ic_different">IC will be different if you count bread unit as 10g or 12g</string> <string name="ic_noeffect">Assume you have 0 COB. Changing IC will lead to a different amount of insulin to correct your BG number.</string>
<string name="ic_meaning">IC meaning is: How much bread units is covered by 1U of insulin</string> <string name="ic_different">IC will be different if you count bread unit as 10g or 12g.</string>
<string name="ic_meaning">IC meaning is: How many bread units are covered by 1U of insulin.</string>
<string name="ic_hint1">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#carbohydrate-to-insulin-ratio-cr-g-u</string> <string name="ic_hint1">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#carbohydrate-to-insulin-ratio-cr-g-u</string>
<string name="profileswitch_pctwillchange">By specifying 90% in profile switch</string> <string name="profileswitch_label">Topic: Profile Switching</string>
<string name="profileswitch_basalhigher">Basals will be 10% higher</string> <string name="profileswitch_pctwillchange"> When specifying 90% in profile switch…</string>
<string name="profileswitch_basallower">Basals will be 10% lower</string> <string name="profileswitch_basalhigher">Basals will be 10% higher.</string>
<string name="profileswitch_ichigher">IC value will be 10% higher</string> <string name="profileswitch_basallower">Basals will be 10% lower.</string>
<string name="profileswitch_iclower">IC value will be 10% lower</string> <string name="profileswitch_ichigher">IC value will be 10% higher.</string>
<string name="profileswitch_isfhigher">ISF value will be 10% higher</string> <string name="profileswitch_iclower">IC value will be 10% lower.</string>
<string name="profileswitch_isflower">ISF value will be 10% lower</string> <string name="profileswitch_isfhigher">ISF value will be 10% higher.</string>
<string name="profileswitch_overall">You will get around 10% less insulin in total</string> <string name="profileswitch_isflower">ISF value will be 10% lower.</string>
<string name="profileswitch_targethigher">Target wiil be 10% higher</string> <string name="profileswitch_overall">You will get 10% less insulin in total.</string>
<string name="profileswitch_targetlower">Target will be 10% lower</string> <string name="profileswitch_targethigher">Target wiil be 10% higher.</string>
<string name="profileswitch_targetbottom">Only bottom target will be 10% lower</string> <string name="profileswitch_targetlower">Target will be 10% lower.</string>
<string name="profileswitch_targetbottom">Only bottom target will be 10% lower.</string>
<string name="profileswitch_hint1">https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profile%20switch#profile-switch</string> <string name="profileswitch_hint1">https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profile%20switch#profile-switch</string>
<string name="profileswitchtime_iwant">I want to do a profile switch because I had to wake up 1h earlier than usually, so it makes more sense to announce the change by the time shift with a profile switch. What number should I use?</string> <string name="profileswitchtime_iwant">I want to do a profile switch because I had to wake up 1h earlier than usually, so it makes more sense to announce the change by the time shift with a profile switch. What number should I use?</string>
<string name="profileswitchtime_1">1</string> <string name="profileswitchtime_1">1</string>

View file

@ -1516,7 +1516,7 @@
<string name="rileylink_state_not_started">Not Started</string> <string name="rileylink_state_not_started">Not Started</string>
<string name="rileylink_state_rl_init">RileyLink Initialization…</string> <string name="rileylink_state_rl_init">RileyLink Initialization…</string>
<string name="rileylink_state_rl_error">RileyLink Error</string> <string name="rileylink_state_rl_error">RileyLink Error</string>
<string name="rileylink_state_pc_tune_up">Tunning up RileyLink and Pump</string> <string name="rileylink_state_pc_tune_up">Tuning up RileyLink and Pump</string>
<string name="rileylink_state_pc_error">Problem connecting to Pump</string> <string name="rileylink_state_pc_error">Problem connecting to Pump</string>
<string name="rileylink_state_connected">Connected</string> <string name="rileylink_state_connected">Connected</string>