我真的很难理解差异.有人说他们是一样的,而另一些人说有一点点差别.究竟有什么区别?如果你用一些比喻来解释,我希望如此.
我正在处理一些使用RS232与外围设备通信的遗留系统.我对COM接口的经验不是很熟悉.我有一些代码可以打开和使用COM端口,但它无法打开其他应用程序使用的端口.我需要对数据包进行黑盒子处理,以便我们可以使用相同的协议进行更新通信.
有没有办法将"中间人"传入的数据包发送到开放的COM端口并检测正在发送的数据包?我正在使用.NET,但我对任何类型的解决方案都持开放态度.
(我发现了这个,但我不认为这对我有用.)
我正在开发一个利用Android 3.2中的USB Host功能的项目.一般来说,我在USB /串行通信方面缺乏令人遗憾的缺乏知识和才能.我也无法找到任何我需要做的好示例代码.
我需要从USB通信设备上读取.
例如:当我通过Putty(在我的电脑上)连接时,我输入:
>GO
Run Code Online (Sandbox Code Playgroud)
设备开始为我喷出数据.俯仰/滚动/温度/校验.
例如:
$R1.217P-0.986T26.3*60
$R1.217P-0.986T26.3*60
$R1.217P-0.987T26.3*61
$R1.217P-0.986T26.3*60
$R1.217P-0.985T26.3*63
Run Code Online (Sandbox Code Playgroud)
我可以从Android设备发送初始'GO'命令,此时我收到'GO'的回音.
然后在任何后续读取上没有别的.
我该怎么做:1)发送'go'命令.2)读入结果数据流.
我正在使用的USB设备具有以下接口(端点).
设备类别:通讯设备(0x2)
接口:
接口#0类:通信设备(0x2)端点#0方向:入站(0x80)类型:中断(0x3)轮询间隔:255最大数据包大小:32属性:000000011
接口#1类:通信设备类(CDC)(0xa)端点#0地址:129编号:1方向:入站(0x80)类型:批量(0x2)轮询间隔(0)最大数据包大小:32属性:000000010
端点#1地址:2编号:2方向:出站(0x0)类型:批量(0x2)轮询间隔(0)最大数据包大小:32属性:000000010
我能够处理权限,连接到设备,找到正确的接口并分配端点.我只是想弄清楚使用哪种技术发送初始命令读取随后的数据.我尝试了bulkTransfer和controlTransfer的不同组合,没有运气.
谢谢.
我正在使用界面#1,如下所示:
public AcmDevice(UsbDeviceConnection usbDeviceConnection, UsbInterface usbInterface) {
Preconditions.checkState(usbDeviceConnection.claimInterface(usbInterface, true));
this.usbDeviceConnection = usbDeviceConnection;
UsbEndpoint epOut = null;
UsbEndpoint epIn = null;
// look for our bulk endpoints
for (int i = 0; i < usbInterface.getEndpointCount(); i++) {
UsbEndpoint ep = usbInterface.getEndpoint(i);
Log.d(TAG, "EP " + i + ": " + ep.getType());
if (ep.getType() == UsbConstants.USB_ENDPOINT_XFER_BULK) { …
Run Code Online (Sandbox Code Playgroud) 我可以用比iOs 5更低的版本打开iPhone/iPad的串口
open("/dev/tty.iap", O_RDWR | O_NOCTTY | O_ASYNC))
但我在iOS 5中收到错误"操作不允许".
(我使用串行编程来通信附件和iPhone)
有没有人对此有所了解.
谢谢.
我是Android上的一个完整的菜鸟,只是在按钮激活的基本(1或2行)活动的水平上,但我想创建一个非常简单的应用程序,当我点击应用程序图标时,它会触发并忘记消息到我的Windows 8 PC上的监听服务器.手机通过USB线连接为简单的媒体设备,无需Kies.
我可以得到一个消息框,并说消息已发送.我需要知道要使用哪种通信通道,例如COM端口或什么,以及如何通过Android发送数据.在Windows方面,一旦我建立了沟通方式,我就能帮助自己.
当我将笔记本电脑连接到我的Android手机时,电脑远离我这个错误:
1827 Data Router usb connection is true
1827 Data Router DSR is on Don't send DTR on
Run Code Online (Sandbox Code Playgroud)
我的手机是带有Android 4.03的Galaxy II.
根据我的搜索:
DSR=Data Set Ready DCE (Data Carrier Detect) is ready to receive commands or data.
DTR=Data Terminal Ready Indicates presence of DTE to DCE.
Run Code Online (Sandbox Code Playgroud) 我的任务是通过RS485 2线系统实现ModBus协议.(实际上它是三根线,A/B和GND).虽然ModBus不是重点,但是之前的步骤......界面上的简单I/O.
我正在使用FTDI USB-RS485转换器将Linux主机(不可互换)连接到Windows主机(可与其他Linux主机互换,但我想避免这种情况)
编码应该是19200,8,n,1.但它似乎不起作用.
我没有准确的代码,但在Linux上我这样做:
int fd = open("/dev/ttyS3", O_RDWR | O_CTTY);
if(fd == -1) return "Error while opening the port";
Run Code Online (Sandbox Code Playgroud)
接下来,我配置端口.
struct termios tty;
tcgetattr(fd, &tty);
cfsetispeed(&tty, B19200);
cfsetospeed(&tty, B19200);
tty.c_cflag = CS8; //Empties the cflags and sets the character width.
tty.c_cflag |= (CLOCAL | CREAD); //Sets 'recommended' options.
tty.c_lflag = 0;
tty.c_iflag = 0;
tty.c_oflag = 0;
tcgetattr(fd, TCSANOW, &tty);
Run Code Online (Sandbox Code Playgroud)
奇偶校验和流量控制目前尚未规划,因为最终结果将连接到低级别的电路板,我需要自己处理信号.此外,没有任何电线,这将允许"不受约束的通信".(毕竟我不希望XON/XOFF字符限制我可以传输的字节范围)
所有这些功能都能正常运行并设置数据.
在Windows上,我打开这样的串口:
DCB SP;
HANDLE hSerial = CreateFile("COM6", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); …
Run Code Online (Sandbox Code Playgroud) 我正在启动一个新的 .NET Core 3.0 项目,我需要在其中访问 System.IO.Ports.SerialPort 类。我在课程中阅读的文档表明它适用于 .NET Core 3(请参阅https://docs.microsoft.com/en-us/dotnet/api/system.io.ports.serialport?的底部?视图=netcore-3.0)。但是,当我向我的类添加 using 语句时,它无法解析 System.IO.Ports。是否需要执行一些额外的步骤来引用 Windows 桌面上运行的 .NET Core 3.0 程序的 SerialPort 类?
我目前正在开发一个允许不同自动化进行通信的项目.为此,我想创建一个客户端和服务器,使用modbus协议进行通信.我不确定我现在是否想要使用ModBus/TCP,ModBus/RTU或ModBus/ASCII.
我在C中搜索了客户端/服务器示例,我可以找到库,但没有简单的通信示例.我想从头开始,所以库不是我想要的.
我要的是,如果有人能给我一个用C语言编写的简单代码用于客户端和/或使用Modbus进行通信的服务器,因为我不确定我将使用任何类型的Modbus将是一个很大的帮助(RTU/TCP/ASCII).
越简单越好,我希望代码演示的是,例如:对服务器的初始化,请求,答案,关闭连接.
非常感谢您的宝贵时间.
c network-programming modbus serial-communication modbus-tcp
PL2303串行USB设备配置为仅接收数据.这里有tty与cu的解释:
MacOS:/dev/tty.*和/dev/cu.*之间有什么区别?
话虽这么说,在配置数据收集软件时,必须选择/dev/tty.usbserial OR /dev/cu.usbserial.我想了解选择tty或cu的事实和决策思路.