自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1324)
  • 资源 (60)
  • 收藏
  • 关注

转载 C# 如何解决SplitContainer设置成透明时闪烁的问题

转载地址:https://zhidao.baidu.com/question/497293972425324804.html现在使用splitContainer1.GetType().GetProperty(“DoubleBuffered”, System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).SetValue(splitContainer1, true, null);splitCont

2021-11-25 15:48:43 466

转载 C# WinForm 用户自定义控件UserControl闪烁的问题

转载地址:https://blog.csdn.net/aoshilang2249/article/details/45251711使用WinForm开发,当使用了大量的用户自定义控件UserControl时,界面拖动或切换时就会出现闪烁的问题。解决方法主要就是重写UserControl和Form的CreateParams方法。前端调用UserControl的窗体Form(我的代码是UserControl也可以)这样写:(通俗的讲,就是在Form里new了UserControl,Form这个代码里实现下面

2021-11-19 15:32:59 690

转载 C#:使用双缓冲让界面绘制图形时避免闪烁10

以前做用户控件的时候喜欢拿已有的基础控件来拼。发现这样做用户控件比较方便。但是在控件投入大量使用之后,发现这种做法对控件的速度影响非常大。如果一个控件是由1个Label,一个TextBox复合而成的。那么创建一个这样的控件就相当于要生成2个控件。在设计界面和程序启动的时候速度明显感觉到变慢了。于是全部重新修改,尽量把能不用控件的地方全部改成绘制。比如Label用画出来的文字去替代。比如一个日历控件上的31天的日期,以前用的Label,或者Button。现在全部换成画出来的。创建速度从20毫秒

2021-06-10 15:00:12 432 1

转载 解决C#中取消方向键对控件焦点控制的实现方法

在C# winform 应用程序中,对于键盘响应事件,经常使用到"KeyPress"、“KeyUp”、"KeyDown"事件,可以处理某个按键的自定义处理事件。有时想定义方向键的自定义处理事件时,你可以发现,虽然自定义的处理事件发生了响应,但是也可以看到,按下方向键时,发现窗体上控件的焦点也发生了切换。而这种结果不是我们想要的,我们不想按下方向键时,控件的焦点发生切换,只想响应我们自定义的处理函数即可。下面的方法可以取消方向键对控件焦点的控制:复制代码代码如下:protected override bo

2021-04-05 12:14:11 810 1

原创 Ethercat ETG2000 Slots如何自定义插槽的配置?

每个元素定义了一个槽及其属性,例如和,以及定义了槽内的模块。该槽的最小实例数。该槽的最大实例数。标识槽内的模块,其中Default属性指定模块是否默认启用。要自定义槽,可以根据需要添加、删除或修改和元素。例如,如果你想添加另一个轴或更改模块标识符,可以通过编辑这些元素来实现。以下是具有三个轴的自定义槽配置示例:

2024-07-22 09:58:12 261

原创 深入解析EtherCAT ESI文件中的DataType与SubItem

元素定义了一个复合数据类型,可以包含多个 元素。每个 代表一个自定义的数据结构,可以在对象字典中被多次引用。

2024-07-18 14:07:08 399

原创 ETG2000 5.3.9.2.2 Data types

这个表格描述了EtherCAT中不同数据类型的组成和表示方法。

2024-07-17 13:56:14 362

原创 ETG2000 5.3.9.2 Offline Dictionary DictionaryFile路径

SCI:设备的对象字典应与使用ESI并按照SCI中描述的方式配置设备时的结果相同。这也包括ESI文件中分配模块的信息,如果SCI不使用Modules/Slots元素。当SCI支持Modules/Slots时,分配模块的对象应在相应的模块中描述。

2024-07-17 11:03:59 891

原创 ETG2000 5.3.9.1 Profile Number, Channel information

5.3.9.1 Profile Number, Channel informationIf a device follows a specific device profile, the following elements/attributes are used to specify the profilenumbers of the device and the supported channels.A device has different profile levels, represente

2024-07-16 11:10:27 811

原创 EtherCAT设备ESI文件中的ESC描述:深入解析

