我不确定标题是否正确反映了我的问题。
我的雇主为我提供了一个用于lua的C库,它可以从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)
现在的C代码是通过循环返回每个数据,其中array_of_awesome_data[1]对应于我们现在使用的A。
lua_pushinteger(L, retData);
我该如何调整一个C实现的lua库,以允许lua函数返回数组?
注意:在我们的设备上,多次循环读取数据效率太低,因此我们需要进行一次大的读取。我不知道具体细节,但这是我被告知的。