diff --git a/src/libplctag.NativeImport/DEBUG_MODULE.cs b/src/libplctag.NativeImport/DEBUG_MODULE.cs new file mode 100644 index 0000000..7779df4 --- /dev/null +++ b/src/libplctag.NativeImport/DEBUG_MODULE.cs @@ -0,0 +1,42 @@ +// Copyright (c) libplctag.NET contributors +// https://github.com/libplctag/libplctag.NET +// +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at https://mozilla.org/MPL/2.0/. + +namespace libplctag.NativeImport +{ + /// + /// The library supports setting debug levels for individual modules. + /// This allows for fine-grained control over which subsystems produce debug output. + /// Used with and . + /// + public enum DEBUG_MODULE + { + PLCTAG_MODULE_LIB = 0, + PLCTAG_MODULE_INIT = 1, + PLCTAG_MODULE_VERSION = 2, + PLCTAG_MODULE_UTILS = 3, + PLCTAG_MODULE_AB_SESSION = 4, + PLCTAG_MODULE_AB_PCCC = 5, + PLCTAG_MODULE_AB_CIP = 6, + PLCTAG_MODULE_AB_COMMON = 7, + PLCTAG_MODULE_AB_EIP_CIP = 8, + PLCTAG_MODULE_AB_EIP_CIP_SPECIAL = 9, + PLCTAG_MODULE_AB_EIP_LGX_PCCC = 10, + PLCTAG_MODULE_AB_EIP_PLC5_PCCC = 11, + PLCTAG_MODULE_AB_EIP_PLC5_DHP = 12, + PLCTAG_MODULE_AB_EIP_SLC_PCCC = 13, + PLCTAG_MODULE_AB_EIP_SLC_DHP = 14, + PLCTAG_MODULE_AB_ERROR = 15, + PLCTAG_MODULE_OMRON_CONN = 16, + PLCTAG_MODULE_OMRON_CIP = 17, + PLCTAG_MODULE_OMRON_COMMON = 18, + PLCTAG_MODULE_OMRON_STANDARD_TAG = 19, + PLCTAG_MODULE_OMRON_RAW_TAG = 20, + PLCTAG_MODULE_MODBUS = 21, + PLCTAG_MODULE_SYSTEM = 22, + PLCTAG_MODULE_PLATFORM = 23 + } +} diff --git a/src/libplctag.NativeImport/NativeMethods.cs b/src/libplctag.NativeImport/NativeMethods.cs index 5a494d6..b50f9a5 100644 --- a/src/libplctag.NativeImport/NativeMethods.cs +++ b/src/libplctag.NativeImport/NativeMethods.cs @@ -227,6 +227,18 @@ static NativeMethods() public static extern void plc_tag_set_debug_level(int debug_level); + [DllImport(DLL_NAME, EntryPoint = nameof(plc_tag_get_debug_level), CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)] + public static extern int plc_tag_get_debug_level(); + + + [DllImport(DLL_NAME, EntryPoint = nameof(plc_tag_set_debug_module_level), CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)] + public static extern int plc_tag_set_debug_module_level(int module, int debug_level); + + + [DllImport(DLL_NAME, EntryPoint = nameof(plc_tag_get_debug_module_level), CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)] + public static extern int plc_tag_get_debug_module_level(int module); + + [DllImport(DLL_NAME, EntryPoint = nameof(plc_tag_get_string), CallingConvention = CallingConvention.Cdecl, ExactSpelling = true, CharSet = CharSet.Ansi)] public static extern int plc_tag_get_string(Int32 tag_id, int string_start_offset, StringBuilder buffer, int buffer_length); diff --git a/src/libplctag.NativeImport/plctag.cs b/src/libplctag.NativeImport/plctag.cs index 281a0e6..a75e39a 100644 --- a/src/libplctag.NativeImport/plctag.cs +++ b/src/libplctag.NativeImport/plctag.cs @@ -250,6 +250,21 @@ public static void plc_tag_set_debug_level(int debug_level) NativeMethods.plc_tag_set_debug_level(debug_level); } + public static int plc_tag_get_debug_level() + { + return NativeMethods.plc_tag_get_debug_level(); + } + + public static int plc_tag_set_debug_module_level(int module, int debug_level) + { + return NativeMethods.plc_tag_set_debug_module_level(module, debug_level); + } + + public static int plc_tag_get_debug_module_level(int module) + { + return NativeMethods.plc_tag_get_debug_module_level(module); + } + public static int plc_tag_get_string(Int32 tag_id, int string_start_offset, StringBuilder buffer, int buffer_length)