UNPKG

@corvina/device-example

Version:
79 lines 3.34 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var __param = (this && this.__param) || function (paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } }; var Sine_1; Object.defineProperty(exports, "__esModule", { value: true }); exports.Sine = void 0; const common_1 = require("@nestjs/common"); const device_client_1 = require("@corvina/device-client"); const swagger_1 = require("@nestjs/swagger"); let Sine = Sine_1 = class Sine { l = new common_1.Logger(Sine_1.name); deviceService; async post(tagName = "Tag", period = 1000, amplitude = 1000, phase = 0) { const t = Date.now(); const v = amplitude * Math.sin(phase + (Date.now() / period) * 2 * Math.PI); const dataPoints = new Array(); const dp = { tagName, value: v, timestamp: t, }; dataPoints.push(dp); await this.deviceService.post(dataPoints); return dataPoints; } }; exports.Sine = Sine; __decorate([ (0, common_1.Inject)(), __metadata("design:type", device_client_1.DeviceService) ], Sine.prototype, "deviceService", void 0); __decorate([ (0, swagger_1.ApiOperation)({ summary: "Post a new value sampled from a sine wave with the given parameters, using wall clock as time base", }), (0, swagger_1.ApiQuery)({ name: "tagName", description: "device identifier (name) of data source", schema: { default: "Tag" }, required: false, }), (0, swagger_1.ApiQuery)({ name: "period", description: "period in ms of the sine wave", required: false, schema: { default: 1000 }, }), (0, swagger_1.ApiQuery)({ name: "amplitude", description: "amplitude of the sine wave", required: false, schema: { default: 1000 }, }), (0, swagger_1.ApiQuery)({ name: "phase", description: "phase of the sine wave", required: false, schema: { default: 0 } }), (0, common_1.Post)(), __param(0, (0, common_1.Query)("tagName")), __param(1, (0, common_1.Query)("period")), __param(2, (0, common_1.Query)("amplitude")), __param(3, (0, common_1.Query)("phase")), __metadata("design:type", Function), __metadata("design:paramtypes", [Object, Object, Object, Object]), __metadata("design:returntype", Promise) ], Sine.prototype, "post", null); exports.Sine = Sine = Sine_1 = __decorate([ (0, swagger_1.ApiTags)("device"), (0, common_1.Controller)("/device/sine"), (0, common_1.Injectable)() ], Sine); //# sourceMappingURL=sine.controller.js.map