導航:首頁 > 汽車資訊 > 什麼是汽車編程

什麼是汽車編程

發布時間:2023-02-19 19:08:14

A. 汽車如何編程

Define Class 環奇小大腳 As 舵機控制
Name = "環奇小大腳"
Procere Init()
This.COM口 = 9
This.速率 = 115200
Return DoDefault()
Endproc
Procere 定義油門曲線()
If Not DoDefault() Then
Return .F.
Endif
*-- 油門
Insert Into 油門曲線 (通道, 位置, 脈沖寬度) Values (0, -1, 1700) && 油門 - 倒車最大
Insert Into 油門曲線 (通道, 位置, 脈沖寬度) Values (0, 0, 1500) && 油門 - 中點
Insert Into 油門曲線 (通道, 位置, 脈沖寬度) Values (0, 0.05, 1450) && 油門 - 不動的
Insert Into 油門曲線 (通道, 位置, 脈沖寬度) Values (0, 1, 1350) && 油門 - 最大
*-- 方向舵
Insert Into 油門曲線 (通道, 位置, 脈沖寬度) Values (1, -1, 1450) && 方向舵 - 最左
Insert Into 油門曲線 (通道, 位置, 脈沖寬度) Values (1, 0, 1370) && 方向舵 - 中點
Insert Into 油門曲線 (通道, 位置, 脈沖寬度) Values (1, 1, 1250) && 方向舵 - 最右
Return .T.
Endproc
Enddefine

Define Class 舵機控制 As Form
Name = "舵機控制"
COM口 = 0
速率 = 115200
Procere Init()
This.定義油門曲線()
Return This.連接舵機控制板()
Endproc
Procere Destory()
*-- 釋放串口。
If Type("This.舵機控制板") = "O" Then
If This.舵機控制板.PortOpen Then
This.舵機控制板.PortOpen = .F.
Endif
Endif
Return .T.
Endproc
Procere 定義油門曲線()
*-- 創建油門曲線臨時表
Create Cursor 油門曲線 (通道 Integer, 位置 N(6, 4), 脈沖寬度 N(4))
Return .T.
Endproc
Procere 連接舵機控制板()
*-- 沒有「舵機控制板」就創建一個。
If Type("This.舵機控制板") <> "O" Then
This.AddObject("舵機控制板", "Olecontrol", "MSCommlib.MSComm")
Endif
*-- 打開串口。
If This.舵機控制板.PortOpen Then
This.舵機控制板.PortOpen = .F.
Endif
This.舵機控制板.CommPort = This.COM口
This.舵機控制板.Settings = Textmerge("<<This.速率>>,n,8,1")
If Not This.舵機控制板.PortOpen Then
This.舵機控制板.PortOpen = .T.
Endif
Return This.舵機控制板.PortOpen
Endproc
Procere 發送指令(通道, 位置)
Local 下限位置, 下限脈沖寬度, 上限位置, 上限脈沖寬度, 當前脈沖寬度, 串口指令代碼
m.下限位置 = -1
m.下限脈沖寬度 = 500
m.上限位置 = 1
m.上限脈沖寬度 = 2500
m.當前脈沖寬度 = 1500
m.串口指令代碼 = ""
*-- 1 找到當前位置最近的2個曲線值,如果找不到就取默認值 -1, 500 及 1, 2500。
*-- 2 生成指令。
*-- 3 發送給串口。
*-- 1
Select Top 1 * From 油門曲線 Where 通道 = m.通道 And 位置 = m.位置 Order By 位置 Desc Into Cursor curTemp
If Reccount("curTemp") > 0 Then
m.當前脈沖寬度 = curTemp.脈沖寬度
Else
Select Top 1 * From 油門曲線 Where 通道 = m.通道 And 位置 < m.位置 Order By 位置 Desc Into Cursor curTemp
If Reccount("curTemp") > 0 Then
m.下限位置 = curTemp.位置
m.下限脈沖寬度 = curTemp.脈沖寬度
Endif
Select Top 1 * From 油門曲線 Where 通道 = m.通道 And 位置 > m.位置 Order By 位置 Into Cursor curTemp
If Reccount("curTemp") > 0 Then
m.上限位置 = curTemp.位置
m.上限脈沖寬度 = curTemp.脈沖寬度
Endif
m.當前脈沖寬度 = Int((m.上限脈沖寬度 - m.下限脈沖寬度) / (m.上限位置 - m.下限位置) * (m.位置 - m.下限位置) + m.下限脈沖寬度)
Endif
*-- 2
m.串口指令代碼 = Textmerge("#<<m.通道>>P<<m.當前脈沖寬度>>")
Debugout m.串口指令代碼
*-- 3
This.舵機控制板.OutBufferCount = 0
This.舵機控制板.Output = 串口指令代碼 + Chr(13)
Endproc
Enddefine

閱讀全文

與什麼是汽車編程相關的資料

熱點內容
公共汽車如何免費換乘 瀏覽:264
廣州賓士gle450落地多少錢 瀏覽:857
2012年奧迪q7銷售量是多少 瀏覽:674
汽車熄滅以後聽音樂多久沒電 瀏覽:346
汽車檢測逾期多久 瀏覽:320
做饅頭的工業尿素多少錢 瀏覽:550
汽車嗶嗶嗶的聲音怎麼有英語表示 瀏覽:218
如何得知汽車目前的優惠 瀏覽:180
陽曲縣工業園區高速哪裡下車 瀏覽:550
株洲新蘆松工業園在什麼地方 瀏覽:202
汽車服務工程有什麼崗位 瀏覽:441
用於造紙紡織工業的原因是什麼 瀏覽:814
南京工業大學如何考研 瀏覽:533
2008款奧迪a46碟cd怎麼調中文 瀏覽:375
寶馬7和賓士s哪個更好 瀏覽:594
寶馬機車油箱到底能裝多少錢油 瀏覽:276
哪些工業製品出口前景廣闊 瀏覽:777
武漢寶馬3系13年二手多少錢 瀏覽:864
什麼為工業革命 瀏覽:933
國內汽車市場將會向什麼方向發展 瀏覽:685