diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..af4cdf04f383c4ab7f2d98621937092d883cd058 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,52 @@ +cmake_minimum_required(VERSION 3.13) + + + +################################################################################ +## PROJECT +## name and version +################################################################################ +project(rf60Xsdk) + + +################################################################################ +## SETTINGS +## basic project settings before use +################################################################################ +# If this project is used as a submodule, the variable should be overridden +# to "OFF" in the top-level application (to disable forced cache rewriting) +option(${PARENT}_SUBMODULE_CACHE_OVERWRITE "Enable forced cache rewriting" ON) +if (${PARENT}_SUBMODULE_CACHE_OVERWRITE) + SET(REWRITE_FORCE "FORCE") +else() + SET(REWRITE_FORCE "") +endif() + + + +################################################################################ +## CONFIGURATION +## project configuration +################################################################################ +# Select a wrapper programming language (C, C++) +SET(${PARENT}_WRAPPER_LANGUAGE "C++" CACHE STRING "" ${REWRITE_FORCE}) + + + + +################################################################################ +## INCLUDING SUBDIRECTORIES +## Adding subdirectories according to the configuration +################################################################################ +# Add sdk-library +if(${${PARENT}_WRAPPER_LANGUAGE} STREQUAL "C") + add_subdirectory(wrappers/C/rf60Xsdk) +endif() +if(${${PARENT}_WRAPPER_LANGUAGE} STREQUAL "C++") + add_subdirectory(wrappers/Cpp/rf60Xsdk) + +endif() + + + + diff --git a/example/LabVIEW/RF60X_UDP_measure.vi b/example/LabVIEW/RF60X_UDP_measure.vi index 4b64aa2b3ab11b91f6f1e81618ea08dc796b2f87..919f07257e454e6b2c6252ed75abbb3d87c0b208 100644 Binary files a/example/LabVIEW/RF60X_UDP_measure.vi and b/example/LabVIEW/RF60X_UDP_measure.vi differ diff --git a/wrappers/DotNet/rf60Xsdk/rf60Xsdk/rf60Xsdk.cpp b/wrappers/DotNet/rf60Xsdk/rf60Xsdk/rf60Xsdk.cpp index 50dd852382406fa1bce1058e81f0048d6d41a410..bef23c86e94ce4e1ef2ac882d72ec9d326057e6a 100644 --- a/wrappers/DotNet/rf60Xsdk/rf60Xsdk/rf60Xsdk.cpp +++ b/wrappers/DotNet/rf60Xsdk/rf60Xsdk/rf60Xsdk.cpp @@ -90,11 +90,16 @@ rf60Xsdk::rf60XsdkNet::rf60XsdkNet(const config_base_information_rf60x_net_t^ co } -bool rf60Xsdk::rf60XsdkNet::connect() +bool rf60Xsdk::rf60XsdkNet::connect_1() { return _rf60x->connect(); } +bool rf60Xsdk::rf60XsdkNet::test_connect(const std::string %hostAddress, uint32_t port) +{ + return _rf60x->test_connect_udp(hostAddress, port); +} + bool rf60Xsdk::rf60XsdkNet::get_measure_udp(udp_measure_net_t% clone) { @@ -126,11 +131,71 @@ bool rf60Xsdk::rf60XsdkNet::get_measure_udp(udp_measure_net_t% clone) } +bool rf60Xsdk::rf60XsdkNet::test_get_measure_udp(udp_measure_net_t% clone) +{ + udp_measure_t measure; + + bool result = 0; + + result = _rf60x->test_get_measure_udp(measure); + + if (!result) + return false; + + clone.deviceBaseDistance = measure.deviceBaseDistance; + clone.deviceMeasureRange = measure.deviceMeasureRange; + clone.deviceSerial = measure.deviceSerial; + clone.packCount = measure.packCount; + clone.packetControlSumm = measure.packetControlSumm; + + for (Byte i = 0; i < 168; ++i) { + clone.Array[i].status = measure.rf60xValArray[i].status; + clone.Array[i].value = measure.rf60xValArray[i].value; + + } + + return result; +} + +bool rf60Xsdk::rf60XsdkNet::test_get_measure_udp(binocular_udp_measure_net_t% clone) +{ + binocular_udp_measure_t measure; + + bool result = 0; + + result = _rf60x->test_get_measure_udp(measure); + + if (!result) + return false; + + + clone.deviceBaseDistance = measure.deviceBaseDistance; + clone.deviceMeasureRange = measure.deviceMeasureRange; + clone.deviceSerial = measure.deviceSerial; + clone.packCount = measure.packCount; + clone.packetControlSumm = measure.packetControlSumm; + + for (Byte i = 0; i < 1000; ++i) { + clone.rf60xBValArray[i].status = measure.rf60xBValArray[i].status; + clone.rf60xBValArray[i].measure = measure.rf60xBValArray[i].measure; + clone.rf60xBValArray[i].exposition = measure.rf60xBValArray[i].exposition; + + } + + + return result; +} + bool rf60Xsdk::rf60XsdkNet::disconnect() { return _rf60x->disconnect(); } +void rf60Xsdk::rf60XsdkNet::test_disconnect() +{ + return _rf60x->test_disconnect_udp(); +} + bool rf60Xsdk::rf60XsdkNet::open_port_uart() { return _rf60x->open_port_uart(); diff --git a/wrappers/DotNet/rf60Xsdk/rf60Xsdk/rf60Xsdk.vcxproj b/wrappers/DotNet/rf60Xsdk/rf60Xsdk/rf60Xsdk.vcxproj index d77b9ea8bcfbbdbda2f5b5e15675ea35a7865fc1..6ed635320be4d5c282b1facfcdc8cd6385882261 100644 --- a/wrappers/DotNet/rf60Xsdk/rf60Xsdk/rf60Xsdk.vcxproj +++ b/wrappers/DotNet/rf60Xsdk/rf60Xsdk/rf60Xsdk.vcxproj @@ -21,37 +21,37 @@ 15.0 {8EADAEA9-C0AF-49A2-A70B-359A9138904E} - v4.8 ManagedCProj rf60Xsdk - 10.0 + 10.0.22621.0 + v4.6.2 DynamicLibrary true - v142 + v143 true Unicode DynamicLibrary false - v142 + v143 true Unicode DynamicLibrary true - v142 + v143 true Unicode DynamicLibrary false - v142 + v143 true Unicode @@ -124,10 +124,19 @@ pch.h Level3 WIN32;NDEBUG;%(PreprocessorDefinitions) + D:\Gitlab\RF60X-SDK\RF60X-SDK\wrappers\Cpp\rf60Xsdk;%(AdditionalIncludeDirectories) + MultiThreadedDLL - + rf60Xsdk.lib;%(AdditionalDependencies) + D:\Gitlab\RF60X-SDK\RF60X-SDK\wrappers\Cpp\rf60Xsdk\out\build\x86-release\lib;D:\Gitlab\RF60X-SDK\RF60X-SDK\wrappers\Cpp\rf60Xsdk\out\build\x86-release\bin;%(AdditionalLibraryDirectories) + rf60Xsdk.lib + /FORCE:MULTIPLE %(AdditionalOptions) + $(OutDir)$(TargetName)Net$(TargetExt) + + true + diff --git a/wrappers/DotNet/rf60Xsdk/rf60Xsdk/rf60XsdkNet.h b/wrappers/DotNet/rf60Xsdk/rf60Xsdk/rf60XsdkNet.h index 2feadaae5191491e6495df0584f5ee008cafd6d0..7a47b7fe8ed0b49f299eea5052d03e484a811930 100644 --- a/wrappers/DotNet/rf60Xsdk/rf60Xsdk/rf60XsdkNet.h +++ b/wrappers/DotNet/rf60Xsdk/rf60Xsdk/rf60XsdkNet.h @@ -190,6 +190,42 @@ namespace rf60Xsdk { }; + + [StructLayout(LayoutKind::Sequential, Pack = 1)] + public value struct binocular_udp_value_t + { + unsigned short measure; + unsigned short exposition; + unsigned char status; + }; + + + [StructLayout(LayoutKind::Sequential, Pack = 1)] + public value struct binocular_udp_measure_net_t { + + private: + static bool intiliaze; + + public: + [MarshalAs(UnmanagedType::ByValArray, SizeConst = 100)] + array^ rf60xBValArray; + unsigned short reserved; + unsigned short reserved2; + unsigned short deviceSerial; + unsigned short deviceBaseDistance; + unsigned short deviceMeasureRange; + unsigned char packCount; + unsigned char packetControlSumm; + + void intiliazeArrays(UInt16 sizePoints, UInt16 sizePixels) { + + if (intiliaze) return; + rf60xBValArray = gcnew array(100); + intiliaze = true; + } + + }; + public ref class rf60XsdkNet { @@ -205,13 +241,18 @@ namespace rf60Xsdk { static int sdk_version(); //Ethernet - bool connect(); + bool connect_1(); + bool test_connect(const std::string% hostAddress, uint32_t port); bool get_measure_udp(udp_measure_net_t% clone); //TODO сделать ближе к истине. + bool test_get_measure_udp(udp_measure_net_t% clone); + bool test_get_measure_udp(binocular_udp_measure_net_t% clone); + + bool disconnect(); - + void test_disconnect(); //UART diff --git a/wrappers/LabVIEW/rf60Xsdk/CMakeLists.txt b/wrappers/LabVIEW/rf60Xsdk/CMakeLists.txt index 947b5ce980442aee46cc8c697b26eb96cefb7c64..6c76f0c6fdf8b345b47f8e704aa66e3efb5303fa 100644 --- a/wrappers/LabVIEW/rf60Xsdk/CMakeLists.txt +++ b/wrappers/LabVIEW/rf60Xsdk/CMakeLists.txt @@ -16,6 +16,7 @@ set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) set(BINARY_DIR "${CMAKE_BINARY_DIR}") set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${BINARY_DIR}/bin") set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${BINARY_DIR}/lib") +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${BINARY_DIR}/lib") # set rf60Xcore path variable @@ -35,14 +36,15 @@ set (SOURCES ${CPP_FILES} ${H_FILES}) ## TARGET ## create target and add include path ## -add_library(${PROJECT_NAME} SHARED ${SOURCES}) +add_library(${PROJECT_NAME} ${SOURCES}) set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "") +target_compile_definitions(${PROJECT_NAME} PRIVATE NEW_API) target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/ ) -target_link_libraries(${PROJECT_NAME} rf60Xsdk) +target_link_libraries(${PROJECT_NAME} PRIVATE rf60Xsdk) #if(MINGW) # target_link_libraries(${PROJECT_NAME} ws2_32) # target_link_libraries(${PROJECT_NAME} iphlpapi) diff --git a/wrappers/LabVIEW/rf60Xsdk/rf60x.cpp b/wrappers/LabVIEW/rf60Xsdk/rf60x.cpp index 7b19e85e498e749a6e7224f66814ff8dfcc3abe0..994b2e2fe207e04dad875765a15f478db83c9fed 100644 --- a/wrappers/LabVIEW/rf60Xsdk/rf60x.cpp +++ b/wrappers/LabVIEW/rf60Xsdk/rf60x.cpp @@ -12,78 +12,105 @@ struct rf60x_c { void *obj; }; -rf60x_t *rf60x_create( - const namespace_struct_wrapper::config_base_information_rf60x_t - config_params_device) { +void *rf60x_create( + void + *config_params_device) { if (!sdk_init()) return NULL; + config_base_information_rf60x_t inner_config_params_device; rf60x_t *m; rf60x *obj; - switch (config_params_device.baud_rate) { - case namespace_struct_wrapper::BAUR_RATE_UART::Baud9600: { + switch (static_cast(config_params_device)->baud_rate) { + case BAUR_RATE_UART::Baud9600: { inner_config_params_device.baud_rate = BAUR_RATE_UART::Baud9600; break; } - case namespace_struct_wrapper::BAUR_RATE_UART::Baud230400: { + case BAUR_RATE_UART::Baud230400: { inner_config_params_device.baud_rate = BAUR_RATE_UART::Baud230400; break; } - case namespace_struct_wrapper::BAUR_RATE_UART::Baud460800: { + case BAUR_RATE_UART::Baud460800: { inner_config_params_device.baud_rate = BAUR_RATE_UART::Baud460800; break; } - case namespace_struct_wrapper::BAUR_RATE_UART::Baud115200: { + case BAUR_RATE_UART::Baud115200: { inner_config_params_device.baud_rate = BAUR_RATE_UART::Baud115200; break; } - case namespace_struct_wrapper::BAUR_RATE_UART::Baud921600: { + case BAUR_RATE_UART::Baud921600: { inner_config_params_device.baud_rate = BAUR_RATE_UART::Baud921600; break; } } inner_config_params_device.network_address = - config_params_device.network_address; - inner_config_params_device.number_serial_port = - config_params_device.number_serial_port; + static_cast(config_params_device)->network_address; + // inner_config_params_device.number_serial_port = + // static_cast(config_params_device)->number_serial_port; m = (decltype(m))malloc(sizeof(*m)); obj = new rf60x(inner_config_params_device); m->obj = obj; - return m; + return static_cast(m); } -void rf60x_destroy(rf60x_t *m) { +void rf60x_destroy(void *m) { if (m == NULL) return; - delete static_cast(m->obj); + delete static_cast(reinterpret_cast(m)->obj); free(m); sdk_cleanup(); } +#ifdef NEW_API +unsigned int rf60x_connect(void *dev, char* hostAddress, unsigned int port) +#else +unsigned int rf60x_connect(rf60x_t *dev) +#endif +{ +#ifdef NEW_API + return static_cast(reinterpret_cast(dev)->obj)->test_connect_udp(hostAddress,port); +#else + return static_cast(dev->obj)->connect(); +#endif + +} -bool rf60x_connect(rf60x_t *dev) { - return static_cast(dev->obj)->connect(); +unsigned int rf60x_disconnect(void *dev) { +#ifdef NEW_API + static_cast(reinterpret_cast(dev)->obj)->test_disconnect_udp(); + return true; +#else + return static_cast(dev->obj)->disconnect(); +#endif } -bool rf60x_disconnect(rf60x_t *dev) { - return static_cast(dev->obj)->disconnect(); +unsigned int rf60x_get_measure_udp(void *dev, void *measure) { +#ifdef NEW_API + return static_cast(reinterpret_cast(dev)->obj)->test_get_measure_udp(*static_cast(measure)); +#else + return static_cast(reinterpret_cast(dev)->obj)->get_measure_udp(measure); +#endif } -bool rf60x_get_measure_udp(rf60x_t *dev, void *measure) { - return static_cast(dev->obj)->get_measure_udp(measure); +unsigned int rf60x_bino_get_measure_udp(void *dev, void *measure) { +#ifdef NEW_API + return static_cast(reinterpret_cast(dev)->obj)->test_get_measure_udp(*static_cast(measure)); +#else + return static_cast(reinterpret_cast(dev)->obj)->get_measure_udp(measure); +#endif } -bool rf60x_open_port_uart(rf60x_t *dev) { - return static_cast(dev->obj)->open_port_uart(); +unsigned int rf60x_open_port_uart(void *dev) { + return static_cast(reinterpret_cast(dev)->obj)->open_port_uart(); } -namespace_struct_wrapper::uart_hello_t rf60x_hello_msg_uart(rf60x_t *dev) { - auto uartHello = static_cast(dev->obj)->hello_msg_uart(); +uart_hello_t_c rf60x_hello_msg_uart(void *dev) { + auto uartHello = static_cast(reinterpret_cast(dev)->obj)->hello_msg_uart(); - namespace_struct_wrapper::uart_hello_t wrapperUartHello; + uart_hello_t_c wrapperUartHello; wrapperUartHello.deviceMaxDistance = uartHello.deviceMaxDistance; wrapperUartHello.deviceModificaton = uartHello.deviceModificaton; @@ -94,109 +121,101 @@ namespace_struct_wrapper::uart_hello_t rf60x_hello_msg_uart(rf60x_t *dev) { return wrapperUartHello; } -void rf60x_change_config_port_uart(rf60x_t *dev) { - static_cast(dev->obj)->open_port_uart(); +void rf60x_change_config_port_uart(void *dev) { + static_cast(reinterpret_cast(dev)->obj)->open_port_uart(); } -void rf60x_close_port_uart(rf60x_t *dev) { - static_cast(dev->obj)->close_port_uart(); +void rf60x_close_port_uart(void *dev) { + static_cast(reinterpret_cast(dev)->obj)->close_port_uart(); } -bool rf60x_get_measure_uart( - rf60x_t *dev, void *measure, - namespace_struct_wrapper::PROTOCOL_MEASURE_UART type) { +unsigned int rf60x_get_measure_uart( + unsigned int *dev, void *measure, + unsigned int type) { switch (type) { - case namespace_struct_wrapper::PROTOCOL_MEASURE_UART::UART_STREAM_MEASURE_T: - return static_cast(dev->obj)->get_measure_uart( + case 4: + return static_cast(reinterpret_cast(dev)->obj)->get_measure_uart( measure, PROTOCOL_MEASURE_UART::UART_STREAM_MEASURE_T); - break; - case namespace_struct_wrapper::PROTOCOL_MEASURE_UART:: - UART_STREAM_ADVANCED_MEASURE_T: - return static_cast(dev->obj)->get_measure_uart( + case 6: + return static_cast(reinterpret_cast(dev)->obj)->get_measure_uart( measure, PROTOCOL_MEASURE_UART::UART_STREAM_ADVANCED_MEASURE_T); - break; - case namespace_struct_wrapper::PROTOCOL_MEASURE_UART:: - UART_STREAM_MODIFIED_MEASURE_T: - return static_cast(dev->obj)->get_measure_uart( + case 10: + return static_cast(reinterpret_cast(dev)->obj)->get_measure_uart( measure, PROTOCOL_MEASURE_UART::UART_STREAM_MODIFIED_MEASURE_T); - break; - - case namespace_struct_wrapper::PROTOCOL_MEASURE_UART:: - UART_RESULT_WITH_ENCODER_T: - return static_cast(dev->obj)->get_measure_uart( + case 12: + return static_cast(reinterpret_cast(dev)->obj)->get_measure_uart( measure, PROTOCOL_MEASURE_UART::UART_RESULT_WITH_ENCODER_T); - break; + default: + return false; } } -bool rf60x_get_single_measure(rf60x_t *dev, unsigned char address, +unsigned int rf60x_get_single_measure(void *dev, unsigned char address, void *measure) { - return static_cast(dev->obj)->get_single_measure(address, measure); + return static_cast(reinterpret_cast(dev)->obj)->get_single_measure(address, measure); } -bool rf60x_send_command_modbus( - rf60x_t *dev, const namespace_struct_wrapper::modbus_rtu_command &command) { +unsigned int rf60x_send_command_modbus( + void *dev, modbus_rtu_command *command) { modbus_rtu_command innerCommand; - innerCommand.id = command.id; + innerCommand.id = command->id; - innerCommand.command = command.command; + innerCommand.command = command->command; - innerCommand.address = command.address; + innerCommand.address = command->address; - innerCommand.count_or_value = command.count_or_value; + innerCommand.count_or_value = command->count_or_value; - innerCommand.crc = command.crc; + innerCommand.crc = command->crc; - return static_cast(dev->obj)->send_command_modbus(innerCommand); + return static_cast(reinterpret_cast(dev)->obj)->send_command_modbus(innerCommand); } -bool rf60x_receive_data_modbus(rf60x_t *dev, unsigned short *buffer) { - return static_cast(dev->obj)->receive_data_modbus(buffer); +unsigned int rf60x_receive_data_modbus(void *dev, unsigned short *buffer) { + return static_cast(reinterpret_cast(dev)->obj)->receive_data_modbus(buffer); } -bool rf60x_read_params_uart(rf60x_t *dev) { - return static_cast(dev->obj)->read_params_uart(); +unsigned int rf60x_read_params_uart(void *dev) { + return static_cast(reinterpret_cast(dev)->obj)->read_params_uart(); } -bool rf60x_write_params_uart(rf60x_t *dev) { - return static_cast(dev->obj)->write_params_uart(); +unsigned int rf60x_write_params_uart(void *dev) { + return static_cast(reinterpret_cast(dev)->obj)->write_params_uart(); } -bool rf60x_send_command(rf60x_t *dev, - namespace_struct_wrapper::COMMAND_UART CMD) { +unsigned int rf60x_send_command(void *dev, + unsigned int CMD) { switch (CMD) { - case namespace_struct_wrapper::COMMAND_UART::GETRESULT: - return static_cast(dev->obj)->send_command( + case 0x06: + return static_cast(reinterpret_cast(dev)->obj)->send_command( COMMAND_UART::GETRESULT); - break; - case namespace_struct_wrapper::COMMAND_UART::SAVETOFLASH: - return static_cast(dev->obj)->send_command( + + case 0x04: + return static_cast(reinterpret_cast(dev)->obj)->send_command( COMMAND_UART::SAVETOFLASH); - break; - case namespace_struct_wrapper::COMMAND_UART::START_STREAM: - return static_cast(dev->obj)->send_command( + + case 0x07: + return static_cast(reinterpret_cast(dev)->obj)->send_command( COMMAND_UART::START_STREAM); - break; - case namespace_struct_wrapper::COMMAND_UART::START_STREAM_ADVANCED: - return static_cast(dev->obj)->send_command( + + case 0x0C: + return static_cast(reinterpret_cast(dev)->obj)->send_command( COMMAND_UART::START_STREAM_ADVANCED); - break; - case namespace_struct_wrapper::COMMAND_UART::START_STREAM_MODIFIED: - return static_cast(dev->obj)->send_command( + case 0x0D: + return static_cast(reinterpret_cast(dev)->obj)->send_command( COMMAND_UART::START_STREAM_MODIFIED); - break; - case namespace_struct_wrapper::COMMAND_UART::STOP_STREAM: - return static_cast(dev->obj)->send_command( + case 0x08: + return static_cast(reinterpret_cast(dev)->obj)->send_command( COMMAND_UART::STOP_STREAM); - break; - case namespace_struct_wrapper::COMMAND_UART::WRITEPARAM: - return static_cast(dev->obj)->send_command( + case 0x03: + return static_cast(reinterpret_cast(dev)->obj)->send_command( COMMAND_UART::WRITEPARAM); - break; + default: + return false; } } @@ -204,13 +223,13 @@ bool rf60x_send_command(rf60x_t *dev, // param_t *rf60x_get_param(rf60x_t *dev, PARAM_NAME_KEY param_name) {} -// bool rf60x_set_param(rf60x_t *dev, param_t *param) {} +// unsigned int rf60x_set_param(rf60x_t *dev, param_t *param) {} -// bool rf60x_set_param(rf60x_t *dev, const char *param_name) {} +// unsigned int rf60x_set_param(rf60x_t *dev, const char *param_name) {} -// bool rf60x_set_param(rf60x_t *dev, int param_id) {} +// unsigned int rf60x_set_param(rf60x_t *dev, int param_id) {} -bool r60x_restore_params(rf60x_t *dev) { - return static_cast(dev->obj)->send_command( +unsigned int r60x_restore_params(void *dev) { + return static_cast(reinterpret_cast(dev)->obj)->send_command( COMMAND_UART::RESTOREFORMFLASH); } diff --git a/wrappers/LabVIEW/rf60Xsdk/rf60x.h b/wrappers/LabVIEW/rf60Xsdk/rf60x.h index 346cab8b0e6594df556432ecdf3b92a688b4fcd9..bd9e831b6e28add6708772909761a57b6e4a7b8d 100644 --- a/wrappers/LabVIEW/rf60Xsdk/rf60x.h +++ b/wrappers/LabVIEW/rf60Xsdk/rf60x.h @@ -19,45 +19,48 @@ extern "C" { struct rf60x_c; typedef struct rf60x_c rf60x_t; -rf60x_t *rf60x_create(const namespace_struct_wrapper::config_base_information_rf60x_t config_params_device); -void rf60x_destroy(rf60x_t *m); +void *rf60x_create(void* config_params_device); +void rf60x_destroy(void *m); -bool rf60x_connect(rf60x_t *dev); +//unsigned int rf60x_connect(unsigned int *dev); +unsigned int rf60x_connect(void *dev, char* hostAddress, unsigned int port); -bool rf60x_disconnect(rf60x_t *dev); +unsigned int rf60x_disconnect(void *dev); -bool rf60x_get_measure_udp(rf60x_t *dev, void *measure); +unsigned int rf60x_get_measure_udp(void *dev, void *measure); -bool rf60x_open_port_uart(rf60x_t *dev); +unsigned int rf60x_bino_get_measure_udp(void *dev, void *measure); -namespace_struct_wrapper::uart_hello_t rf60x_hello_msg_uart(rf60x_t *dev); +unsigned int rf60x_open_port_uart(void *dev); -void rf60x_change_config_port_uart(rf60x_t *dev); +uart_hello_t_c rf60x_hello_msg_uart(void *dev); -void rf60x_close_port_uart(rf60x_t *dev); +void rf60x_change_config_port_uart(void *dev); -bool rf60x_get_measure_uart(rf60x_t *dev, void *measure, namespace_struct_wrapper::PROTOCOL_MEASURE_UART type); +void rf60x_close_port_uart(void *dev); -bool rf60x_get_single_measure(rf60x_t *dev, unsigned char address, void *measure); +unsigned int rf60x_get_measure_uart(void *dev, void *measure, unsigned int type); -bool rf60x_send_command_modbus(rf60x_t *dev, const namespace_struct_wrapper::modbus_rtu_command &command); +unsigned int rf60x_get_single_measure(void *dev, unsigned char address, void *measure); -bool rf60x_receive_data_modbus(rf60x_t *dev, unsigned short *buffer); +unsigned int rf60x_send_command_modbus(void *dev, modbus_rtu_command_c *command); -bool rf60x_read_params_uart(rf60x_t *dev); +unsigned int rf60x_receive_data_modbus(void *dev, unsigned short *buffer); -bool rf60x_write_params_uart(rf60x_t *dev); +unsigned int rf60x_read_params_uart(void *dev); -bool r60x_restore_params(rf60x_t *dev); +unsigned int rf60x_write_params_uart(void *dev); -bool rf60x_send_command(rf60x_t *dev, namespace_struct_wrapper::COMMAND_UART CMD); +unsigned int r60x_restore_params(void *dev); + +unsigned int rf60x_send_command(void *dev, unsigned int CMD); //param_t *rf60x_get_param(rf60x_t, char *param_name); //param_t *rf60x_get_param(rf60x_t, PARAM_NAME_KEY param_name); -//bool rf60x_set_param(rf60x_t, param_t *param); -//bool rf60x_set_param(rf60x_t, const char *param_name, ...); -//bool rf60x_set_param(rf60x_t, int param_id, ...); +//unsigned int rf60x_set_param(rf60x_t, param_t *param); +//unsigned int rf60x_set_param(rf60x_t, const char *param_name, ...); +//unsigned int rf60x_set_param(rf60x_t, int param_id, ...); #ifdef __cplusplus } diff --git a/wrappers/LabVIEW/rf60Xsdk/rf60xtypes_c.h b/wrappers/LabVIEW/rf60Xsdk/rf60xtypes_c.h index 4fd8376df0740da9a6855e351c351a101e60577a..4940a0aa37e1d729bb01dc98de9d1a353e8db090 100644 --- a/wrappers/LabVIEW/rf60Xsdk/rf60xtypes_c.h +++ b/wrappers/LabVIEW/rf60Xsdk/rf60xtypes_c.h @@ -1,40 +1,41 @@ #ifndef RF60XTYPES_C_H #define RF60XTYPES_C_H -typedef struct { +#pragma pack(push, 1) +//typedef struct { typedef struct { unsigned short measure; unsigned short rotationMarks; unsigned short encoderValue; - } uart_result_with_encoder_t; + } uart_result_with_encoder_t_c; typedef struct { unsigned short value; unsigned char status; - } udp_value_t; + } udp_value_t_c; typedef struct { - udp_value_t rf60xValArray[168]; + udp_value_t_c rf60xValArray[168]; unsigned short deviceSerial; unsigned short deviceBaseDistance; unsigned short deviceMeasureRange; unsigned char packCount; unsigned char packetControlSumm; - } udp_measure_t; + } udp_measure_t_c; typedef struct { unsigned short value; unsigned char count; unsigned char status; unsigned char reserverd; - } uart_stream_measure_t; + } uart_stream_measure_t_c; typedef struct { unsigned short value; unsigned char status; unsigned char dir; unsigned char cnt; - } uart_stream_advanced_measure_t; + } uart_stream_advanced_measure_t_c; typedef struct { unsigned short value; @@ -42,16 +43,16 @@ typedef struct { unsigned char dir; unsigned char cnt; unsigned short cnt_stream; - } uart_stream_modified_measure_t; + } uart_stream_modified_measure_t_c; typedef struct { unsigned short measure; unsigned short exposition; unsigned char status; - } binocular_udp_value_t; + } binocular_udp_value_t_c; typedef struct { - binocular_udp_value_t rf60xBValArray[100]; + binocular_udp_value_t_c rf60xBValArray[100]; unsigned short reserved; unsigned short reserved2; unsigned short deviceSerial; @@ -59,7 +60,7 @@ typedef struct { unsigned short deviceMeasureRange; unsigned char packCount; unsigned char packetControlSumm; - } binocular_udp_measure_t; + } binocular_udp_measure_t_c; typedef struct { unsigned char deviceType; @@ -68,7 +69,7 @@ typedef struct { unsigned short deviceMaxDistance; unsigned short deviceRange; - } uart_hello_t; + } uart_hello_t_c; typedef struct { unsigned char id; @@ -76,11 +77,11 @@ typedef struct { unsigned short address; unsigned short count_or_value; unsigned short crc; - } modbus_rtu_command; + } modbus_rtu_command_c; +#pragma pack(pop) + enum SCANNER_TYPE_C { RF60x = 1, RF60xHS = 2, RF60xB = 3 }; - enum SCANNER_TYPE { RF60x = 1, RF60xHS = 2, RF60xB = 3 }; - - enum PROTOCOLS { + enum PROTOCOLS_C { RIFTEK_BIN_PROTOCOL = 1, ASCII = 2, MODBUS_RTU = 3, @@ -135,7 +136,7 @@ typedef struct { "auto_of_the_stream", "protocols_interface", };*/ - enum PARAM_NAME_KEY { + enum PARAM_NAME_KEY_C { USER_POWER = 0, POWER_ANALOG_OUTPUT, CONTROL_OF_AVERAGING, @@ -185,7 +186,7 @@ typedef struct { PROTOCOLS_INTERFACE }; - enum PARAM_VALUE_TYPE { + enum PARAM_VALUE_TYPE_C { UNKN_PARAM_TYPE = 0, UINT8_PARAM_TYPE, UINT_PARAM_TYPE, @@ -203,7 +204,7 @@ typedef struct { STRING_PARAM_TYPE }; - enum BAUR_RATE_UART { + enum BAUR_RATE_UART_C { Baud9600 = 0x04, Baud115200 = 0x30, Baud230400 = 0x60, @@ -212,7 +213,7 @@ typedef struct { }; - enum COMMAND_UART { + enum COMMAND_UART_C { WRITEPARAM = 0x03, SAVETOFLASH = 0x04, RESTOREFORMFLASH = 0x04, @@ -223,7 +224,7 @@ typedef struct { STOP_STREAM = 0x08 }; - enum PROTOCOL_MEASURE_UART { + enum PROTOCOL_MEASURE_UART_C { UART_STREAM_MEASURE_T = 4, UART_STREAM_ADVANCED_MEASURE_T = 6, UART_STREAM_MODIFIED_MEASURE_T = 10, @@ -232,13 +233,13 @@ typedef struct { }; typedef struct { - SCANNER_TYPE type; - BAUR_RATE_UART baud_rate; + SCANNER_TYPE_C type; + BAUR_RATE_UART_C baud_rate; unsigned char network_address; char* number_serial_port; - PROTOCOLS protocol; + PROTOCOLS_C protocol; char* recv_ip_addrs; - } config_base_information_rf60x_t; -}namespace_struct_wrapper; + } config_base_information_rf60x_t_c; +//}namespace_struct_wrapper; #endif // RF60XTYPES_C_H