VirtualTreeview是一套Delphi下优秀的VCL控件,代码质量高,使用灵活、功能强大、性能非常好,它不是基于任何系统控件,而是重新编写的。
正如它的名字已经表明,这个控件与其他这类控件相比,使用了一个不同的树管理模式。
它不知道它所管理的数据是什么东西(除了它的大小),甚至没有一个节点的标题。
一切都获取于通过应用程序的事件(或通过派生覆盖方法)。
VirtualTreeview是经过精心设计和彻底的测试。
这个控件证明了它的概念以及在许多商业产品和免费软件的项目中都很健康的运行。
VirtualTreeview是非常快的。
增加一百万节点只需要700毫秒。
需要很少的内存开销。
很适合高速接入,遍历一百万个节点只需要不到0.5秒的时间。
支持多选,支持背景图片,支持复选框,支持右键菜单,支持节点排序,支持Unicode,支持拖曳,支持剪贴板,支持多行列标题等等。
2025/10/15 13:51:33 3.3MB VirtualTreeview
1
配送一个自己写的串口驱动程序用DMA接收数据接收完会产生一个空闲中断由此可判断接收完一个包的数据再配送一个我自己写的动态内存管理跟ESP8266的驱动在项目中测试460800的波特率30kb一秒的数据接收一包1024个字节每包需要应答15字节的情况下AT指令处理是使用多个缓冲级来处理模块发送过来的数据分别有模块应答缓冲级跟等待应答的缓冲级、被忽略的AT指令集的缓冲级(例如注册一个SENDOK\r\n则模块应答此条指令立刻清除缓冲级释放内存无需等待超时直接忽略)还有需要回调的缓冲级(则出现此指令调用回调函数)都是通过注册的方式来实现如果出现一包跟指令被分到一个包内AT处理函数一样可以搜索到AT指令使用strstr函数来实现函数的缓冲级都是指针不占用内存使用动态内存管理的方式有数据则创建内存放入数据作为一个缓冲级如果模块应答的数据在规定的时间内没有响应则删除此缓冲级函数前都有注释介绍下面介绍一些常用的函数:at_init初始化一些变量已经串口at_time_task使用定时器回调1毫秒回调一次用来计数超时的指令缓冲&等待超时的计数at_clear_all在模块开机的时候可能会有很多乱数据可以在初始化完毕后使用此函数清除所有缓冲级释放所有内存at_processing处理AT的应答超时的指令(做删除释放内存的动作),还有处理等待的AT指令此函数一定要不断循环处理可以加入到定时器目前我实验是在UCOS上的所以直接创建个任务来执行此函数当程序在等待某个AT指令的时候此函数会寻找接收的缓冲级是否有等待的AT指令at_cmd_cb_hand回调处理函数如果接收缓冲级出现某个已经注册的指令则回调注册时所填写的函数地址at_send_cmd发送一个AT指令可以用跟printf一样使用%d等等at_send_data发送数据的时候所使用需要填写长度at_cmd_ignore_register注册一个被忽略的AT指令带入参数*s(例如填写一个"SENDOK"则模块应答的此条指令直接被忽略释放内存被忽略之前会检查此缓冲级会不会带有别的AT指令需要回调的)at_cmd_ignore_cancel取消被忽略的指令则取消已经注册的被忽略的AT指令at_cmd_cb_registerAT指令的回调注册例如参数填写"+IPD",函数名a则出现+IPD的时候回调a函数a函数有类型在at.h文件里面有at_cmd_cb_cancel注销回调你懂得at_wait_cmd等待一个AT指令集或者超时则立刻返回等待途中会不断调用OS的延迟程序让系统能有时间去执行其他任务使用方法例如{at_send_cmd("AT+UART=%u,%u,%u,%u,%u\r\n",baudrate,databit,stopbit,parity,flow_control);return(esp_error)at_wait_cmd("\r\nOK\r\n",2000,NULL);}at_errorat_wait2_cmd(char*s,char*s2,u16timeout,u8*index)此函数是等待两个AT指令集如果出现一个则立刻返回返回值h文件有介绍AT_DONE则出现此条指令index参数则提取应答的缓冲首地址使用at_buf_get函数获取首地址使用完后要调用at_free_buf来清除并释放这个缓冲级at_buf_len_get查询此应答的缓冲级长度如果在index填写NULL则不需要缓冲级首地址直接清除释放缓冲级
1
实验内容设计一个滑动窗口协议,在仿真环境下编程实现有噪音信道两站点间无差错双工通信信道模型8000bps全双工卫星信道单向传播时延270毫秒信道误码率为10-5物理层接口:提供帧传输服务,帧间有1ms帧边界网络层属性:分组长度固定256字节实现GoBackN协议
1
1.硬件:stm32f105,ws2812b串行灯2.技术实现:DMA发送SPI数据,保证纳秒级别的信号稳定3.标准库,系统频率72M,SPI分频32,故每个bit占用时间444纳秒。
所以3个bit对应ws2812b一个bit。
故24位灯每个占用:24*3/8=9byte4.函数说明:WS2812_Init()初始化WS2812_Check()系统轮询WS2812_SetColor()改变单个灯色彩WS2812_Test()过山车跑灯测试GetTickCount()获取毫秒,测试可先注释掉5.几个宏定义:#define uchar uint8_t#define ulong uint32_t#defineBIT(x) (1<<x)
2025/9/19 13:19:22 3KB ws2812b stm32f105 串行灯 dma
1
Java开发工具包(JavaDevelopmentKit,简称JDK)是Oracle公司提供的用于开发和运行Java应用程序的软件包。
在这个特定的版本“jdk-11.0.18win-64”中,我们关注的是Java11的一个更新,版本号为11.0.18,且该版本是针对Windows64位操作系统的。
这个压缩包包含了一个可执行文件“jdk-11.0.18_windows-x64_bin.exe”,这通常是JDK安装程序,用于在Windows64位系统上安装Java开发环境。
Java11是一个长期支持(Long-TermSupport,LTS)版本,意味着它将得到Oracle更长时间的技术支持和安全更新,对于企业和开发团队来说尤其重要,因为它提供了稳定性和安全性保障。
Java11在2018年9月发布,引入了许多新特性、改进和优化。
1.**模块化系统(ProjectJigsaw)**:Java9引入了模块化系统,但Java11进一步完善了这一特性。
模块化有助于改善代码的组织,提高性能,减少内存占用,并且使大型应用的构建和部署更加容易。
2.**HTTP客户端API(Java.net.http)**:Java11添加了内置的HTTP客户端API,使得开发者可以直接在Java代码中处理HTTP和HTTPS请求,而无需依赖第三方库。
3.**本地变量类型推断(var关键字)**:Java11引入了`var`关键字,允许局部变量声明时省略类型,由编译器根据初始值自动推断。
4.**动态CDS(ClassDataSharing)**:这是一个性能优化功能,允许在JVM启动时共享已加载类的数据,减少启动时间和内存消耗。
5.**改进的字符串处理**:包括新的`String#lines()`方法,用于获取字符串的所有行,以及`String#strip()`和`String#stripIndent()`,用于去除字符串两端的空白字符和缩进。
6.**ZGC(ZGarbageCollector)**:这是一种低延迟的垃圾收集器,适合大内存应用,其目标是在大部分情况下保持10毫秒以下的暂停时间。
7.**JLink**:这是一个命令行工具,用于构建自定义的Java运行时环境,只包含应用所需的模块,从而减小程序的大小。
8.**JEP325:FlightRecorder**:提供了一种标准接口来记录JVM内部事件,如性能数据,这对于诊断和分析性能问题非常有用。
9.**JEP326:JavaMissionControl**:这是一个强大的Java应用性能监控和诊断工具,现在成为JDK的一部分。
10.**其他小改进**:包括对JShell(JavaREPL)、Javadoc和JAR文件格式的增强,以及对SSL/TLS协议的支持更新等。
安装“jdk-11.0.18_windows-x64_bin.exe”后,开发者可以利用Java11的新特性和性能提升进行软件开发,包括编写桌面应用、Web应用、移动应用以及大数据处理和云计算服务。
此外,JDK还包括JRE(JavaRuntimeEnvironment),使得用户可以运行Java应用程序。
开发者还可以使用JDK中的编译器(javac)、调试器(jdb)和其他工具进行开发工作。
2025/9/7 0:18:01 139.69MB java
1
二、支持的功能2.1支持三菱GXDeveloer/GXWORKS2兼容三菱GXDeveloper/GXWORKS2,支持PLC写入、PLC读出、PLC校验、在线监视、在线监视软元件批量监视、在线监视(写入模式)以及远程操作RUN/STOP等功能。
2.2、兼容一般的组态触摸屏(如昆仑通态触摸屏)、变频器、仪表等2.3、基础版本程序支持如下指令(其他指令亲可以自己添加):RSTRSTSRSTTCOUTOUTSSETSETSADDSUBMULDIVLDLDILDPLDFANDANIORORIANDPANDFORPORFADDPSUBPMULPDIVPMOVMOVPENDFENDCJCALLRETINVLD=LD>LD=AND=AND>AND=2.4、FX2N源码优化版本升级记录:1)优化程序风格,规整代码,并新增部分注释,方便读懂2)新增指令如下:INCINCPDECDECPMPPLDOR=OR>OR=ORWANDWORWXORNEGROLRORRCLRCRSQRSWAP3)新增波特率自适应功能9600、192004)完善功能,当远程STOP或者硬件开关使PLC为STOP状态时,将内部寄存器,定时器,计数器等清零功能,与三菱FX2N兼容,具体清零寄存器包括(D0-D8000;
C0-C255;
T0-T255;
M000--M3072,其余不清零)5)新增断电保持功能,更改相关断电保持寄存器,具体如下:450个数据寄存器:D500--D950150个计数器:C101--C150150个定时器:T100--T150512个内部继电器:M512--M1024其他寄存器STOP或者断电将清零6)新增模拟量功能:2AD+2DA(若有需要可以多加)2AD路模拟量输入对应寄存器:D8030D8031(0~10V-->0~4095)2DA路模拟量输出对应寄存器:D7030D7031(0~4095-->0~10V)7)新增I2C函数功能:方便外部EEPROM扩展8)优化定时器功能(与三菱兼容):8.1)常规定时器T0~T255共256点T0~T199为100ms定时器,共200点T200~T245为10ms定时器,共46点8.2)积算定时器T246~T255共10点T246~T249为1ms积算定时,共4点T250~T255为100ms积算定时器,共6点2.5、PLC编程支持的功能编程语言梯形图程序容量8K步内部寄存器D8000个定时器T 256个记数器C256个输入点X256个输出点Y256个壮态继电器S600个辅助继电器M3071点M0-M3071特殊功能:M8000(运行监视触点)M8001(运行监视反触点).M8002(初始化脉冲触点)M8003(初始化脉冲反触点)M8004(错误指示触点)M8011(10毫秒时钟脉冲)M8012(100毫秒时钟脉冲)M8013(1秒时钟脉冲)M8014(1分时钟脉冲)M8020(零位标志)M8021(借位标志)M8022(进位标志)M8029(指令执行结束标志)M8033(内存保持触点)M8034(禁止输出触点).更多参考FX2N系列。
2025/8/16 7:58:10 7.63MB PLC源码
1
vb.net串口通讯测试项目源码,本源码用于练习SerialPort控件、DataReceived事件、16进制操作,同时用于工程需要。
作者:李潇海。
  运行后先检测测试需用的COM端口是否打开,弹出提示。
  测试时请确保发送周期为正整数!串口测试窗口中,可配置参数:端口、波特率、检验位、数据位、停止位等,支持以十六进制发送和接收数据,还可以毫秒定时发送数据。
