在Python中,我可以将hex和ascii都连接为一个字符串,然后将其发送到我要控制的设备中
_startTransmit = "\x02"
_channel = 7
command_string = _startTransmit + "PGM:" + str(_channel) + ";"
try:
written = conn.write(command_string.encode('utf-8'))
此SO Answer使其看起来似乎是在C#中构建字节数组是唯一的方法
因此,似乎没有类似Python中的C#串联十六进制和ascii的方法。我说得对吗?
答案 0 :(得分:2)
我想看看在“字符串”之前使用字符串插入器运算符$:
var _startTransmit = (char)0x02; //ints can be written in 0xFF format in the source code and cast to char e.g. (char)0x41 is a capital A
var _channel = 7;
var command_string = $"{_startTransmit}PGM:{_channel};"
最后一行是用于以下内容的语法糖:
var command_string = string.Format("{0}PGM:{1};", _startTransmit, _channel);
{括号}中的内容可以具有格式说明符,例如,将_channel填充为前导空格,零等的4个字符{_channel:0000}
-参见https://docs.microsoft.com/en-us/dotnet/api/system.string.format?view=netframework-4.8