鱼C论坛

 找回密码
 立即注册
查看: 236|回复: 3

[已解决]如何写一个文件可以实现对目标上位机的控制

[复制链接]
发表于 2024-2-26 10:39:17 | 显示全部楼层 |阅读模式
60鱼币
请求各位大佬帮忙,需要在下面图片的上位机上间隔10ms发送10条修改过的数据,由于人手动更改的时间要远超10ms,所以考虑用代码实现,但是目前理不清思路,所以来求助,感谢!!!
1708915146673.png
具体需求如下:
1.间隔10ms更改发送窗口的10组数据并且点击每一条数据的发送按钮完成数据下发
2.10组数据的变化只要将8个字节的数据改变即可,没有特定的要求
最佳答案
2024-2-26 10:39:18
首先你需要明确上位机的通信接口,比如是串口、网络等。根据不同的通信方式,所需的代码会有所不同。

假设你的上位机是通过串口通信的,那么你需要使用串口库来实现对串口的控制。下面是一个使用Python的`pyserial`库来实现串口通信的示例代码:

  1. import serial
  2. import time

  3. # 设置串口参数
  4. port = 'COM1'  # 根据实际情况修改串口号
  5. baudrate = 115200  # 根据实际情况修改波特率
  6. ser = serial.Serial(port, baudrate)

  7. # 循环发送数据
  8. while True:
  9.     # 修改10组数据
  10.     for i in range(10):
  11.         # 构造要发送的数据
  12.         data = bytes([i] * 8)  # 这里假设每组数据都是用相同的字节填充
  13.         
  14.         # 发送数据
  15.         ser.write(data)
  16.         print('发送数据:', data)
  17.         
  18.         time.sleep(0.01)  # 延时10ms
复制代码


你需要根据实际情况修改串口号和波特率。代码中使用了一个无限循环来间隔10ms发送10组数据。每组数据都是相同的8个字节,你可以根据需要进行修改。

这只是一个示例代码,具体实现还需要考虑其他因素,比如接收方如何处理数据,如何保证数据的完整性等等。希望对你有所帮助!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

最佳答案

查看完整内容

首先你需要明确上位机的通信接口,比如是串口、网络等。根据不同的通信方式,所需的代码会有所不同。 假设你的上位机是通过串口通信的,那么你需要使用串口库来实现对串口的控制。下面是一个使用Python的`pyserial`库来实现串口通信的示例代码: 你需要根据实际情况修改串口号和波特率。代码中使用了一个无限循环来间隔10ms发送10组数据。每组数据都是相同的8个字节,你可以根据需要进行修改。 这只是一个示例代码, ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-2-26 10:39:18 | 显示全部楼层    本楼为最佳答案   
首先你需要明确上位机的通信接口,比如是串口、网络等。根据不同的通信方式,所需的代码会有所不同。

假设你的上位机是通过串口通信的,那么你需要使用串口库来实现对串口的控制。下面是一个使用Python的`pyserial`库来实现串口通信的示例代码:

  1. import serial
  2. import time

  3. # 设置串口参数
  4. port = 'COM1'  # 根据实际情况修改串口号
  5. baudrate = 115200  # 根据实际情况修改波特率
  6. ser = serial.Serial(port, baudrate)

  7. # 循环发送数据
  8. while True:
  9.     # 修改10组数据
  10.     for i in range(10):
  11.         # 构造要发送的数据
  12.         data = bytes([i] * 8)  # 这里假设每组数据都是用相同的字节填充
  13.         
  14.         # 发送数据
  15.         ser.write(data)
  16.         print('发送数据:', data)
  17.         
  18.         time.sleep(0.01)  # 延时10ms
复制代码


你需要根据实际情况修改串口号和波特率。代码中使用了一个无限循环来间隔10ms发送10组数据。每组数据都是相同的8个字节,你可以根据需要进行修改。

这只是一个示例代码,具体实现还需要考虑其他因素,比如接收方如何处理数据,如何保证数据的完整性等等。希望对你有所帮助!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2024-2-26 10:40:11 | 显示全部楼层
需要更改的数据就是图片左上方蓝色的数据
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-2-26 10:40:28 | 显示全部楼层
silver-crow 发表于 2024-02-26 10:40
需要更改的数据就是图片左上方蓝色的数据


明白了,你需要修改的数据是图片左上方蓝色区域的数据。那么我们可以使用Python的PIL库来读取和修改图片数据。下面是一个示例代码:from PIL import Image# 打开图片并获取像素数据image = Image.open('your_image.png')pixels = image.load()# 获取蓝色区域的起始坐标和宽高x_start, y_start = 0, 0width, height = 10, 10# 循环修改蓝色区域的像素数据for y in range(y_start, y_start + height):    for x in range(x_start, x_start + width):        r, g, b = pixels[x, y]        # 修改蓝色通道的值为255        pixels[x, y] = (r, g, 255)# 保存修改后的图片image.save('modified_image.png')这段代码会打开指定的图片文件,并获取到每个像素的RGB值。然后,我们通过循环遍历指定的蓝色区域,将每个像素的蓝色通道的值修改为255。最后,将修改后的图片保存到指定的文件中。你只需要将`your_image.png`替换成你自己的图片文件名即可。希望对你有所帮助!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 05:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表