Переписываю программу из php в nodejs, javascript. Нужно по tcp передать данные в устройство. Предыдущий программист написал вот такой код, не могу разобраться для чего константы SIG_CALL, FAC_CONFIG, REQUEST_CONFIG конвертируются из hex в символы с помощью функции chr(), это так принято делать, или в таком виде удобнее отправлять данные:
define('SIG_CALL', 0x00F1);
define('FAC_CONFIG', 0x01);
define('REQUEST_CONFIG', 0x01);
$padcnt = 4 + 4 + 4 + 6 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 4 + 4;
$d = w2s(SIG_CALL);
$d .= b2s(FAC_CONFIG);
$d .= b2s(REQUEST_CONFIG);
$d .= str_repeat("\xFF", $padcnt);
function b2s($n)
{
$n = (int)$n;
return chr($n);
}
function w2s($n, $swap = true)
{
$n = (int)$n;
$hi = ($n >> 8) & 0xFF;
$lo = ($n & 0xFF);
if ($swap) {
return chr($lo) . chr($hi);
} else {
return chr($hi) . chr($lo);
}
}