|
看下我的需求:
用python編寫一個程序,主要功能要求如下:
生成一個600*1000窗體,窗體左上角上有一個主按鈕,按鈕上顯示PRO,按下該按鈕后,主按鈕消失,縱向出現(xiàn)15個按鈕,按鈕上分別顯示以下字樣:
Accel max speed
Accel min speed
Decel high speed
Decel low speed
返回主界面
在窗體右側(cè)距離窗體右側(cè)大概10mm的位置上,以及距離頂部200的位置上縱向排列三個按鈕,上面的按鈕上顯示+號,中間的按鈕上顯示-號,這兩個按鈕是固定的,不會受到左側(cè)按鈕的影響。下面的按鈕上顯示“返回”字樣。右上方用text文本顯示RxD+發(fā)送的HEX數(shù)據(jù),回車,然后顯示TxD+接收的數(shù)據(jù)加上回車。超過text控件長度后向下滾動。text控件距離右上角頂部距離為10,右側(cè)距離為10,寬度為200,高度為100。
在啟動窗體時,執(zhí)行以下操作:
1、定義一個數(shù)組data_base[],存儲返回的hex格式的參數(shù),兩列,300行,初始數(shù)值都為00 00 00,第一列存儲發(fā)送的參數(shù)查詢代碼,以01開頭,第二列存儲返回的參數(shù),以2A開頭,
2、打開串口com8,波特率設(shè)置為9600,校驗位設(shè)置為1位,啟動窗體后接收hex數(shù)據(jù)為00,然后向串口發(fā)送hex數(shù)據(jù)FE FE FE FF FE FF,間隔100ms發(fā)送以下hex數(shù)據(jù):
F0
F4
F4
24
當返回的數(shù)據(jù)為AA時,發(fā)送00 00 00 00 00 00 00
當返回的數(shù)據(jù)為2A 12 0C 00 00 00 00 00 1E時,發(fā)送03 00 36 00 00 00 39,
當返回的數(shù)據(jù)為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 時;發(fā)送03 08 59 00 3A 00 9E,然后間隔100ms發(fā)送03 00 05 08 93 00 A3,如果返回數(shù)據(jù)為2A 00 00 00 00 00 00 00時,發(fā)送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時,開始發(fā)送以01開頭的參數(shù)查詢代碼,并記錄返回的參數(shù),依次保存在數(shù)組dada_base[]中,例如在開始查詢01 00 01 01 31 00 34的參數(shù)時,將01 00 01 01 31 00 34保存在dada_base[0,0]中,返回的數(shù)值為2A 02 00 02,去掉前面的2A,將該參數(shù)保存在dada_base[0,1]中,然后以100ms的速度依次發(fā)送以下查詢參數(shù),并將對應(yīng)返回的數(shù)值保存在數(shù)組中:
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
當發(fā)送了最后一個01 00 01 01 00 00 03時,以300ms的頻率循環(huán)發(fā)送24,接收數(shù)據(jù)為AA;此為主循環(huán)
按下Accel max speed 按鈕后,主循環(huán)中斷,在中心位置出現(xiàn)一個進度條,起點數(shù)據(jù)為0.2,終點數(shù)據(jù)為8.0,進度條位置為查詢data_base數(shù)組中第1列中01 00 01 01 31 00 34對應(yīng)的數(shù)組索引號i,記錄當前的數(shù)組索引號i,計算data_base[i,1]中的數(shù)據(jù)在02 00 00和79 00 79 這兩個數(shù)據(jù)之間的位置百分比,然后顯示在進度條上。
按下+按鈕,發(fā)送代碼02 00 01 01 31 00 35,接收到返回的代碼為2A,然后發(fā)送的代碼為data_base[i,1]的第2位+1,第6位+1的hex參數(shù),例如查詢得到的代碼是02 00 02,則按下+按鈕后收到2A時發(fā)送03 00 03,返回的數(shù)據(jù)為2E,然后發(fā)送數(shù)據(jù)01 00 01 01 31 00 34,找到對應(yīng)的數(shù)組索引,并將返回的數(shù)據(jù)前面的2A刪除后寫入data_base[i,1],進度條當前顯示的數(shù)據(jù)以0.1為單位增加,增加到8后不再增加。
按下-按鈕,發(fā)送代碼02 00 01 01 31 00 35,接收到返回的代碼為2A,然后發(fā)送的代碼為data_base[i,1]的第2位-1,第6位-1的hex參數(shù),例如查詢得到的代碼是05 00 05,則按下-按鈕后收到2A時發(fā)送04 00 04,返回的數(shù)據(jù)為2E,然后發(fā)送數(shù)據(jù)01 00 01 01 31 00 34,找到對應(yīng)的數(shù)組索引,并將返回的數(shù)據(jù)前面的2A刪除后寫入data_base[i,1],進度條當前顯示的數(shù)據(jù)以0.1為單位減少,減少到0.2后不再增加。
點擊“返回主界面”按鈕時,進度條消失,其他按鈕消失,窗體進入啟動時的初始化狀態(tài)。
=============================================================================
以上功能要求,三種AI寫的程序基本上都不能正常運行,窗體是生成了,但是效果很差,當然,這個功能要求敘述的也有問題,很多地方不是很專業(yè)。總的看來,完全替代很難,AI只能生成一個框架,給你一個建議,需要修改的地方太多了。
而且還時不時的告訴你,服務(wù)器忙,請重試。 |
|