Я не уверен, правильно ли заголовок отражает мой вопрос.
У меня есть библиотека, реализованная на C для lua, предоставленная мне моим работодатель. У них есть это чтение кучи данных из устройства Modbus, такое что:
readFunc(Address, numReads)
будет начинаться с адреса и читать количество регистров numRead. В настоящее время это возвращает данные следующим образом:
A, B, C, D = readFunc(1234, 4)
Однако нам нужно выполнять 32+ чтения за раз для некоторых наших функций, и я действительно не хочу, чтобы в моем коде каждый раз указывались reply1, reply2 ... раз я сделаю это. В идеале я хотел бы сделать что-то вроде:
array_of_awesome_data = {}
array_of_awesome_data = readFunc(1234, 32)
где array_of_awesome_data [1] будет соответствовать A в том виде, как мы это делаем сейчас. В текущем коде C, который мне был дан, все данные возвращаются в цикле:
lua_pushinteger(L, retData);
Как мне настроить библиотеку lua, реализованную на C, чтобы функция lua могла возвращать массив?
Примечание: цикл из нескольких reads слишком неэффективен на нашем устройстве, поэтому нам нужно выполнить 1 большое чтение. Я не знаю достаточно подробностей, чтобы объяснить почему, но мне сказали именно это.