Java + SWIG Как получить доступ к элементам массива в структуре? - PullRequest
1 голос
/ 22 мая 2019

Попытка передать структуру C в и из Java. Все работает, за исключением того, что я не могу понять, как читать и записывать элементы массива внутри структуры. Я читал про карту типов членов, но уверен, что все еще не правильно ее использую. Мой файл модуля выглядит так:

%include "typemaps.i"

%typemap(memberin) uint8_t [8] {
  int i;
  for (i = 0; i < 8; i++) {
    $1[i] = $input[i];
  }
}

typedef struct
{
   uint8_t myarray[8];
   int myvar;
} MyStruct;

В Java я надеялся, что смогу использовать сгенерированный объект MyArray следующим образом:

MyStruct s = new MyStruct();
SWIGTYPE_p_uint8_t[] myarray = s.getMyarray();
s.setMyarray(myarray);

Но вместо этого сгенерированный getMyarray () возвращает SWIGTYPE_p_uint8_t, а не его массив. То же самое относится к аргументу s.setMyArray.

Может кто-нибудь помочь, пожалуйста?

...