Python呼叫CANoe官方demon的逐行解讀

2021-10-23 17:57:04 字數 2262 閱讀 4851

cano 是留有 com inte***ce 的,這樣我們可以通過第三方的程式呼叫canoe開放的api。

在c:\users\public\documents\vector\canoe\sample configurations 11.0.55\programming 這個路徑下有個官方的demon ,是通過python 呼叫的canoe .

因為指令碼 呼叫了 win32com 這個庫,如果沒有com口程式設計的經驗,這部分還是挺難懂的,下面我就結合自己的琢磨,逐行分析下**的邏輯,因為本人也學藝不精,僅供參考。

總代嗎不到200行, 兩個全域性函式,五個定義的類,從類名字可以看出這些類的用意

圖1:圖2:

下面我們逐行解讀下**:

先看class canoesync(object):def __init__(self):

class

canoesync

(object):

started =

false

stopped =

false

configpath =

""def

__init__

(self)

:)

false

# print

('loaded canoe version '

, ver.major,

'.',

ver.minor,

'.',

ver.build,

'...'

, sep='')

self.running =

lambda

: self.measurement.running

self.waitforstart =

lambda

: doeventsuntil(

lambda

: canoesync.started)

self.waitforstop =

lambda

: doeventsuntil(

lambda

: canoesync.stopped)

)

#開啟乙個canoe應用程式,沒毛病

false

# print

('loaded canoe version '

, ver.major,

'.',

ver.minor,

'.',

ver.build,

'...'

, sep='')

列印canoe的版本資訊

將區域性變數賦值給類變數,這沒毛病

self.running =

lambda

: self.measurement.running 這行**使用了匿名函式lambda ,因為匿名函式沒有輸入引數,所以相當於 `self.running = self.measurement.running`

self.waitforstart =

lambda

: doeventsuntil(

lambda

: self.started)

self.waitforstop =

lambda

: doeventsuntil(

lambda

: self.stopped)

相當於

def

waitforstart()

: doeventsuntil(self.started)

defwaitforstop()

: doeventsuntil(self.stopped)

#靜態事件的繫結,具體不清楚

python官方 Python官方中文文件強勢來襲

python 官方支援的文件一直沒有中文。小夥伴們已經習慣了原汁原味的英文文件,但如果有官方中文文件,對於初學者來說,門檻會大大的降低。現在中文文件強勢來襲 以前也是有一些第三方維護的 python 中文文件,不過可能因為人力等限制,並做不到同步更新與維護。目前也有很多高質量的 python 中文資...

python呼叫其他程式 python呼叫其他程式

在python中可以方便地使用os模組執行其他的指令碼或者程式,這樣就可以在指令碼中直接使用其他指令碼,或者程式提供的功能,而不必再次編寫實現該功能的 為了更好地控制執行的程序,可以使用win32process模組中的函式。如果想進一步控制程序,則可以使用ctype模組,直接呼叫kernel32.d...

python呼叫所有函式 python 呼叫函式

python內建了很多有用的函式,我們可以直接呼叫。也可以在互動式命令列通過help abs 檢視abs函式的幫助資訊。呼叫abs函式 abs 100 abs 20 abs 12.34 12.34 呼叫函式的時候,如果傳入的引數數量不對,會報typeerror的錯誤,並且python會明確地告訴你 ...