nope/modules/mod-Data-Writers/test/test-david.ts
2020-09-08 16:59:06 +02:00

86 lines
2.7 KiB
TypeScript

/**
* @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.PubSubSystem>(PUBSUB.TYPES.PubSubSystem);
/** Create a Connector */
const _buffer = Builder.instance.container.get<BUFFER.Da3vidWriterWebsockets>(BUFFER.TYPES.BufferedDa3vidWriter);
const _converter = Builder.instance.container.get<CONVERTER.ToDa3vidConverter>(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);
}
);
});