silver-crow 发表于 2024-2-26 10:39:17

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

请求各位大佬帮忙,需要在下面图片的上位机上间隔10ms发送10条修改过的数据,由于人手动更改的时间要远超10ms,所以考虑用代码实现,但是目前理不清思路,所以来求助,感谢!!!

具体需求如下:
1.间隔10ms更改发送窗口的10组数据并且点击每一条数据的发送按钮完成数据下发
2.10组数据的变化只要将8个字节的数据改变即可,没有特定的要求

FishC 发表于 2024-2-26 10:39:18

首先你需要明确上位机的通信接口,比如是串口、网络等。根据不同的通信方式,所需的代码会有所不同。

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

import serial
import time

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

# 循环发送数据
while True:
    # 修改10组数据
    for i in range(10):
      # 构造要发送的数据
      data = bytes( * 8)# 这里假设每组数据都是用相同的字节填充
      
      # 发送数据
      ser.write(data)
      print('发送数据:', data)
      
      time.sleep(0.01)# 延时10ms

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

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

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

silver-crow 发表于 2024-2-26 10:40:11

需要更改的数据就是图片左上方蓝色的数据

FishC 发表于 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      # 修改蓝色通道的值为255      pixels = (r, g, 255)# 保存修改后的图片image.save('modified_image.png')这段代码会打开指定的图片文件,并获取到每个像素的RGB值。然后,我们通过循环遍历指定的蓝色区域,将每个像素的蓝色通道的值修改为255。最后,将修改后的图片保存到指定的文件中。你只需要将`your_image.png`替换成你自己的图片文件名即可。希望对你有所帮助!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 如何写一个文件可以实现对目标上位机的控制