meal.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. //для monitor/meal.json параметры: monitor/pumphistory-24h-zoned.json settings/profile.json monitor/clock-zoned.json monitor/glucose.json settings/basal_profile.json monitor/carbhistory.json
  2. var console = {
  3. log: function(...args) { _consoleLog(args); },
  4. error: function(...args) { _consoleLog(args); }
  5. };
  6. function generate(pumphistory_data, profile_data, clock_data, glucose_data, basalprofile_data, carbhistory = false){
  7. if ( typeof(profile_data.carb_ratio) === 'undefined' || profile_data.carb_ratio < 3 ) {
  8. return {"error":"Error: carb_ratio " + profile_data.carb_ratio + " out of bounds"};
  9. }
  10. var carb_data = { };
  11. if (carbhistory) {
  12. carb_data = carbhistory;
  13. }
  14. if (typeof basalprofile_data[0] === 'undefined') {
  15. return {"error":"Error: bad basalprofile_data: " + JSON.stringify(basalprofile_data)};
  16. }
  17. var inputs = {
  18. history: pumphistory_data
  19. , profile: profile_data
  20. , basalprofile: basalprofile_data
  21. , clock: clock_data
  22. , carbs: carb_data
  23. , glucose: glucose_data
  24. };
  25. var recentCarbs = freeaps_meal(inputs);
  26. if (glucose_data.length < 36) {
  27. console.error("Not enough glucose data to calculate carb absorption; found:", glucose_data.length);
  28. recentCarbs.mealCOB = 0;
  29. recentCarbs.reason = "not enough glucose data to calculate carb absorption";
  30. }
  31. return recentCarbs;
  32. }