Hello all,
I have a ICSMINI 2 box from iseg am trying to interface to via the HAL services utilities using HAL service libraries from iseg, I was able to recompiled for my system.
So far I tried to connect to the box using the provided example and it worked.
However I tried the epics module from florian
https://github.com/ffeldbauer/devIsegHal, so i could disable the embedded IOC and run mine outside.
I was able to compiled the module and get the IOC connected to the box. However I’m having two main issues.
1 - error at record initialization for AO record
ISEG:7200081:0:32:VoltageRampSpeed: Error while reading item property '0.32.VoltageRampSpeed' (Q: 000)
recGblRecordError: ao: init_record Error (514,11) PV: ISEG:7200081:0:32:VoltageRampSpeed ( is this a result from the above? Then sorting out the above should clear this error)
it’s strange because only AO return this error.
I read on the deviseghal GitHub page that AO record were added to the polling thread that also handle I/O interrupt.
I wonder why that would be?
This excerpt is from the page
“It is possible that control parameters change during operation. For example, if a trip occurs the corresponding setON bit in the channel control register will be set to 0.
These changes are monitored by devIsegHal through a polling thread. Each output record (except for stringout records) is automatically registered to this thread and their values are checked for updates on
the isegHAL.
If a value has changed the VAL field and timestamp of the record will be set to the new values”
I’m a bit confused why output record would need that.
2- Qt Socket Library return this warning “QSocketNotifier: Socket notifiers cannot be enabled or disabled from another thread", it seems the IOC starts several threads to read/write information to the iseg
system.
One can trace this issues till the writeReadSynchronous method within the isegHal-service library. I used QT5 to compile the library.
Can the device support protect against this or should iseg update their code to handle multi thread access to the socket?
Regards,
Yann