概述

在编程函数列表中,您会发现有类似com.send, com.sendhex ,tcp.send ,tcp.sendhex等,它们的区别如下:
.send 用于发送ASCII字符串数据.
.sendhex 用于发送16进制的数据.
ASCII 是可见的字符,例如我们键盘上可见的字符串,
HEX 16进制除了可以表示可见字符外,还可以表示例如不可见的数据,例如 回车 换行

sendhex是发16进制数据

16进制是用数字 0-9 字符 a - f 来表示数据.

用2个上述字符组合,代表一个字节(数据), 例如 00 0F 0A 22 FF 0A 0D 等.
其中每个字节16进表示的话最小的是00,最大的是FF ,分别对应10进制的 0, 和255

一般协议中, 用 0x代表16进, 例如 0xFF 就是代表16进制是 FF,也就是 10进制数字的 255.

还有其它的一些表示16进的方式,0x,\x,h ,H等,当您看到协议中有类似下表的数据格式时,
那么代表该协议中的数据是16进,那么中控编程就需要用.sendhex来发送16进数据.

  0x00 0x0F 0x0A 0x22 0xFF 0x0A 0x0D 
  00\x 0F\x 0A\x 22\x FF\x 0A\x 0D\x
  00H 0FH 0AH 22H FFH 0AH 0DH

在中控编程的时候,当需要发送16进数据时,不要输入0x, \x ,h, H这些字符,把 0x, \x ,h, H删掉,结果如下:

00 0F 0A 22 FF 0A 0D

 --中控编程这样发送就可以
 com1.sendhex("00 0F 0A 22 FF 0A 0D");
 tcp.sendhex("192.168.2.100",6677,"00 0F 0A 22 FF 0A 0D");

send是发字符串数据

字符串数据是指键盘上可以输入的可见的字符,例如 0-9,a-Z,A-Z,~!@#$%^&*()_+<>?:"{}|各种可见的英文符号等.
当您看到协议中有类似下表的数据格式时,那么代表是用.send发送数据

  PWR ON \n
  PWR OFF [cr]
  w1#2
  at23P\r

send发送回车换行\r\n

如果使用.send发送字符串时候,当结尾要发送回车换行符时候, 可以用 \r代表回车 \n代表换行

  com1.send("PWR ON\n");

ASCII字符对应的HEX值

前面提到 HEX可以包括ASCII的值,所以,用.sendHex可以代替.send发送数据,ASCII对应的HEX值.
com1.send("ABC"); 等效于 com1.sendhex("41 42 43");

ASCII16进制ASCII16进制ASCII16进制ASCII16进制
NUL00DLE10SP20030
SO01DC111!21131
STX02DC212"22232
ETX03DC313#23333
EOT04DC414$24434
ENQ05NAK15%25535
ACK06SYN16&26636
BEL07ETB17'27737
BS08CAN18(28838
T09EM19)29939
LF0ASUB1A*2A:3A
VT0BESC1B +2B;3B
FF0CFS1C,2C3C
CR0DGS1D_2D =3D
SO0ERS1E.2E3E
SI0FUS1F/2F3F
40P5060p70
A41Q51a61q71
B42R52b62r72
C43S53c63s73
D44T54d64t74
E45U55e65u75
F46V56f66v76
G47W57g67w77
48X58 68x78
I49Y59i69y79
J4AZ5Aj6Az7A
K4B5Bk6B7B
L4C5Cl6C7C
M4D5Dm6D7D
N4E5En6E7E
O4F5Fo6FDEL7F