mirror of
https://github.com/intrepidcs/libicsneo.git
synced 2026-11-04 12:59:07 +01:00
Bindings: Python: Add ISO-TP
This commit is contained in:
committed by
Kyle Schwarz
parent
1d3039775d
commit
4db27aa187
@@ -26,6 +26,7 @@ pybind11_add_module(icsneopy
|
||||
icsneopy/communication/message/message.cpp
|
||||
icsneopy/communication/message/canmessage.cpp
|
||||
icsneopy/communication/message/canerrormessage.cpp
|
||||
icsneopy/communication/message/iso15765message.cpp
|
||||
icsneopy/communication/message/ethernetmessage.cpp
|
||||
icsneopy/communication/message/linmessage.cpp
|
||||
icsneopy/communication/message/tc10statusmessage.cpp
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
#include <pybind11/pybind11.h>
|
||||
#include <pybind11/stl.h>
|
||||
|
||||
#include "icsneo/communication/message/iso15765message.h"
|
||||
|
||||
namespace icsneo {
|
||||
|
||||
void init_iso15765message(pybind11::module_& m) {
|
||||
auto args = pybind11::classh<Iso15765MessageArgs>(m, "Iso15765MessageArgs");
|
||||
|
||||
pybind11::classh<Iso15765MessageArgs::ArbId>(args, "ArbId")
|
||||
.def(pybind11::init<uint32_t, bool>(), pybind11::arg("id") = 0, pybind11::arg("is_29bit") = false)
|
||||
.def_readwrite("id", &Iso15765MessageArgs::ArbId::Id)
|
||||
.def_readwrite("is_29bit", &Iso15765MessageArgs::ArbId::Is29Bit);
|
||||
|
||||
args.def(pybind11::init<>())
|
||||
.def_property("tx_index", &Iso15765MessageArgs::getTxIndex, &Iso15765MessageArgs::setTxIndex)
|
||||
.def_property("arb_id",
|
||||
[](Iso15765MessageArgs& self) -> Iso15765MessageArgs::ArbId& {
|
||||
return const_cast<Iso15765MessageArgs::ArbId&>(self.getArbId());
|
||||
},
|
||||
&Iso15765MessageArgs::setArbId,
|
||||
pybind11::return_value_policy::reference_internal)
|
||||
.def_property("flow_control_arb_id",
|
||||
[](Iso15765MessageArgs& self) -> Iso15765MessageArgs::ArbId& {
|
||||
return const_cast<Iso15765MessageArgs::ArbId&>(self.getFlowControlArbId());
|
||||
},
|
||||
&Iso15765MessageArgs::setFlowControlArbId,
|
||||
pybind11::return_value_policy::reference_internal)
|
||||
.def_property("flow_control_arb_id_mask", &Iso15765MessageArgs::getFlowControlArbIdMask, &Iso15765MessageArgs::setFlowControlArbIdMask)
|
||||
.def_property("is_can_fd", &Iso15765MessageArgs::getIsCanFd, &Iso15765MessageArgs::setIsCanFd)
|
||||
.def_property("is_brs_enabled", &Iso15765MessageArgs::getIsBrsEnabled, &Iso15765MessageArgs::setIsBrsEnabled)
|
||||
.def_property("tx_dl", &Iso15765MessageArgs::getTxDl, &Iso15765MessageArgs::setTxDl)
|
||||
.def_property("st_min", &Iso15765MessageArgs::getStMin, &Iso15765MessageArgs::setStMin)
|
||||
.def_property("block_size", &Iso15765MessageArgs::getBlockSize, &Iso15765MessageArgs::setBlockSize)
|
||||
.def_property("extended_address", &Iso15765MessageArgs::getExtendedAddress, &Iso15765MessageArgs::setExtendedAddress)
|
||||
.def_property("flow_control_extended_address", &Iso15765MessageArgs::getFlowControlExtendedAddress, &Iso15765MessageArgs::setFlowControlExtendedAddress)
|
||||
.def_property("padding_value", &Iso15765MessageArgs::getPaddingValue, &Iso15765MessageArgs::setPaddingValue)
|
||||
.def_property("fs_timeout", &Iso15765MessageArgs::getFsTimeout, &Iso15765MessageArgs::setFsTimeout)
|
||||
.def_property("fs_wait_timeout", &Iso15765MessageArgs::getFsWaitTimeout, &Iso15765MessageArgs::setFsWaitTimeout)
|
||||
.def_property("cf_timeout", &Iso15765MessageArgs::getCfTimeout, &Iso15765MessageArgs::setCfTimeout)
|
||||
.def_property("data",
|
||||
&Iso15765MessageArgs::getData,
|
||||
[](Iso15765MessageArgs& self, std::vector<uint8_t> data) { self.setData(std::move(data)); })
|
||||
.def_property("is_flow_control_enabled", &Iso15765MessageArgs::getIsFlowControlEnabled, &Iso15765MessageArgs::setIsFlowControlEnabled);
|
||||
}
|
||||
|
||||
} // namespace icsneo
|
||||
@@ -45,6 +45,10 @@ void init_device(pybind11::module_& m) {
|
||||
.def("is_online_supported", &Device::isOnlineSupported)
|
||||
.def("is_online", &Device::isOnline)
|
||||
.def("is_open", &Device::isOpen)
|
||||
.def("iso15765_enable", &Device::iso15765Enable, pybind11::arg("network"), pybind11::call_guard<pybind11::gil_scoped_release>())
|
||||
.def("iso15765_disable_all", &Device::iso15765DisableAll, pybind11::call_guard<pybind11::gil_scoped_release>())
|
||||
.def("iso15765_transmit_message", &Device::iso15765TransmitMessage, pybind11::arg("network"), pybind11::arg("message"), pybind11::arg("timeout"), pybind11::call_guard<pybind11::gil_scoped_release>())
|
||||
.def("iso15765_setup_rx_flow_control", &Device::iso15765SetupRxFlowControl, pybind11::arg("network"), pybind11::arg("message"), pybind11::call_guard<pybind11::gil_scoped_release>())
|
||||
.def("open", [](Device& device) { return device.open(); }, pybind11::call_guard<pybind11::gil_scoped_release>())
|
||||
.def("prepare_script_load", &Device::prepareScriptLoad, pybind11::call_guard<pybind11::gil_scoped_release>())
|
||||
.def("remove_message_callback", &Device::removeMessageCallback, pybind11::call_guard<pybind11::gil_scoped_release>())
|
||||
|
||||
@@ -15,6 +15,7 @@ void init_devicetype(pybind11::module_&);
|
||||
void init_message(pybind11::module_&);
|
||||
void init_canmessage(pybind11::module_&);
|
||||
void init_canerrormessage(pybind11::module_&);
|
||||
void init_iso15765message(pybind11::module_&);
|
||||
void init_ethernetmessage(pybind11::module_&);
|
||||
void init_linmessage(pybind11::module_&);
|
||||
void init_tc10statusmessage(pybind11::module_&);
|
||||
@@ -60,6 +61,7 @@ PYBIND11_MODULE(icsneopy, m) {
|
||||
init_message(m);
|
||||
init_canmessage(m);
|
||||
init_canerrormessage(m);
|
||||
init_iso15765message(m);
|
||||
init_ethernetmessage(m);
|
||||
init_linmessage(m);
|
||||
init_tc10statusmessage(m);
|
||||
|
||||
Reference in New Issue
Block a user