|
看下我的需求:
用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只能生成一個框架,給你一個建議,需要修改的地方太多了。
而且還時不時的告訴你,服務器忙,請重試。 |
|