[Development] [qtserialbus]PeakCAN plugin support for macOS

Miklos Marton martonmiklosqdev at gmail.com
Wed Jul 4 22:11:16 CEST 2018


Hello all,

We are using the qtserialbus for developing some internal tools 
communicating with devices via PEAK CAN adapters and there were some 
interest of getting it working on macOS.

The PEAK Systems does not offer official API for their products on MAC, 
however there is a 3rd party developer who builds an API which is 
--nearly-- compatible with the pcanbasic API:

http://www.mac-can.com/

I would like to raise some discussion on them before submitting a patch.

- Are there any interest of upstreaming such a patch?

I have came over the following issues with getting it working on MAC:

- The library named differently (PCBUSB vs. pcanbasic). This issue can 
be easily resolved by a simple ifdefs. I have consulted with the author 
an he said he is not planning to change the name to pcanbasic (since it 
is a different library).

- The official pcanbasic API uses some non fixed sized types (DWORD, 
long etc.) and the same types were used in the PCBUSB too. The ID fields 
of the CAN messages (and another data fields int the API) defined as 
DWORD which is unsigned long in the PCBUSB headers. This type is 
compiled to 64 bit wide integer on 64 bit macOS 
<https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/64bitPorting/transition/transition.html>, 
while in the peakcan_symbols_p.h 
<https://github.com/qt/qtserialbus/blob/5.11/src/plugins/canbus/peakcan/peakcan_symbols_p.h#L251> 
it is defined as a quint32. This could be also workarounded by some ifdefs.

Thank you for your feedback in advance!

-- 
Best regards,
Miklos Marton

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20180704/ceb86f80/attachment.html>


More information about the Development mailing list