在EtherCAT技术中,ESI(EtherCAT Slave Information)文件扮演着至关重要的角色。它详细描述了EtherCAT从站设备的特性和功能。本文将深入探讨ESI文件中ESC(EtherCAT Slave Controller)的描述方式,涵盖单ESC和多ESC设备的情况。对于只有一个ESC的EtherCAT设备,其描述通常直接包含在ESI文件的元素中。以下是一个完整的例子:关键元素解析:: 包含ESC的基本信息,如ProductCode、RevisionNo等。: 描述同步管

2024-07-15 14:57:07 769

原创 EtherCAT从站配置中的ModuleIdents元素:保持模块一致性的关键/EtherCATInfo/Descriptions/Devices/Device/Sci/TargetSpecific/

它是一个可选元素,可以出现0次或1次。ModuleIdents的主要作用是在SCI文件中标识和追踪模块的变更,特别是当一个模块被多次使用且某些实例进行了特定修改时。

2024-07-15 11:43:13 970

原创 /EtherCATInfo/Descriptions/Devices/Device/SubDevice/@Hideable

通过使用@Hideable属性,您可以控制配置工具是否显示某些子设备,这对于简化复杂的 EtherCAT 网络配置非常有用。只有不需要配置的子设备(例如仅提供额外的 EtherCAT 端口)才应设置为可隐藏,从而确保配置工具中的设备列表更加简洁和易于管理。@Hideable属性在ESI文件中用于指示配置工具是否可以隐藏子设备。仅提供额外EtherCAT端口的子设备通常不需要配置,可以隐藏以简化用户界面。而需要配置的子设备则始终显示,确保用户可以对其进行必要的配置。

2024-07-12 17:15:47 1689

原创 /EtherCATInfo/Descriptions/Devices/Device/SubDevice/@PreviousPortNo

Device/@Physics 端口 vs. ESC 内部端口:

2024-07-12 16:55:28 1267

原创 /EtherCATInfo/Descriptions/Devices/Device/SubDevice

我来为您翻译并解释这段文本,然后我们可以讨论它的含义和用例。翻译:5.3.5 SubDevice(子设备)注意:本条款是关于ESI元素"SubDevice"的。它是ESI描述的一部分,用于那些在自身外壳中有多个ESC(EtherCAT从站控制器)的EtherCAT设备。由于每个ESC在配置工具中都会显示为一个独立的设备,这个元素允许将那些额外的ESC(“SubDevice”)归组到第一个ESC下,这个第一个ESC会被配置工具展示给用户。

2024-07-12 16:02:21 1457

原创 /EtherCATInfo/Descriptions/Devices/Device/AlternativeType

位置:/EtherCATInfo/Descriptions/Devices/Device/AlternativeType/@ProductCode。位置:/EtherCATInfo/Descriptions/Devices/Device/AlternativeType/@RevisionNo。值得注意的是,这两个属性都被标记为"供未来使用",这意味着它们可能在当前版本中并不活跃,但为未来的扩展预留了位置。另外,配置工具被指示跳过这个元素,这可能意味着这些信息主要用于其他目的,而不是直接在配置过程中使用。

2024-07-12 15:28:49 327

原创 /EtherCATInfo/Descriptions/Devices/Device/HideType

这个 HideType 元素用于指定哪些旧版本或过时的设备应该在配置工具中被隐藏,通常是为了突出显示较新的设备版本。它可以出现多次(或完全不出现),每次都指定一个应该被隐藏的设备。注意,虽然这个元素指示某些设备应该被隐藏,但配置工具可能会提供一个选项来显示这些被隐藏的设备,以便在必要时访问旧版本。包含不应再由配置工具显示的设备的产品代码,可能还包含修订号(例如,设备的旧版本),当显示此(新)设备时。这表示产品代码为1234,修订号为1,产品修订版本为A的"OldDevice-1234"设备应该被隐藏。

2024-07-12 15:15:11 226

原创 路径:/EtherCATInfo/Descriptions/Devices/Device/Type/@ShowHideableSubDevices

