86 lines
2.7 KiB
TypeScript
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);
|
||
|
|
||
|
}
|
||
|
);
|
||
|
|
||
|
});
|
||
|
|
||
|
|
||
|
|