-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtestHashAuth.js
More file actions
99 lines (93 loc) · 3.46 KB
/
testHashAuth.js
File metadata and controls
99 lines (93 loc) · 3.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
/* eslint-disable no-console */
/*jshint esversion: 6 */
var lm = require('./lmclient.js');
// создаем экземпляр класса
var client = new lm.LMClient({
host: '127.0.0.1', // адрес сервера
port: 3000, // порт сервера
login: '2500024', // логин
password: '123', // пароль
reconnect: true, // автоматически переподключаться при ошибках и разрывах связи
opros: true, // тип учетной записи "опрос"
client: false, // тип учетной записи "клиент"
hashAuth: true // авторизация с использованием MD5
});
// события
client.on('connecting', function(host, port){
console.log('connecting to ' + host + ':' + port);
});
client.on('connect', function(){
console.log('connected');
});
client.on('loggedIn', function(id, version){
console.log('logged in: id=' + id.toString(10) + ' version=' + version);
});
client.on('checkConnection', function(time){
console.log('check connection successfully, delay=' + time + ' ms');
});
client.on('timeSynchronize', function(time){
console.log('timeSynchronize: serverTime="' + time.toLocaleString() + '"');
});
client.on('disconnect', function(){
console.log('disconnected');
});
client.on('control', function(ch){
console.log('receive control "' + ch.name + '" value="' + ch.value + '"');
// подтверждаем прием
client.setValue(ch.name, ch.value);
});
client.on('delete', function(name, attrId){
if(typeof attrId === 'undefined') {
console.log('channel "' + name + '" was removed');
} else {
console.log('attribute ' + attrId + ' was removed from channel "' + name + '" deleted');
}
});
client.on('error', function(err){
console.log(err.message);
});
// создаем каналы разных типов
client.add('channel_VT_I1', lm.VT_I1, false, {
units: 'амперы',
comment: 'тип VT_UI1',
enum: ['красный', 'желтый', 'зеленый']
});
client.add('channel_VT_R4', lm.VT_R4, false, {
units: 'омы',
comment: 'тип VT_R4',
bounds: [0, 1000]
});
client.add('channel_VT_R8', lm.VT_R8, false, {
units: 'вольты',
comment: 'тип VT_R8',
bounds: [0, 1000],
percentDeadband: 1
});
client.add('channel_aVT_I4', lm.VT_I4 + lm.VT_ARRAY, false, {
units: 'кг',
comment: 'массив VT_I4'
});
// проверка активизации канала
client.add('channel_active', lm.VT_I1, false);
client.setValue('channel_active', 10);
// проверка управления каналом
client.add('channel_write', lm.VT_I4, true);
// подключаемся к серверу
client.connect();
// периодически формируем данные
var value = 0;
var value2 = 0;
setInterval(function(){
value++;
if(value >= 120) {
value = 0;
}
value2 += 0.1;
// простые значения
client.setValue('channel_VT_I1', value);
client.setValue('channel_VT_R4', value2);
client.setValue('channel_VT_R8', value2);
// массивы
var arr = [value, value+1, value+2, value+3, value+4];
client.setValue('channel_aVT_I4', arr);
}, 500);