属性是用来控制 EtherCAT 从站设备的配置工具默认显示或隐藏可隐藏子设备的一个布尔属性。通过设置这个属性,用户可以更灵活地管理和查看从站设备的子设备信息。

2024-07-12 13:42:36 469

原创 Type/@ModulePdoGroup /EtherCATInfo/Descriptions/Devices/Device/Type/@ModulePdoGroup

【代码】Type/@ModulePdoGroup /EtherCATInfo/Descriptions/Devices/Device/Type/@ModulePdoGroup。

2024-07-12 13:16:01 848

原创 Type/@ModulePdoGroup /EtherCATInfo/Descriptions/Devices/Device/Type/@ModulePdoGroup

这是关于EtherCAT设备配置中的ModulePdoGroup属性的描述。

2024-07-12 11:54:39 880

原创 Understanding EtherCAT Device Serial Number Checking

以下是对EtherCAT设备序列号检查的理解:EtherCAT(用于控制自动化技术的以太网)是一种在工业自动化中广泛使用的灵活以太网网络协议。配置和管理EtherCAT网络的一个关键方面是正确识别和验证连接的设备。这就是设备XML配置中的属性发挥作用的地方。让我们深入了解这个属性是什么,它的目的,以及如何正确配置它。属性是EtherCAT设备XML配置的一部分。它用于指定如何将从连接设备的EEPROM(电可擦除可编程只读存储器)读取的序列号与存储在网络配置中的序列号进行比较。这种比较确保正确的设备连接到网络

2024-07-12 11:04:08 918

原创 深入解析EtherCAT `CheckProductCode` 属性:确保系统一致性与安全性

在工业自动化领域,EtherCAT(Ethernet for Control Automation Technology)已成为一种广泛应用的实时以太网协议。它的高性能、灵活性和可靠性使其成为复杂自动化任务的理想选择。然而,确保系统的正确配置和安全运行是使用EtherCAT时至关重要的一环。在这方面,属性扮演了重要角色。在本文中,我们将详细解析该属性,探讨其功能、使用场景及最佳实践。

2024-07-12 10:38:27 431

原创 /EtherCATInfo/Descriptions/Devices/Device/Sci/TargetSpecific/ModuleIdents/ModuleIdent

出现次数:强制(1…无限)子元素:SlotNo, Esi, Sci非常好,我会基于您提供的信息,为您总结一份详细的资料,重点关注ModuleIdent元素及其在EtherCAT配置中的作用。EtherCAT设备配置中的ModuleIdent元素在EtherCAT技术中,设备配置信息主要通过两种文件来描述:ESI(EtherCAT Slave Information)和SCI(Slave Configuration Information)。

2024-07-11 16:38:01 235

原创 EtherCAT设备配置:SCI EoeMacIp 文件与实际设备配置的比较过程

在EtherCAT网络的配置过程中,确保配置文件(如SCI文件)与实际设备配置的一致性至关重要。SCI文件与实际设备配置的比较过程是EtherCAT网络配置中的一个关键步骤。通过理解这个过程并采用适当的工具和实践,工程师们可以更好地管理EtherCAT网络,减少配置错误,提高系统的整体效率。确保SCI文件中的配置与实际设备配置一致是非常重要的。配置工具将SCI文件中的MAC地址和IP地址与实际设备的配置进行比较。标题:EtherCAT设备配置:SCI文件与实际设备配置的比较过程。

2024-07-11 15:48:30 1187

原创 /EtherCATInfo/Descriptions/Devices/Device/Sci/TargetSpecific/AoeNetId 解释

解决方案可以是替换初始化命令中的AoE网络ID,以适应目标工具配置,或者如果可能的话,更新目标配置工具中AoE配置的AoE网络ID。在实际应用中,这个元素的使用可以帮助自动化工程师在配置复杂的 EtherCAT 网络时,更容易地处理 AoE 通信的设置,特别是在涉及不同供应商的设备或在不同网络环境中部署相同设备时。如果可能,配置工具可以更新其自身的 AoE 配置,以匹配 SCI 中指定的 AoE 网络 ID。配置工具可以修改 SCI 中的初始化命令,使其使用与目标系统匹配的 AoE 网络 ID。

