我能够建立与 bacnet 路由器的串行端口通信。
一切都很好,我可以更改路由器的名称等。
但是当我写入 IP 地址时: 我的代码:
serialPort1.WriteLine("10.1.1.168");
//or
serialPort1.Write("10.1.1.168");
//It stores as '0.0.0.10'
或者:
serialPort1.WriteLine("145.100.100.168"); //it stores as '0.0.0.145'
或者:
serialPort1.WriteLine("145100100168"); //Im reaching lol
我可以更改,例如路由器名称:
serialPort1.WriteLine("Project1234"); //and it stores perfectly
我已经完成了转换(二进制、十六进制、ipAddress),但它仍然存储了一个错误的值。
有任何想法吗?谢谢你的帮助!!
更新 - 好的,这就是我到目前为止所拥有的:
IPAddress ip = IPAddress.Parse(txtWrite.Text);
Byte[] bytes = ip.GetAddressBytes();
for (int i = 0; i < bytes.Length; i++)
{
string str = bytes[i].ToString();
MessageBox.Show(str);
serialPort1.Write(str+".");
}
serialPort1.Write("\r\n");
但问题是,如果超过 3 位数字“192.168.168.5”,它将不会添加“。” 导致“1921681685”。(注意最后的小数点?)但是如果我输入“10.1.1.168”,它会存储为“10.1.1.168”并且最后没有小数点,这是我想要或需要的那个 IP 地址。我究竟做错了什么??
谢谢你的帮助。