Меню

+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
Страницы 1
Со структурой всё получилось, теперь другая проблема. При чтении данных получается такой набор из 4х точек АЦП и 4х преобразованных данных
[1851459842, 1851132162, 1851263234, 1851328770]
[3.4068190701345156, 3.4067121611810034, 3.4067549247624083, 3.4067763065531107]
[1851197698, 1851132162, 1851197762, 1851328770]
[3.406733542971706, 3.4067121611810034, 3.406733542971706, 3.4067763065531107]
[1851394306, 1851328770, 1851459842, 1851459842]
[3.406797688343813, 3.4067763065531107, 3.4068190701345156, 3.4068190701345156]
[1851328770, 1851001090, 1851263234, 1851132162]
[3.4067763065531107, 3.4066693975995985, 3.4067549247624083, 3.4067121611810034]
При изменении сигнала на генераторе данные не обновляются, считанные значения плавают около прошлого сигнала, в чем может быть проблема?
fun start() {
var size = 4
val tmarkArr = IntArray(size)
val startTime = System.currentTimeMillis()
val srcArr = IntArray(size)
val dataArr = DoubleArray(size)
var i = 0
val timer = System.nanoTime()
isStart = true
val ltrData = LTR24DATA_SRC()
val flags = 0x00000001 or 0x00000002 or 0x00000100
while (isStart) {
ltr24.LTR24_Recv(tltr, srcArr, null, size, 2000).toULong()
println(srcArr.toList())
ltr24.LTR24_ProcessData(tltr, srcArr, dataArr, IntArray(1) {size}, flags, null)
println(dataArr.toList())
sleep(200)
}
}
fun LTR24_Recv(handler: TLTR24, src: IntArray, tmark: IntArray?, size: Int, timeout: Int): Long
fun LTR24_ProcessData(
handle: TLTR24,
src: IntArray,
data: DoubleArray,
size: IntArray,
flags: Int,
value: Int?
): Long
Еще непонятно почему с src: Int, вылетает ошибка Invalid Memory Access, получается только с size: IntArray
Здравствуйте! Потерял всю надежду разобраться самому. Имеется программа на языке Kotlin(JVM) с использованием JNA. Не получается никак подобрать размеры полей в структуре (с модулем LTR212 всё получилось).
Исходный код https://www.lcard.ru/forums/img/members … roller.zip
Подключается без ошибок, запускает сбор данных, но выдает все нули
Правильно ли я понимаю что т.к. pack = 4, минимальный размер поля должен быть 4 байта?
Также в руководстве у некоторых полей структуры указано "не используется в LTR24-1", это значит полей нет или просто их нельзя использовать?
В ответе в поле текущей частоты выдает 5.38678236E-315 после запуска сбора, в run стоит 1, а в MODULE_INFO поле name получается сдвинуто.
Вывод структуры после начала сбора
TLTR24(auto-allocated@0x21caf555360 (2648 bytes)) {
int size@0x0=0x0A4C
CrateController$TLTR channel@0x4=CrateController$TLTR(allocated@0x21caf555364 (40 bytes) (shared from auto-allocated@0x21caf555360 (2648 bytes))) {
int saddr@0x0=0x7F000001
short sport@0x4=0x2B67
byte csn[16]@0x6=[B@28253f3f
short cc@0x16=0x0A
int flags@0x18=0x0000
int tmark@0x1C=0x0000
byte internal[8]@0x20=[B@7a8c0246
}
int run@0x2C=0x0001
int adcFreqCode@0x30=0x0000
double adcFreq@0x38=5.38678236E-315
int dataFmt@0x40=0x0000
int iSrcValue@0x44=0x0000
int testMode@0x48=0x0000
byte reserved[64]@0x4C=[B@65cede3d
TLTR24_CHANNEL_CONFIG channelMode[4]@0x8C=[Lru.avem.sum.communication.model.devices.crate.ltr24.TLTR24_CHANNEL_CONFIG;@1a117739
TLTR24_MODULE_INFO moduleInfo@0x110=TLTR24_MODULE_INFO(allocated@0x21caf555470 (1248 bytes) (shared from auto-allocated@0x21caf555360 (2648 bytes))) {
byte name[8]@0x0=[B@5f6f75e2
byte serial[16]@0x8=[B@72acd004
int verPld@0x18=0x0000
int supportICP@0x1C=0x0000
int supportedFeature@0x20=0x0000
byte reserved[28]@0x24=[B@6180c75a
TLTR24_CBR_COEF calibrCoef[128]@0x40=[Lru.avem.sum.communication.model.devices.crate.ltr24.TLTR24_CBR_COEF;@70b9ccec
TLTR24_AFC_COEFS afcCoef@0x440=TLTR24_AFC_COEFS(allocated@0x21caf5558b0 (96 bytes) (shared from allocated@0x21caf555470 (1248 bytes) (shared from auto-allocated@0x21caf555360 (2648 bytes)))) {
double AfcFreq@0x0=-2.6371966416206467E256
double FirCoef[8]@0x8=[D@40e5b103
TLTR24_AFC_IIR_COEF AfcIirCoef@0x48=TLTR24_AFC_IIR_COEF(allocated@0x21caf5558f8 (24 bytes) (shared from allocated@0x21caf5558b0 (96 bytes) (shared from allocated@0x21caf555470 (1248 bytes) (shared from auto-allocated@0x21caf555360 (2648 bytes))))) {
double a0@0x0=-1.874954124382162E-121
double a1@0x8=-1.0295114946947458E-86
double b0@0x10=5.307217155E-315
}
}
double iSrcVals[8]@0x4A0=[D@27b80452
}
TLTR24_CBR_COEF calibrCoef[128]@0x5F0=[Lru.avem.sum.communication.model.devices.crate.ltr24.TLTR24_CBR_COEF;@19d872e5
TLTR24_AFC_COEFS afcCoef@0x9F0=TLTR24_AFC_COEFS(allocated@0x21caf555d50 (96 bytes) (shared from auto-allocated@0x21caf555360 (2648 bytes))) {
double AfcFreq@0x0=-2.6371966416206467E256
double FirCoef[8]@0x8=[D@26018025
TLTR24_AFC_IIR_COEF AfcIirCoef@0x48=TLTR24_AFC_IIR_COEF(allocated@0x21caf555d98 (24 bytes) (shared from allocated@0x21caf555d50 (96 bytes) (shared from auto-allocated@0x21caf555360 (2648 bytes)))) {
double a0@0x0=-1.874954124382162E-121
double a1@0x8=-1.0489484601335526E-91
double b0@0x10=2.67E-321
}
}
Pointer internal@0xA50=null
}
В общем надеюсь на какую-либо помощь
Здравствуйте, проблема с двумя модулями LTR27(с разными мезонинами). При вызове функции LTR27_GetConfig() возвращает -48 (Ошибка четности в принятом ответе на команду)
Также через LGraph 2 не видит оба модуля(ltr212 обнаруживает и работает с ними)
При попытке работы через LCard Measurement Studio также выдает ошибку -48 (Ошибка четности в принятом ответе на команду)
Крейт LTR-EU-8/16 версия прошивки 3.0.0.13 ревизия 2
Страницы 1
Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4
Многоканальный телефон:+7 (495) 785-95-25
Письма и запросы: lcard@lcard.ru
Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru
Время работы: с 9-00 до 19-00 мск