2024-07-11 15:24:18 262

原创 EtherCAT ESI文件CRC32计算规则和方法

EtherCAT ESI文件的CRC32计算遵循特定的规则,以确保设备描述的完整性。

2024-07-11 14:31:36 249

原创 深入理解EtherCAT设备的Device/@Physics属性

在设计和维护EtherCAT网络时,结合使用这个属性和其他网络工具,可以帮助我们构建更高效、更可靠的工业通信系统。今天,我们将深入探讨EtherCAT设备描述文件(ESI)中的一个关键属性:Device/@Physics。Device/@Physics是EtherCAT从站信息(ESI)文件中的一个强制属性,用于描述设备的物理端口配置。通过深入理解Device/@Physics属性,我们可以更好地掌握EtherCAT设备的物理特性,为构建高性能的工业自动化网络奠定基础。

2024-07-11 14:19:22 420

原创 了解 EtherCAT 配置文件中的 Groups 元素

EtherCAT(以太网控制自动化技术)是一种广泛应用于实时控制和自动化的工业网络协议。EtherCAT 系统信息(ESI)文件结构在配置和管理 EtherCAT 网络中起着至关重要的作用。本文将详细介绍 ESI 文件中的Groups元素及其子元素,包括GroupSortOrderTypeNameCommentImage16x14以及的用途和功能。路径出现频率: 必填 (1…1) - 此元素必须出现一次。数据类型: 未明确指定属性: 无子元素Group路径出现频率。

2024-07-11 13:35:28 1222

原创 深入解析EtherCAT ESI和SCI文件:InfoReference元素的应用与区别

ESI文件是一种基于XML格式的文档,用于详细描述EtherCAT从站设备的特性和功能。它包含了设备的全面配置信息,如供应商ID、产品代码、PDO映射、同步管理器配置等。这些信息对于EtherCAT主站配置和整个自动化系统的集成至关重要。

2024-07-10 17:06:12 520

原创 深入理解EtherCAT从站信息(ESI)文件结构:元素顺序与出现次数规则

ESI文件是一种基于XML格式的文档,用于详细描述EtherCAT从站设备的特性和功能。它包含了设备的全面配置信息,如供应商ID、产品代码、PDO映射、同步管理器配置等。这些信息对于EtherCAT主站配置和整个自动化系统的集成至关重要。

2024-07-10 16:39:26 915

原创 深入理解EtherCAT从站信息(ESI)文件结构

ESI文件是一种基于XML格式的文档,用于详细描述EtherCAT从站设备的特性和功能。它包含了设备的全面配置信息,如供应商ID、产品代码、PDO(Process Data Objects)映射、同步管理器配置等。这些信息对于EtherCAT主站配置和整个自动化系统的集成至关重要。

2024-07-10 16:31:45 925

原创 Ethercat这里的CRC是如何计算和使用的?

总之,ESI和SCI中的CRC校验机制共同工作,以确保EtherCAT系统的配置完整性和一致性。ESI CRC关注设备描述的正确性,而SCI CRC关注实际运行配置的正确性。您提出了一个很好的问题。是的,SCI(Slave Configuration Information)和ESI(EtherCAT Slave Information)都使用CRC校验,但它们的用途和应用场景略有不同。通过这种方式,CRC在EtherCAT系统中提供了一个简单但有效的机制来确保配置数据的一致性和完整性。

2024-07-10 15:38:57 836

原创 xml CDATA

使用CDATA的好处是可以轻松包含包含特殊字符的内容,而无需担心这些字符被误解为XML结构的一部分。CDATA(Character Data)部分是XML中的一种特殊结构,用于包含可能包含特殊字符的文本内容。特殊字符:在CDATA部分内,通常需要转义的XML特殊字符(如、&等)可以直接使用,无需转义。内容处理:在CDATA部分中的所有内容都被视为纯文本数据,而不会被XML解析器解释为标记或结构。用途:CDATA通常用于包含可能包含XML语法的文本,如代码片段、脚本或包含大量特殊字符的内容。

2024-07-10 15:04:16 369

