// Data preparation for fetching radioactivity data // rxf 2022-06-24 import {returnOnError} from "../utilities/reporterror.js"; import { getActData, getAvgData, getLongAvg } from "../actions/getsensorData.js" const radioactFilter = (data, opts, actual) => { let erg = {} erg.sid = opts.sensorid erg.sname = opts.sname erg.values = [] for (let x of data.values) { let entry = {} entry.datetime = x.datetime if(actual) { entry.cpm = x.counts_per_minute, entry.uSvh = x.counts_per_minute / 60 * opts.factor } else { entry.cpmAvg = x.counts_per_minute, entry.uSvhAvg = x.counts_per_minute / 60 * opts.factor } erg.values.push(entry) } return erg } export const getRadioData = async (opts) => { let erg = { err: null, data: {}} let params = { sensorid: opts.sensorid, avg: opts.avg, datetime: opts.start } if (opts.what === 'oneday') { params.span = 1 } else if (opts.what === 'oneweek') { params.span = 7 } else { params.span = 31 params.moving = false params.avg = 1440 } let { data, err } = await getAvgData(params) if (err != null) { return returnOnError(erg, err, getRadioData.name) } erg.data.radiomovavg = radioactFilter(data, opts, false) if (opts.what === 'oneday') { const { data, err} = await getActData(params) if (err != null) { return returnOnError(erg, err, getRadioData.name) } erg.data.radioactual = radioactFilter(data, opts, true) } if(opts.climatesid && ((opts.what === 'oneday') || (opts.what === 'oneweek'))) { params.sensorid = opts.climatesid params.avg = 10 const { data, err} = await getAvgData(params) if (err != null) { return returnOnError(erg, err, getRadioData.name) } data.sid = opts.climatesid data.sname = opts.climatesname erg.data.climate = data } return erg }