我不確定標題是否正確地反映了我的問題。Lua庫 - 從C返回一個數組在lua中
我有一個圖書館爲Lua實施了lua,由我的僱主提供給我。 他們有它讀了一堆數據出來Modbus設備的這樣:
readFunc(Address, numReads)
將地址開始讀numRead寄存器的數量。目前,此方法返回下列方式數據:
A, B, C, D = readFunc(1234, 4)
但是,我們需要做的32+同時讀取我們的一些功能,我真的不希望有REPLY1,REPLY2 ... reply32 +上市在我的代碼中,每次我這樣做。 理想情況下,我想這樣做:
array_of_awesome_data = {}
array_of_awesome_data = readFunc(1234, 32)
其中array_of_awesome_data [1]將對應到A,我們現在做的方式。
lua_pushinteger(L, retData);
我如何去調整C語言實現LUA庫允許LUA函數返回一個數組: 在當前的C代碼,我得到了,每個數據是在一個循環回來了?
注意:多次讀取的循環在我們的設備上效率太低,因此我們需要執行1次大的讀取。我不知道足夠的細節來證明爲什麼,但這是我被告知的。
這是一個絕妙的主意,不涉及更改API。我沒有想到,但它應該做我所需要的。我會讓你知道的,謝謝! :) 爲了知識,你知道在C實現中是否有辦法做到這一點? – Sambardo
@Sambardo:更新了C中的選項。希望有所幫助。 – BMitch
你也可以只做'{readFunc(1234,32)}'。 –