原创 子设备如果 SCI 使用了 /SubDevice 元素(因为 ESI 使用了),那么被链接的设备应该是同一文件的一部分。

总之,这条规范的目的是确保SCI文件是自包含的,所有必要的配置信息,包括子设备的信息,都应该在同一个文件中。3.2.4.12 子设备如果 SCI 使用了 /SubDevice 元素(因为 ESI 使用了),那么被链接的设备应该是同一文件的一部分。在这个例子中,子设备(SubDevice)的所有配置信息都直接包含在主SCI文件中,而不是引用另一个外部文件。如果SCI使用了/SubDevice元素,那么这个子设备的所有相关信息都应该包含在同一个SCI文件中。这是在SCI文件中用来描述子设备的XML元素。

2024-07-10 14:37:04 122

原创 SCI 模块/插槽

我理解您对这段ETG 2000标准中关于模块/插槽的描述感到困惑。这确实是一个复杂的主题,涉及EtherCAT从站信息(ESI)和从站配置信息(SCI)文件的结构。让我为您解释一下关键点,并给出一些例子。模块和插槽的概念:在EtherCAT系统中,从站设备可以有模块化结构。"插槽"是设备上可以插入模块的物理或逻辑位置,"模块"是可以插入这些插槽的功能单元。ESI(EtherCAT Slave Information)文件描述了从站设备的所有可能配置。

2024-07-10 14:08:46 801

原创 这是EtherCAT ETG 2000标准中的3.2.4.7节“初始化命令“的中文翻译:

翻译中文,ethercat etg 2000标准这是EtherCAT ETG 2000标准中的3.2.4.7节"初始化命令"的中文翻译:3.2.4.7 初始化命令由配置工具创建的所有邮箱初始化命令,这些命令源自相关的ESI属性(包括@DownloadModuleAddressList = true、@PdoConfig = true、@PdoAssign = true),都会作为命令添加到SCI中。因此,SCI不包含任何会导致额外初始化命令的标志。

2024-07-10 13:21:34 746

原创 EtherCAT ETG.2000 标准中的 OverwrittenByModule 元素解释

在 EtherCAT 技术组(ETG)的 ETG.2000 标准中,属性用于处理 ESI(EtherCAT Slave Information)文件中的某些特殊元素。这个机制主要用于处理模块化设备的配置信息。

2024-07-10 10:56:10 647

原创 固定的过程数据配置和PDO属性设置的实现及其重要性

固定配置:在SCI文件中,所有描述的过程数据配置都是固定的,不允许在配置工具中进行修改。必需属性:RxPdo和TxPdo的@mandatory和@fixed属性都必须设置为true,确保这些PDO是必需的且不可更改。简化配置:省略了可选的或未使用的PDO,保持SCI文件简洁和系统的稳定性。在自动化系统中,确保设备配置的稳定性和可预测性是至关重要的。通过在SCI文件中固定过程数据配置并正确设置PDO属性,我们可以实现这一目标。

2024-07-09 17:14:05 891

原创 理解SCI文件:EtherCAT子设备固定配置的关键

SCI文件是对EtherCAT子设备固定配置的描述。它是一个包含所有必要信息的文件,使子设备能够在没有ESI(EtherCAT Slave Information)文件的情况下无故障运行。SCI文件的设计目的是提供一个完整且固定的子设备配置,确保设备的稳定性和一致性。

2024-07-09 17:12:47 358

原创 理解EtherCAT ESI文件中的插槽和模块配置

ESI文件是一种XML格式的文件,用于描述EtherCAT从站设备的特性和配置。它包含了设备的基本信息、通信设置、支持的模块和插槽等内容。通过ESI文件,用户可以定义和管理设备的各种参数,以便在EtherCAT网络中实现高效的通信和控制。在ESI文件中,插槽(Slot)和模块(Module)的配置是实现设备灵活性和扩展性的关键。每个插槽可以容纳一个或多个特定类型的模块,这些模块可以根据应用需求进行更换或重新配置。下面我们详细解析一个示例ESI文件,展示如何定义插槽和模块。

2024-07-09 14:52:20 1179

