/** * @author Martin Karkowski * @email m.karkowski@zema.de * @create date 2018-05-22 11:13:17 * @modify date 2018-08-17 06:43:55 * @desc [description] */ /** Clear the Screen */ import 'reflect-metadata'; import { Builder } from '../../mod-Assembly-Builder/src/Container-Builder.FileLoader'; import * as CONVERTER from '../../mod-Converters/assembly/manual-assembly'; import * as BUFFER from '../../mod-Data-Writers/assembly/manual-assembly'; import * as PUBSUB from '../../mod-Publish-And-Subscribe-System/assembly/manual-assembly'; Builder.load(); Builder.on('loaded', () => { /** Create A PubSubSystem */ const _pubSub = Builder.instance.container.get(PUBSUB.TYPES.PubSubSystem); /** Create a Connector */ const _buffer = Builder.instance.container.get(BUFFER.TYPES.BufferedDa3vidWriter); const _converter = Builder.instance.container.get(CONVERTER.TYPES.ToDa3vidConverter); /** Create a Converter for Test.Data. */ _converter.register('data.test.x', { /** Setting the X-Position */ 'stationId': 1, 'datapointId': 10006, 'gapDetectedAfterwards': false }); /** Create a Converter for Test.Data. */ _converter.register('data.test.y', { /** Setting the X-Position */ 'stationId': 1, 'datapointId': 10007, 'gapDetectedAfterwards': false }); /** Create a Converter for Test.Data. */ _converter.register('data.test.z', { /** Setting the X-Position */ 'stationId': 1, 'datapointId': 10008, 'gapDetectedAfterwards': false }); const _pub = _pubSub.createPublisher('data.test'); _pubSub.createSubscription('data.test.x', (_data, _sender, _topic, _time) => { _buffer.write(_converter.convert(_data, 'data.test.x', _time || Date.now())); }); _pubSub.createSubscription('data.test.y', (_data, _sender, _topic, _time) => { _buffer.write(_converter.convert(_data, 'data.test.y', _time || Date.now())); }); _pubSub.createSubscription('data.test.z', (_data, _sender, _topic, _time) => { _buffer.write(_converter.convert(_data, 'data.test.z', _time || Date.now())); }); _buffer.endpoint = 'https://zema-3ddd.embedded-data.de/api/v1/stations/datapoints/updates' let i = 0; const interval = setInterval(() => { i = i < 1000 ? i + 1 : 0; _pub.publishData({ x: i, y: i, z: i }); }, 50); console.log('Press any key to exit ...'); process.stdin.on('data', function (data) { clearInterval(interval); setTimeout(() => process.exit(0), 100); } ); });