操作方式上,可设置自动清空测试数据,发送文件或发送数据等。
右侧为串口测试时的结果显示区。
2025/8/5 2:31:25 20KB VB源码-网络相关
1
向您SQLServer提供所有缺少的部分,例如正则表达式和动态算术字符串评估。
--SELECT3SELECTSQLNET::New('x+y').ValueInt('x',1).ValueInt('y',2).EvalInt()asResult查找您的解决方案:动态算术表达式动态数据透视表正则表达式字符串插值用DirectoryInfo和FileInfo替换xp_cmdshell性能与可扩展性性能调整是DBA最重要的任务之一。
不要错过通过用户定义函数(UDF)和表值函数(TVF)将简单表达式的查询性能显着提高300%,将复杂代码的查询性能显着提高2000%以上的机会。
在SQL中使用分隔符分割字符串的基准方法1,000行10,000行100,000行1,000,000行Eval-SQL.NET4毫秒13毫秒160毫秒1,650毫秒fn_split(TVF)100毫秒625毫秒5,500毫秒55,000毫秒下载*本月解锁的PRO版本最低要求:SQL2012/SQ
2025/7/21 1:51:37 520KB sql sql-server evaluation regular-expression
1
1、 点击“Start”按钮,计时开始,在按钮与文本框之间显示流逝的时间,并在窗口打印开始时间等信息。
2、 “Stop”按钮计时结束,打印结束时间等信息。
3、 Lap按钮:打印从开始起流逝的总时间,及单圈时间。
4、 Clear按钮:清除打印的信息。
5、 Save按钮:将打印的信息写到日志文件。
6、 时间精确到毫秒。
2025/7/20 11:58:32 11KB 秒表程序
1
支持淘宝购物车毫秒级别的商品秒杀,让你抢购不再烦恼
2025/6/25 19:22:57 2KB 脚本
1
共 117 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