原创 使用SCI文件简化EtherCAT设备配置

SCI(子设备配置信息)文件是用于描述EtherCAT设备特定配置的XML文件。它类似于ESI(EtherCAT从站信息)文件,但包含一些特定的额外元素,以更详细地定义设备的配置。通过使用SCI文件,我们可以显著简化EtherCAT设备的配置和管理过程。在复杂的工业自动化项目中,这种方法不仅提高了效率,还保证了配置的一致性和可靠性。希望本文能帮助您更好地理解和应用SCI文件,提升您的项目管理水平。

2024-07-08 17:38:31 1147

Product_Consumer.zip

qt5 vs2019 生产者消费者模式代码c++代码

2020-08-19

MySQL浏览器SQLyog-11.5.1-0.x86Community.rar

mysql操作实用工具,方便 mysql操作实用工具,方便 mysql操作实用工具,方便 你能简单并快速地在各种数据库系统间传输数据,或传输一份指定 SQL 格式及编码的纯文本文件。这可以简化从一台服务器迁移数据到另一台服务器的类型的进程。不同数据库的批处理作业也可以计划并在指定的时间运行。

2019-11-20

正则表达式只可以输入只允许输入中文、数字、字母、下划线

正则表达式只可以输入只允许输入中文、数字、字母、下划线

2019-08-19

Navicat for MySQL_11.2.15.rar

Navicat for MySQL是一个强大的MySQL数据库管理和开发工具。Navicat为专业开发者提供了一套强大的足够尖端的工具,但它对于新用户仍然是易于学习。Navicat,使用了极好的图形用户界面(GUI),可以让你用一种安全和更为容易的方式快速和容易地创建、组织、存取和共享信息。

2019-08-04

msinttypes-r26_vs2008没有c99头文件.rar

解决visual studio 2008缺少inttypes.h和stdint.h的问题.

2019-06-12

qt5 ftp文件直接加入到工程

qt5里没有ftp,直接把qt4里的文件用

2019-03-08

qt5 qftp编译

在github官方下载的源码,没有导出宏,qurlinfo.h在当前目录下使用,DEFINES += FTP_LIB,qtftp-master\src\qftp\qftp.pro文件加宏DEFINES += FTP_LIB

2019-02-25

iec61850应用入门

全书共分五章: 第一章简单介绍常规变电站自动化系统的不足,主要介绍了IEC61850标准的内容、特点和发展趋势; 第二章介绍面向对象的基本概念,OSI、TCP/IP网络模型,以太网技术基础,XML、XMLSchema基础和常用软件工具; 第三章介绍IEC61850的分层信息模型、具体定义、配置方式与配置文件; 第四章主要介绍MMS基础知识、IEC61850与MMS的映射关系、MMS与ASN.1编解码和MMS典型报文分析; 第五章介绍GOOSE服务、IEC61850—9—2SV服务、简单网络时间协议和IEEE1588精确时钟同步协议。

2019-02-02

windows tcp&udp;测试工具 iocp代码

iocp服务器代码,一个是只有接收的,还有一个是接受后会发回 tcp&udp;并行压力测试工具 质量杠杠的

2019-01-30

win10 64 windbg

Debugging Tools for Windows 10 (WinDbg) If you just need the Debugging Tools for Windows 10, and not WDK 10 or Visual Studio 2015, you can install the debugging tools as a standalone component from Windows SDK. In the installation wizard, select Debugging Tools for Windows, and deselect all other co

2019-01-27

udnerstand linux

功能强大的代码阅读工具,我之前在windows上用过,linux我想安装一个,妈的,有的积分要的太高了,为了给大家弄点好福利,我自己搞了一个

2018-10-16

linux c线程池

linux pthreadpool实现和线程池的用处 简单易懂 互斥和信号量使用

2018-10-15

iocp服务器代码_tct&udp;测试工具

iocp服务器代码,一个是只有接受的,还有一个是接受后会发回 tcp&udp;并行压力测试工具 质量杠杠的

2018-09-29

QTimer在子线程里执行例子

QTimer在子线程里执行例子,代码简单,调试方便 vs2008

2018-08-31

