Bindings: Python: Add coremini functions
parent
77b3564677
commit
a0c8cc62df
|
|
@ -31,8 +31,10 @@ pybind11_add_module(icsneopy
|
||||||
icsneopy/communication/message/gptpstatusmessage.cpp
|
icsneopy/communication/message/gptpstatusmessage.cpp
|
||||||
icsneopy/communication/message/ethernetstatusmessage.cpp
|
icsneopy/communication/message/ethernetstatusmessage.cpp
|
||||||
icsneopy/communication/message/macsecmessage.cpp
|
icsneopy/communication/message/macsecmessage.cpp
|
||||||
|
icsneopy/communication/message/scriptstatusmessage.cpp
|
||||||
icsneopy/communication/message/callback/messagecallback.cpp
|
icsneopy/communication/message/callback/messagecallback.cpp
|
||||||
icsneopy/communication/message/filter/messagefilter.cpp
|
icsneopy/communication/message/filter/messagefilter.cpp
|
||||||
|
icsneopy/disk/diskdriver.cpp
|
||||||
icsneopy/device/device.cpp
|
icsneopy/device/device.cpp
|
||||||
icsneopy/icsneocpp.cpp
|
icsneopy/icsneocpp.cpp
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
#include <pybind11/pybind11.h>
|
||||||
|
#include <pybind11/stl.h>
|
||||||
|
#include <pybind11/functional.h>
|
||||||
|
|
||||||
|
#include "icsneo/communication/message/scriptstatusmessage.h"
|
||||||
|
|
||||||
|
namespace icsneo {
|
||||||
|
|
||||||
|
void init_scriptstatusmessage(pybind11::module_& m) {
|
||||||
|
pybind11::class_<ScriptStatusMessage, std::shared_ptr<ScriptStatusMessage>, Message>(m, "ScriptStatusMessage")
|
||||||
|
.def_readonly("isEncrypted", &ScriptStatusMessage::isEncrypted)
|
||||||
|
.def_readonly("isCoreminiRunning", &ScriptStatusMessage::isCoreminiRunning)
|
||||||
|
.def_readonly("sectorOverflows", &ScriptStatusMessage::sectorOverflows)
|
||||||
|
.def_readonly("numRemainingSectorBuffers", &ScriptStatusMessage::numRemainingSectorBuffers)
|
||||||
|
.def_readonly("lastSector", &ScriptStatusMessage::lastSector)
|
||||||
|
.def_readonly("readBinSize", &ScriptStatusMessage::readBinSize)
|
||||||
|
.def_readonly("minSector", &ScriptStatusMessage::minSector)
|
||||||
|
.def_readonly("maxSector", &ScriptStatusMessage::maxSector)
|
||||||
|
.def_readonly("currentSector", &ScriptStatusMessage::currentSector)
|
||||||
|
.def_readonly("coreminiCreateTime", &ScriptStatusMessage::coreminiCreateTime)
|
||||||
|
.def_readonly("fileChecksum", &ScriptStatusMessage::fileChecksum)
|
||||||
|
.def_readonly("coreminiVersion", &ScriptStatusMessage::coreminiVersion)
|
||||||
|
.def_readonly("coreminiHeaderSize", &ScriptStatusMessage::coreminiHeaderSize)
|
||||||
|
.def_readonly("diagnosticErrorCode", &ScriptStatusMessage::diagnosticErrorCode)
|
||||||
|
.def_readonly("diagnosticErrorCodeCount", &ScriptStatusMessage::diagnosticErrorCodeCount)
|
||||||
|
.def_readonly("maxCoreminiSizeKB", &ScriptStatusMessage::maxCoreminiSizeKB);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace icsneo
|
||||||
|
|
||||||
|
|
@ -5,43 +5,51 @@
|
||||||
|
|
||||||
#include "icsneo/device/device.h"
|
#include "icsneo/device/device.h"
|
||||||
|
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
namespace icsneo {
|
namespace icsneo {
|
||||||
|
|
||||||
void init_device(pybind11::module_& m) {
|
void init_device(pybind11::module_& m) {
|
||||||
pybind11::class_<Device, std::shared_ptr<Device>>(m, "Device")
|
pybind11::class_<Device, std::shared_ptr<Device>>(m, "Device")
|
||||||
.def("get_type", &Device::getType)
|
.def("__repr__", &Device::describe)
|
||||||
.def("get_serial", &Device::getSerial)
|
|
||||||
.def("get_serial_number", &Device::getSerialNumber)
|
|
||||||
.def("get_product_name", &Device::getProductName)
|
|
||||||
.def("open", [](Device& device) { return device.open(); }, pybind11::call_guard<pybind11::gil_scoped_release>())
|
|
||||||
.def("close", &Device::close, pybind11::call_guard<pybind11::gil_scoped_release>())
|
|
||||||
.def("is_open", &Device::isOpen)
|
|
||||||
.def("go_online", &Device::goOnline, pybind11::call_guard<pybind11::gil_scoped_release>())
|
|
||||||
.def("go_offline", &Device::goOffline, pybind11::call_guard<pybind11::gil_scoped_release>())
|
|
||||||
.def("is_online", &Device::isOnline)
|
|
||||||
.def("enable_message_polling", &Device::enableMessagePolling, pybind11::call_guard<pybind11::gil_scoped_release>())
|
|
||||||
.def("disable_message_polling", &Device::disableMessagePolling, pybind11::call_guard<pybind11::gil_scoped_release>())
|
|
||||||
.def("is_message_polling_enabled", &Device::isMessagePollingEnabled)
|
|
||||||
.def("get_messages", [](Device& device) { return device.getMessages(); }, pybind11::call_guard<pybind11::gil_scoped_release>())
|
|
||||||
.def("get_current_message_count", &Device::getCurrentMessageCount)
|
|
||||||
.def("get_polling_message_limit", &Device::getPollingMessageLimit)
|
|
||||||
.def("set_polling_message_limit", &Device::setPollingMessageLimit)
|
|
||||||
.def("add_message_callback", &Device::addMessageCallback, pybind11::call_guard<pybind11::gil_scoped_release>())
|
.def("add_message_callback", &Device::addMessageCallback, pybind11::call_guard<pybind11::gil_scoped_release>())
|
||||||
.def("remove_message_callback", &Device::removeMessageCallback, pybind11::call_guard<pybind11::gil_scoped_release>())
|
.def("clear_script", &Device::clearScript, pybind11::call_guard<pybind11::gil_scoped_release>())
|
||||||
.def("transmit", pybind11::overload_cast<std::shared_ptr<Frame>>(&Device::transmit), pybind11::call_guard<pybind11::gil_scoped_release>())
|
.def("close", &Device::close, pybind11::call_guard<pybind11::gil_scoped_release>())
|
||||||
|
.def("describe", &Device::describe)
|
||||||
|
.def("disable_message_polling", &Device::disableMessagePolling, pybind11::call_guard<pybind11::gil_scoped_release>())
|
||||||
|
.def("enable_message_polling", &Device::enableMessagePolling, pybind11::call_guard<pybind11::gil_scoped_release>())
|
||||||
|
.def("get_current_message_count", &Device::getCurrentMessageCount)
|
||||||
|
.def("get_gptp_status", &Device::getGPTPStatus, pybind11::arg("timeout") = std::chrono::milliseconds(100), pybind11::call_guard<pybind11::gil_scoped_release>())
|
||||||
|
.def("get_messages", [](Device& device) { return device.getMessages(); }, pybind11::call_guard<pybind11::gil_scoped_release>())
|
||||||
|
.def("get_polling_message_limit", &Device::getPollingMessageLimit)
|
||||||
|
.def("get_product_name", &Device::getProductName)
|
||||||
|
.def("get_rtc", &Device::getRTC, pybind11::call_guard<pybind11::gil_scoped_release>())
|
||||||
|
.def("get_script_status", &Device::getScriptStatus, pybind11::call_guard<pybind11::gil_scoped_release>())
|
||||||
|
.def("get_serial_number", &Device::getSerialNumber)
|
||||||
|
.def("get_serial", &Device::getSerial)
|
||||||
.def("get_supported_rx_networks", &Device::getSupportedRXNetworks, pybind11::return_value_policy::reference)
|
.def("get_supported_rx_networks", &Device::getSupportedRXNetworks, pybind11::return_value_policy::reference)
|
||||||
.def("get_supported_tx_networks", &Device::getSupportedTXNetworks, pybind11::return_value_policy::reference)
|
.def("get_supported_tx_networks", &Device::getSupportedTXNetworks, pybind11::return_value_policy::reference)
|
||||||
.def("get_rtc", &Device::getRTC, pybind11::call_guard<pybind11::gil_scoped_release>())
|
|
||||||
.def("set_rtc", &Device::setRTC, pybind11::call_guard<pybind11::gil_scoped_release>())
|
|
||||||
.def("describe", &Device::describe)
|
|
||||||
.def("is_online_supported", &Device::isOnlineSupported)
|
|
||||||
.def("supports_tc10", &Device::supportsTC10)
|
|
||||||
.def("request_tc10_wake", &Device::requestTC10Wake, pybind11::call_guard<pybind11::gil_scoped_release>())
|
|
||||||
.def("request_tc10_sleep", &Device::requestTC10Sleep, pybind11::call_guard<pybind11::gil_scoped_release>())
|
|
||||||
.def("get_tc10_status", &Device::getTC10Status, pybind11::call_guard<pybind11::gil_scoped_release>())
|
.def("get_tc10_status", &Device::getTC10Status, pybind11::call_guard<pybind11::gil_scoped_release>())
|
||||||
.def("get_gptp_status", &Device::getGPTPStatus, pybind11::arg("timeout") = std::chrono::milliseconds(100), pybind11::call_guard<pybind11::gil_scoped_release>())
|
.def("get_type", &Device::getType)
|
||||||
.def("write_macsec_config", &Device::writeMACsecConfig)
|
.def("go_offline", &Device::goOffline, pybind11::call_guard<pybind11::gil_scoped_release>())
|
||||||
.def("__repr__", &Device::describe);
|
.def("go_online", &Device::goOnline, pybind11::call_guard<pybind11::gil_scoped_release>())
|
||||||
|
.def("is_message_polling_enabled", &Device::isMessagePollingEnabled)
|
||||||
|
.def("is_online_supported", &Device::isOnlineSupported)
|
||||||
|
.def("is_online", &Device::isOnline)
|
||||||
|
.def("is_open", &Device::isOpen)
|
||||||
|
.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>())
|
||||||
|
.def("request_tc10_sleep", &Device::requestTC10Sleep, pybind11::call_guard<pybind11::gil_scoped_release>())
|
||||||
|
.def("request_tc10_wake", &Device::requestTC10Wake, pybind11::call_guard<pybind11::gil_scoped_release>())
|
||||||
|
.def("set_polling_message_limit", &Device::setPollingMessageLimit)
|
||||||
|
.def("set_rtc", &Device::setRTC, pybind11::call_guard<pybind11::gil_scoped_release>())
|
||||||
|
.def("start_script", &Device::startScript, pybind11::call_guard<pybind11::gil_scoped_release>())
|
||||||
|
.def("stop_script", &Device::stopScript, pybind11::call_guard<pybind11::gil_scoped_release>())
|
||||||
|
.def("supports_tc10", &Device::supportsTC10)
|
||||||
|
.def("transmit", pybind11::overload_cast<std::shared_ptr<Frame>>(&Device::transmit), pybind11::call_guard<pybind11::gil_scoped_release>())
|
||||||
|
.def("upload_coremini", [](Device& device, std::string& path, Disk::MemoryType memType) { std::ifstream ifs(path, std::ios::binary); return device.uploadCoremini(ifs, memType); }, pybind11::call_guard<pybind11::gil_scoped_release>())
|
||||||
|
.def("write_macsec_config", &Device::writeMACsecConfig, pybind11::call_guard<pybind11::gil_scoped_release>());
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace icsneo
|
} // namespace icsneo
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
#include <pybind11/pybind11.h>
|
||||||
|
#include <pybind11/stl.h>
|
||||||
|
#include <pybind11/functional.h>
|
||||||
|
|
||||||
|
#include "icsneo/disk/diskdriver.h"
|
||||||
|
|
||||||
|
namespace icsneo {
|
||||||
|
|
||||||
|
void init_diskdriver(pybind11::module_& m) {
|
||||||
|
auto disk = m.def_submodule("disk");
|
||||||
|
pybind11::enum_<Disk::Access>(disk, "Access")
|
||||||
|
.value("None", Disk::Access::None)
|
||||||
|
.value("EntireCard", Disk::Access::EntireCard)
|
||||||
|
.value("VSA", Disk::Access::VSA);
|
||||||
|
pybind11::enum_<Disk::MemoryType>(disk, "MemoryType")
|
||||||
|
.value("Flash", Disk::MemoryType::Flash)
|
||||||
|
.value("SD", Disk::MemoryType::SD);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace icsneo
|
||||||
|
|
@ -21,6 +21,8 @@ void init_gptpstatusmessage(pybind11::module_&);
|
||||||
void init_mdiomessage(pybind11::module_&);
|
void init_mdiomessage(pybind11::module_&);
|
||||||
void init_ethernetstatusmessage(pybind11::module_&);
|
void init_ethernetstatusmessage(pybind11::module_&);
|
||||||
void init_macsecmessage(pybind11::module_&);
|
void init_macsecmessage(pybind11::module_&);
|
||||||
|
void init_scriptstatusmessage(pybind11::module_&);
|
||||||
|
void init_diskdriver(pybind11::module_&);
|
||||||
void init_device(pybind11::module_&);
|
void init_device(pybind11::module_&);
|
||||||
void init_messagefilter(pybind11::module_&);
|
void init_messagefilter(pybind11::module_&);
|
||||||
void init_messagecallback(pybind11::module_&);
|
void init_messagecallback(pybind11::module_&);
|
||||||
|
|
@ -47,8 +49,10 @@ PYBIND11_MODULE(icsneopy, m) {
|
||||||
init_mdiomessage(m);
|
init_mdiomessage(m);
|
||||||
init_ethernetstatusmessage(m);
|
init_ethernetstatusmessage(m);
|
||||||
init_macsecmessage(m);
|
init_macsecmessage(m);
|
||||||
|
init_scriptstatusmessage(m);
|
||||||
init_messagefilter(m);
|
init_messagefilter(m);
|
||||||
init_messagecallback(m);
|
init_messagecallback(m);
|
||||||
|
init_diskdriver(m);
|
||||||
init_device(m);
|
init_device(m);
|
||||||
|
|
||||||
m.def("find_all_devices", &FindAllDevices);
|
m.def("find_all_devices", &FindAllDevices);
|
||||||
|
|
|
||||||
|
|
@ -48,3 +48,6 @@ local_scheme = "no-local-version"
|
||||||
LIBICSNEO_ENABLE_BINDINGS_PYTHON = true
|
LIBICSNEO_ENABLE_BINDINGS_PYTHON = true
|
||||||
LIBICSNEO_ENABLE_TCP = true
|
LIBICSNEO_ENABLE_TCP = true
|
||||||
CMAKE_MSVC_RUNTIME_LIBRARY = "MultiThreaded"
|
CMAKE_MSVC_RUNTIME_LIBRARY = "MultiThreaded"
|
||||||
|
|
||||||
|
[tool.cibuildwheel]
|
||||||
|
skip = "pp*"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue