<HTML><BODY><div><div>Dear Manuel,</div><div> </div><div>I have created the <a href="https://invent.kde.org/frameworks/bluez-qt/-/merge_requests/13">merge request</a> for BluezQt with Gatt client functionality.</div><div> </div><div>Now, I understand it is quite large in size, there are 3 new classes (GattServiceRemote, GattCharacteristicRemote, and GattDescriptorRemote). These are organised in the same manner as adapters and devices, in a tree in form adapter → device → service → characteristic → descriptor.</div><div> </div><div>I haven’t made any autotests for those new classes, but they work fine in our project for a while now. All existing tests do not fail.</div><div> </div><div>Please let me know if I should correct something, or add auto-tests for this request, or do something else,</div><div>BRs,</div><div>Ivan Podkurkov<br> </div><blockquote style="border-left:1px solid #0857A6; margin:10px; padding:0 0 0 10px;">Вторник, 13 июля 2021, 16:25 +03:00 от Иван Подкурков <podkiva@mail.ru>:<br> <div id=""><div class="js-helper js-readmsg-msg"><div><div id="style_16261827040858550776_BODY"><div class="cl_446203"><div><div>Dear Manuel,</div><div> </div><div>I have contacted you regarding the addition of Gatt client classes to BluezQt (almost 2 years ago now, time moves fast). I have checked the current sources of BluezQt, and so far I don’t see Gatt client API’s, although they are supported by Bluez Dbus apis.</div><div> </div><div>Long time ago I have added my own classes to implement this functionality to Bluez-Qt, and now I would like to contribute it to the Bluez-Qt. Can you please advice me on how to proceed with this? Should I create another branch and make merge request in the Bluez-Qt repo or are there any additional procedures?</div><div> </div><div>BRs,</div><div>Ivan Podkurkov<br> </div><div class="mail-quote-collapse"><blockquote style="border-left:1px solid #0857A6;margin:10px;padding:0 0 0 10px;"><span>Понедельник, 26 августа 2019, 10:26 +03:00 от Иван Подкурков <<a href="/compose?To=podkiva@mail.ru">podkiva@mail.ru</a>>:<br> </span><div><div id=""><div class="js-helper_mr_css_attr js-readmsg-msg_mr_css_attr"><div><div id="style_15668043790490263692_BODY_mr_css_attr"><div class="cl_198455_mr_css_attr">Hi,<br><br>Thanks a lot for response,<br><br><em>However, Qt also provides a BluettothLE API which should work just fine (in client mode).</em><br><br>That is very true, but it looks that they don't have any control over pairing process - there are no API to provide "custom Agent" to it<span> (there are in BluezQt though). It might be that I have missed something in their API but so far I haven't saw a way to do that, while I require some custom pairing procedure to be implemented. I asked <a href="https://forum.qt.io/topic/95622/provide-pin-to-qt-bluetooth/3" target="_blank">question</a> about this on Qt Forum, but haven't got any sensible answer.</span><br> <div><em>the GATT client API is not fully implemented (nor tested). Unfortunately, i do not plan to implement this soon.</em></div><br>Ok, I see. So, I ended up modifying BluezQt sources with that functionality, adding my own classes for reading/writing/notifying GATT Characteristics (called those GattServiceRemote and GattCharacteristicRemote for now). I have done it a while ago (~8-12 months), and on this week I merged updates from BluezQt main repo (at least it compiles).<br><br>I am wondering if it is possible to make those modifications to the main repo? I am not really experiences with how exactly open source development works and whether I can push some changes at all, besides it is highly probably requires reviewing, although I tried to follow the code style as much as I could.<br><br>Please let me know if I can contribute, and I would appreciate any hints on where to start,<br>Best Regards,<br>Ivan Podkurkov<br> <div class="mail-quote-collapse"><blockquote style="border-left: 1px solid #0857A6;margin: 10px;padding: 0 0 0 10px;"><span><span>Понедельник, 26 августа 2019, 0:11 +03:00 от Manuel Weichselbaumer <<a>mincequi@web.de</a>>:</span><br> </span><div><div><div id=""><div class="js-helper_mr_css_attr js-readmsg-msg_mr_css_attr"><div><div id="style_15667675090412958380_BODY_mr_css_attr"><div class="class_1566825038_mr_css_attr"><div style="font-family:Verdana; font-size:12.0px"><div>Hi,</div><div> </div><div>the GATT client API is not fully implemented (nor tested). Unfortunately, i do not plan to implement this soon.</div><div> </div><div>However, Qt also provides a BluettothLE API which should work just fine (in client mode).</div><div> </div><div>Best regards,</div><div>Manuel Weichselbaumer</div><div> <div style="-webkit-line-break:after-white-space; -webkit-nbsp-mode:space; border-left:2px solid #c3d9e5; margin-bottom:5px; margin-left:10px; margin-right:5px; margin-top:10px; padding:10px 0 10px 10px; word-wrap:break-word"><div style="margin-bottom:10px; margin-left:10px; margin-right:10px; margin-top:10px"><strong>Gesendet:</strong> Freitag, 23. August 2019 um 19:18 Uhr<br><strong>Von:</strong> "Иван Подкурков" <<a href="https://e.mail.ru/compose?To=podkiva@mail.ru" target="_blank">podkiva@mail.ru</a>><br><strong>An:</strong> kde-frameworks-devel@kde.org<br><strong>Cc:</strong> Manuel.Weichselbaumer@bmw.de, <a href="https://e.mail.ru/compose?To=mincequi@web.de" target="_blank">mincequi@web.de</a><br><strong>Betreff:</strong> BluezQt GATT client API</div><div>Hello,<br><br>I have a question regarding <a href="https://api.kde.org/frameworks/bluez-qt/html/index.html" target="_blank">BluezQt</a> library.<br><br>In recent <a href="https://cgit.kde.org/bluez-qt.git/commit/?id=1a5660ab1547236c7bc0f883bbbb039889489a22" target="_blank">commits</a> I see that the functionality for Bluetooth Low Energy (GATT) was added, but I don't see the way to act as a client, i.e. to read GATT characteristics from other devices.<br><br>There is one test called <a href="https://cgit.kde.org/bluez-qt.git/tree/tests/leserver.cpp?id=1a5660ab1547236c7bc0f883bbbb039889489a22" target="_blank">leserver.cpp</a> / <a href="https://cgit.kde.org/bluez-qt.git/tree/tests/devicereceiver.h?id=1a5660ab1547236c7bc0f883bbbb039889489a22" target="_blank">leserver.h</a> which demonstrates the way to act as a GATT server for other Low Energy devices, but not other way around.<br><br>Is Low Energy GATT client API not supported yet, or am I missing something among the API?<br><br>Best Regards,<br>Ivan Podkurkov</div></div></div></div></div></div></div></div></div></div></div></blockquote></div></div></div></div></div></div></div></blockquote></div> <div> </div><div data-signature-widget="container"><div data-signature-widget="content"><div>С уважением,<br>Иван Подкурков</div></div></div><div> </div></div></div></div></div></div></div></blockquote> <div> </div><div data-signature-widget="container"><div data-signature-widget="content"><div>С уважением,<br>Иван Подкурков</div></div></div><div> </div></div></BODY></HTML>