云风伙伴算法代码

这个内存分配器需要是非入侵式的,即不在要分配的内存块中写 cookie 。 而我的需求中,需要被管理的内存块都是很规则的,成 2 的整数次幂的长度。buddy memory allocation 刚好适用。 算法很简单,就是每次把一个正内存块对半切分,一直切到需要的大小分配出去。回收的时候,如果跟它配对的块也是未被使用的,就合并成一个大的块。标准算法下,分配和释放的时间复杂度都是 O(log N) ,N 不会特别大。算法的优点是碎片率很小。而且很容易做成非入侵式的,不用在被管理的内存上保存 cookie 。只需要额外开辟一个二叉树记录内存使用状态即可。 我吃完饭简单 google 了一下,没有立刻找到满足我要求的现成代码。心里估算了一下,C 代码量应该在 200 行以下,我大概可以在 1 小时内写完。所以就毫不犹豫的实现了一份。 然后,自然是开源了。有兴趣的同学可以去 github 拿一份。这样就省得到再需要时再造轮子了。嘿嘿。 btw, 当然这块代码有许多值得优化的地方,比如可以把里面的递归优化成循环回溯。这个算法我读初中时经常写。因为初一那个时候参加信息学奥赛时用的 basic 不支持局部变量,全部变量都是全局的,很难实现递归。所以早期我都不用递归遍历二叉树的,感觉写起来好麻烦。 不过循环回溯遍历树应该是比递归快不少的,因为减少了许多不必要的环境变量压栈,对不支持 closure 的 C 语言尤其是。 这个库用起来很简单。它并不实际管理内存(它不侵入被管理的内存)。你可以设想你另外有一大块内存是由许多最小单位块合起来的。你可以假设最小单位是 1K 。那么用 buddy_new(10) 就可以帮你管理 1024K 内存。 buddy_alloc 可以请求若干个最小单位块,返回一个序号。然后用户可以自己去大内存上索引出来用。用完调用 buddy_free 归还即可。 为了调试方便,我还提供了 buddy_dump 打印二叉树的细节,可以直观的看出那些内存区域未被使用,哪些已经被占用。 ps. 果然,写这篇 blog 花掉的时间比完成这些代码时间更长。代码也如我所料的没有超过 200 行。看看,把东西描述清楚就是比实现一个东西要花更长的时间,这就是项目人多反而做的慢的原因之一吧。

2018-08-08

QTabWidget可以拖拽里面的tab

QTabWidget之间可以实现拖动,分离出新的窗口到另一个QTabWidget里

2018-05-27

log4qt qt5版本

我在豆子的基础上做了一些改动,豆子的没有导出类,直接加载到工程里用,不太方便 此版本可以在qt5上使用。 用此项目可以方便的记录qt项目中的各种异常信息,方便调试

2018-04-27

104报文解读

104规约大致有1997年和2002年(02版)两个版本,在配置上没什么变化,只是02版在97版上扩展了遥测、遥信等信息体起始地址,区别如下: 类别 97版 02版 YX 1H------400H 1H------4000H YC 701H------900H 4001H------5000H YK b01H-------b80H 6001H-------6100H 设点 B81H-------c00H 6201H--------6400H YM C01H-------c80H 6401H---------6600H 目前常用的是02版的,故一个104通道,YX最多可配16384个,YC最多可配 4096个,YK最多可配256个,YM最多可配512个。 4个控制域8位位组:前两个是发送序号,后两个是接收序号

2018-03-01

仿qq界面 qt

可执行文件: 使用的Qt4.7.4+VS2008 qq登陆界面和qq主界面,没有实现具体功能

2018-02-28

win10 windbg 64

Debugging Tools for Windows 10 (WinDbg) If you just need the Debugging Tools for Windows 10, and not WDK 10 or Visual Studio 2015, you can install the debugging tools as a standalone component from Windows SDK. In the installation wizard, select Debugging Tools for Windows, and deselect all other components.

2018-01-06

Overview NClass is a free tool to easily create UML class diagra

