ModuleCalculate

main
DenisN 2025-06-03 08:49:59 -04:00
parent 4be59b1825
commit d15244b635
3 changed files with 38 additions and 56 deletions

View File

@ -0,0 +1,3 @@
{
"device": [18,19]
}

View File

@ -6,13 +6,13 @@ export class ZvksmetricsController {
constructor(private readonly metricsService: ZvksmetricsService) { } constructor(private readonly metricsService: ZvksmetricsService) { }
@Get('ranges') @Get('ranges')
async getHello(): Promise<any> { async getHello(@Body() inputMetrics: any): Promise<any> {
let a: number = 7; let a: number = 7;
let b: number = 9; let b: number = 9;
let sum: any = { value: (a + b) / 4 * b + a }; let sum: any = { value: (a + b) / 4 * b + a };
await this.metricsService.useStatusModel(1); await this.metricsService.useStatusModel(inputMetrics);
// let a = await this.metricsService.showStatus(); // let a = await this.metricsService.showStatus();
// console.log(sum.value); // console.log(inputMetrics);
return sum.value; return sum.value;
} }
@ -38,8 +38,6 @@ export class ZvksmetricsController {
@Post('input') @Post('input')
async getPostMessage(@Body() inputMetrics: any): Promise<string> { async getPostMessage(@Body() inputMetrics: any): Promise<string> {
// console.log(inputMetrics);
// console.log(23+12);
console.log(inputMetrics); console.log(inputMetrics);
let out: any = await this.metricsService.useStatusModel(inputMetrics); let out: any = await this.metricsService.useStatusModel(inputMetrics);
return out; return out;

View File

@ -22,6 +22,8 @@ export class MetricK2 {
@Injectable() @Injectable()
export class K2Metrics { export class K2Metrics {
service_name: string; service_name: string;
device: number;
source: string;
//endpoint_name: string; //endpoint_name: string;
metrics: MetricK2[]; metrics: MetricK2[];
}; };
@ -72,44 +74,15 @@ export class ZvksmetricsService {
// console.log(prev); // console.log(prev);
let intermediate = await this.getComplexMetricsValues(inp, prev, complex, model, scope); let intermediate = await this.getComplexMetricsValues(inp, prev, complex, model, scope);
console.log(inp); // console.log(intermediate);
// console.log(inp.metrics[20], complex.metrics[2]);
const val = JSON.parse(JSON.stringify(model[0].values)); const val = JSON.parse(JSON.stringify(model[0].values));
// console.log(val.arr[1]);
// console.log(val);
// const reif = JSON.parse(comlexCalc[1].values);
// console.log(reif);
// console.log(inp);
// let rng: any = {val: [{x:3}, {x:4}, {x:5}, {x:9}]};
// console.log(rng.val[0].x);
// let testFormula: string = (rng.val[0].x + rng.val[1].x - rng.val[2].x + rng.val[3].x).toString();
// let formula: string = scope[0].ranges[0].sum;
// let value: any = {formula};
// console.log(evaluate(testFormula, rng));
// console.log(JSON.stringify("arr:[191, 192, 193]"));
let x: any = { arr: ["191", "192", "193"], prev: ["1", "1"], abb: ["1", "34"] };
//let k = JSON.parse(scope[0].ranges[0].values); //
//let y: string = scope[0].ranges[0].formula;
let y = "arr[1]/prev[1]*abb[1]+arr[2]*prev[2]+arr[3]+prev[1]/prev[2]";
// console.log(y, x);
// console.log(evaluate(y, x));
// let editedMetrics : K2Metrics = await this.getMetrics (inp, comlexCalc, scope); // let editedMetrics : K2Metrics = await this.getMetrics (inp, comlexCalc, scope);
let responseFromExporter: any = await this.sendMetrics(intermediate); let responseFromExporter: any = await this.sendMetrics(intermediate);
let responseFromExporter1: any = await this.sendMetrics(inp); let responseFromExporter1: any = await this.sendMetrics(inp);
// console.log(inp.metrics[200].device);
prev = inp; prev = inp;
return responseFromExporter; return responseFromExporter;
@ -132,24 +105,28 @@ export class ZvksmetricsService {
let length: number = complexCalc.length; let length: number = complexCalc.length;
let metrics: MetricK2[] = complexData.metrics; let metrics: MetricK2[] = complexData.metrics;
// let val = await this.setComplexMetricValue(complexCalc[0].values, complexCalc[0].formula, inputData.metrics, prevousData.metrics); let devices: number [] = [18,19];
// let status = 3; let device_len: number = devices.length;
for (let i = 0; i < length; i++) { // const jsonData = require('../conf/devices.json');
let val = await this.setComplexMetricValue(complexCalc[i].values, complexCalc[i].formula, inputData.metrics, prevousData.metrics); // console.log(jsonData);
let status = 3; for (let d = 0; d<device_len; d++){
let complexMetric = new MetricK2(); for (let i = 0; i < length; i++) {
complexMetric.id = complexCalc[i].id; let metr = {"source": ""};
complexMetric.name = complexCalc[i].name; let val = await this.setComplexMetricValue(complexCalc[i].values, complexCalc[i].formula, inputData.metrics, prevousData.metrics, devices[d], metr);
complexMetric.type = inputData.metrics[0].type; let status = 3;
complexMetric.addr = inputData.metrics[0].addr; let complexMetric = new MetricK2();
complexMetric.value = val; complexMetric.id = complexCalc[i].id;
complexMetric.description = complexCalc[i].name; complexMetric.name = complexCalc[i].name;
complexMetric.status = status; complexMetric.type = inputData.metrics[0].type;
// complexMetric.device = number(inputData.metrics.find(el => el.name == complexMetric.name)?.device); complexMetric.addr = inputData.metrics[0].addr;
// complexMetric.device = inputData.metrics[0].device; complexMetric.value = val;
// complexMetric.source = string(inputData.metrics.find(elem => elem.name == complexMetric.name)?.source); complexMetric.description = complexCalc[i].name;
metrics.push(complexMetric); complexMetric.status = status;
complexMetric.device = devices[d];
complexMetric.source = metr.source;
metrics.push(complexMetric);
}
} }
console.log(complexData); console.log(complexData);
@ -157,21 +134,25 @@ export class ZvksmetricsService {
return complexData; return complexData;
} }
async setComplexMetricValue(value: string, formula: string, currMetrics: MetricK2[], prevMetrics: MetricK2[]): Promise<number> { async setComplexMetricValue(value: string, formula: string, currMetrics: MetricK2[], prevMetrics: MetricK2[], device: number, obj: any): Promise<number> {
const val = JSON.parse(JSON.stringify(value)); const val = JSON.parse(JSON.stringify(value));
let arr = val.arr; let arr = val.arr;
let arr_len: number = arr.length; let arr_len: number = arr.length;
obj.source = currMetrics.find(element => element.name == arr[0] && element.device == device)?.source;
// console.log(obj.source);
for (let i = 0; i < arr_len; i++) { for (let i = 0; i < arr_len; i++) {
arr[i] = currMetrics.find(element => element.name == arr[i])?.value; arr[i] = currMetrics.find(element => element.name == arr[i] && element.device == device)?.value;
} }
let prevarr = val.prevarr; let prevarr = val.prevarr;
if (prevarr) { if (prevarr) {
let prevarr_len: number = prevarr.length; let prevarr_len: number = prevarr.length;
for (let i = 0; i < prevarr_len; i++) { for (let i = 0; i < prevarr_len; i++) {
prevarr[i] = prevMetrics.find(element => element.name == prevarr[i])?.value; prevarr[i] = prevMetrics.find(element => element.name == prevarr[i] && element.device == device)?.value;
} }
} }
// console.log(val);
// console.log(obj.soure);
let result: number = evaluate(formula, val); let result: number = evaluate(formula, val);
// console.log(result); // console.log(result);
return result; return result;