|
发表于 2025-2-12 16:28:52
|
显示全部楼层
看下我的需求:
用python编写一个程序,主要功能要求如下:
生成一个600*1000窗体,窗体左上角上有一个主按钮,按钮上显示PRO,按下该按钮后,主按钮消失,纵向出现15个按钮,按钮上分别显示以下字样:
Accel max speed
Accel min speed
Decel high speed
Decel low speed
返回主界面
在窗体右侧距离窗体右侧大概10mm的位置上,以及距离顶部200的位置上纵向排列三个按钮,上面的按钮上显示+号,中间的按钮上显示-号,这两个按钮是固定的,不会受到左侧按钮的影响。下面的按钮上显示“返回”字样。右上方用text文本显示RxD+发送的HEX数据,回车,然后显示TxD+接收的数据加上回车。超过text控件长度后向下滚动。text控件距离右上角顶部距离为10,右侧距离为10,宽度为200,高度为100。
在启动窗体时,执行以下操作:
1、定义一个数组data_base[],存储返回的hex格式的参数,两列,300行,初始数值都为00 00 00,第一列存储发送的参数查询代码,以01开头,第二列存储返回的参数,以2A开头,
2、打开串口com8,波特率设置为9600,校验位设置为1位,启动窗体后接收hex数据为00,然后向串口发送hex数据FE FE FE FF FE FF,间隔100ms发送以下hex数据:
F0
F4
F4
24
当返回的数据为AA时,发送00 00 00 00 00 00 00
当返回的数据为2A 12 0C 00 00 00 00 00 1E时,发送03 00 36 00 00 00 39,
当返回的数据为2A 01 05 31 32 31 32 50 2D 32 35 30 32 00 00 30 36 30 34 37 39 00 00 47 65 6E 65 72 69 63 00 00 00 00 00 00 00 00 00 00 02 00 36 00 02 00 02 08 59 00 05 00 48 06 F3 07 EC 时;发送03 08 59 00 3A 00 9E,然后间隔100ms发送03 00 05 08 93 00 A3,如果返回数据为2A 00 00 00 00 00 00 00时,发送03 00 48 08 98 00 EB;然后收到2A 00 01 31 01 32 00 01 33 01 34 00 01 35 01 36 00 01 37 01 38 00 01 23 01 22 00 01 25 01 24 00 01 27 01 26 00 01 29 01 28 00 01 41 01 43 00 01 4A 01 4B 01 01 2D 01 2C 01 01 2C 01 2F 01 01 2C 01 30 01 01 2F 01 2E 05 76 05 F1时,开始发送以01开头的参数查询代码,并记录返回的参数,依次保存在数组dada_base[]中,例如在开始查询01 00 01 01 31 00 34的参数时,将01 00 01 01 31 00 34保存在dada_base[0,0]中,返回的数值为2A 02 00 02,去掉前面的2A,将该参数保存在dada_base[0,1]中,然后以100ms的速度依次发送以下查询参数,并将对应返回的数值保存在数组中:
01 00 01 01 36 00 39
01 00 01 01 33 00 36
01 00 01 01 34 00 37
01 00 01 01 37 00 3A
01 00 01 01 38 00 3B
01 00 01 01 39 00 3C
当发送了最后一个01 00 01 01 00 00 03时,以300ms的频率循环发送24,接收数据为AA;此为主循环
按下Accel max speed 按钮后,主循环中断,在中心位置出现一个进度条,起点数据为0.2,终点数据为8.0,进度条位置为查询data_base数组中第1列中01 00 01 01 31 00 34对应的数组索引号i,记录当前的数组索引号i,计算data_base[i,1]中的数据在02 00 00和79 00 79 这两个数据之间的位置百分比,然后显示在进度条上。
按下+按钮,发送代码02 00 01 01 31 00 35,接收到返回的代码为2A,然后发送的代码为data_base[i,1]的第2位+1,第6位+1的hex参数,例如查询得到的代码是02 00 02,则按下+按钮后收到2A时发送03 00 03,返回的数据为2E,然后发送数据01 00 01 01 31 00 34,找到对应的数组索引,并将返回的数据前面的2A删除后写入data_base[i,1],进度条当前显示的数据以0.1为单位增加,增加到8后不再增加。
按下-按钮,发送代码02 00 01 01 31 00 35,接收到返回的代码为2A,然后发送的代码为data_base[i,1]的第2位-1,第6位-1的hex参数,例如查询得到的代码是05 00 05,则按下-按钮后收到2A时发送04 00 04,返回的数据为2E,然后发送数据01 00 01 01 31 00 34,找到对应的数组索引,并将返回的数据前面的2A删除后写入data_base[i,1],进度条当前显示的数据以0.1为单位减少,减少到0.2后不再增加。
点击“返回主界面”按钮时,进度条消失,其他按钮消失,窗体进入启动时的初始化状态。
=============================================================================
以上功能要求,三种AI写的程序基本上都不能正常运行,窗体是生成了,但是效果很差,当然,这个功能要求叙述的也有问题,很多地方不是很专业。总的看来,完全替代很难,AI只能生成一个框架,给你一个建议,需要修改的地方太多了。
而且还时不时的告诉你,服务器忙,请重试。 |
|