Overview NClass is a free tool to easily create UML class diagrams with full C# and Java language support. The user interface is designed to be simple and user-friendly for easy and fast development. Properties, enums, delegates and other language specific elements are fully supported with strict syntactical and semantical verification. Design your application with just a few clicks - the main goal is to provide a simple but powerful class designer that is very intuitive to use. Diagram styles

2023-05-08

WMIDiaog安装程序 详细方法

You can receive error 0x80041010 from multiple applications that call WMI. For my example it was received in SCCM while patches were being applied.

2022-10-12

c# winform 绘制多行文本:自动换行:文本

c# winform 绘制多行文本:自动换行:文本c# winform 绘制多行文本:自动换行:文本c# winform 绘制多行文本:自动换行:文本c# winform 绘制多行文本:自动换行:文本c# winform 绘制多行文本:自动换行:文本c# winform 绘制多行文本:自动换行:文本c# winform 绘制多行文本:自动换行:文本c# winform 绘制多行文本:自动换行:文本c# winform 绘制多行文本:自动换行:文本c# winform 绘制多行文本:自动换行:文本c# winform 绘制多行文本:自动换行:文本

2022-06-29

c# winfrom自定义图片和文字

c# winfrom自定义图片和文字 c# winfrom自定义图片和文字 c# winfrom自定义图片和文字

2022-06-24

C#中标准Dispose模式的实现

C#中标准Dispose模式的实现 C#中标准Dispose模式的实现 C#中标准Dispose模式的实现 C#中标准Dispose模式的实现 C#中标准Dispose模式的实现 C#中标准Dispose模式的实现 C#中标准Dispose模式的实现 C#中标准Dispose模式的实现 C#中标准Dispose模式的实现 C#中标准Dispose模式的实现 C#中标准Dispose模式的实现

2022-04-22

c# 测试UserControl内存泄漏

c# 测试UserControl内存泄漏 c# 测试UserControl内存泄漏 c# 测试UserControl内存泄漏 c# 测试UserControl内存泄漏 c# 测试UserControl内存泄漏

2022-04-21

MicrosoftProgram_Install_and_Uninstall.meta

卸载程序失败,可以用这个工具修复

2022-01-25

HCloner.zip

深拷贝 Below you can find a short article on how to do a deep copy of objects using Reflection in C#. Please be aware that this is my first article here (even first article in the English language...)

2021-11-23

C# GDI+ 画线、画矩形、画椭圆等

C# GDI+ 画线、画矩形、画椭圆等 vs2019

2021-10-15

grpc_practice.zip

Net Core gRPC入门——项目搭建、服务端、客户端

2021-05-29

ProgressBar_BackgroundWorker.zip

C#.NET中使用BackgroundWorker在模态对话框中显示进度条

2021-05-27

正则表达式中文字符数字

各种正则表达式中文字符数字等等

2021-03-25

CMakeProject1.zip

cmake简单工程 https://www.jb51.net/article/180466.htm参考网址

2021-03-23

TestHttpPost.zip

c#实现http get post

2021-03-09

CustonColumn.zip

c# DataGridView的列设置combobox和设置RichTextBox vs2019 我的DataGridView单元格输入中文乱码,RichTextBox可以正常输入中文,我的思路就是RichTextBox覆盖单元格,然后把RichTextBox的值传给单元格

2020-12-21

Modbus_Application_Protocol_V1_1b.pdf

Modbus_Application_Protocol_V1_1b modbus协议英文版

2020-11-06

simpleIO_direct_control.cid

libiec61850\examples\server_example_basic_io\simpleIO_direct_control.cid iedsout运行服务器仿真文件 客户端程序client_example2

2020-10-13

gcc各个版本下载_gcc-4.8.5.rar

gcc各个版本源代码下载地址 里面打包了gcc-4.8.5源代码

2020-03-10

styledemo.rar

QSS样式表之PS黑色风格+白色风格+淡蓝色风格

2020-03-09

KKSetup.exe

KK录像机 - 免费的超清录屏软件,集屏幕录像、同步录音、视频编辑、视频修复于一体。支持录制电脑、手机屏幕、各类游戏、桌面操作、网络课程、qq视频、在线视频等

2020-02-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除