Меню

+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
Страницы 1
|
||||
|
LTR24-1 работа с ltr24apiЗдравствуйте! Потерял всю надежду разобраться самому. Имеется программа на языке Kotlin(JVM) с использованием JNA. Не получается никак подобрать размеры полей в структуре (с модулем LTR212 всё получилось). TLTR24(auto-allocated@0x21caf555360 (2648 bytes)) { |
|||
|
||||
|
Re: LTR24-1 работа с ltr24apiЗдравствуйте.
Не совсем так, правильнее каждое поле от начала структуры выравнено на минимум между своим размером и 4 (т.е. байтовое располагается подряд, WORD всегда выравнен на 2 байта от начала структуры, DWORD/INT/float/double выравнены на 4 байта) Также нужно учесть, что размер BOOL 4 байта, а размер BOOLEAN - 1 байт. Размер указателя зависит от используемой разрядности компилятора/виртуальной машины (4 или 8 байт). Если в языке есть способ узнать размер полученной структуры (по аналогии с sizeof в C), то правильность вы всегда можете проверить, сравнив размер, полученный в вашем языке аналогом sizeof, с размером, который будет в поле Size после вызова LTR24_Init |
|||
|
||||
|
Re: LTR24-1 работа с ltr24apiСо структурой всё получилось, теперь другая проблема. При чтении данных получается такой набор из 4х точек АЦП и 4х преобразованных данных [1851459842, 1851132162, 1851263234, 1851328770] fun start() { fun LTR24_Recv(handler: TLTR24, src: IntArray, tmark: IntArray?, size: Int, timeout: Int): Long fun LTR24_ProcessData( |
Страницы 1