'这个代码用在工控I/O接点检测 判定某个接点为 0(关闭状态) 或 1(打开状态) '十进制与二进制的转换 '添加 Text1 Command1 Command2 Command3 Label1 Shape1(0) '128,64,32,16,8,4,2,1 (从右边往左算是1-128 连乘2 合计 255) '可以理解为2的7次方 7次方 6次方 5次方。。。。。0次方 Option Explicit Private WithEvents Timer1 As Timer Dim i&, j&, aa$ '变量定义与型态声明 Private Sub Form_Load() Command1.Caption = "10转2" Command2.Caption = "2转10" Command3.Caption = "随机灯号" Command1.Enabled = True Command2.Enabled = False Text1.Text = "151" '比方说I/O板卡返回 151 转为二进制得到 10010111 '****************************** For i = 1 To 7 '循环线上添加 7个 Shape数组 形状控件 与原先的1个 共有8个 Load Shape1(i) '装载控件 索引编号为i Shape1(i).Visible = True '线上添加的控件默认为不可见 我们得将它设为 可见 Shape1(i).Left = Shape1(i - 1).Left + Shape1(0).Width + 70 '定位新添加的控件,在前一个控件的位置加上宽度再加上间距70 Next i '******************************* Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - Me.Height) \ 2 '窗体定位于屏幕中心 Command1_Click '自动点击按钮1 将十进制的151转为二进制 Set Timer1 = Controls.Add("vb.Timer", "Timer1") '线上添加 Timer1 定时器控件 Timer1.Interval = 3000: Timer1.Enabled = False '定时器Timer1的激发间隔设为3000毫秒 暂时禁用 Me.Caption = "工控第一课 研华PCI-1761接点检测" Label1.Caption = "151" End Sub Private Sub Command1_Click() '十进制转二进制 If Command3.Caption = "停止演示" Then Command3_Click '如果随机演示正在进行中 我们先自动点击按钮3 让它停止演示 'Text1.Text是文字形态 我们必须先使用Val函数将它转为数值 '调用 Ten2Two 副程序将Text1.Text转换过的数值 转换为文字型态的二进制 再赋值给 Text1.Text Text1.Text = Format(Ten2Two(Val(Text1.Text)), "00000000") For i = 1 To Len(Text1.Text) '从1开始循环到Text1长度 '如果Shape1数组i-1的值为0 Shape1的颜色显示绿色 否则显示红色 Shape1(i - 1).FillColor = IIf(Mid(Text1.Text, i, 1) = 0, QBColor(10), QBColor(12)) Next i Command1.Enabled = Not Command1.Enabled 'Not的使用技术原理是反向 假变成真 真变成假 Command2.Enabled = Not Command2.Enabled '让两个按钮反向为 可用或不可用 End Sub Private Sub Command2_Click() '二进制转十进制 If Command3.Caption = "停止演示" Then Command3_Click '如果随机演示正在进行中 我们先自动点击按钮3 让它停止演示 '调用副程序Two2Ten 将Text1文本框内的二进制内容转换返回数值 '再使用 Cstr函数将此数值转换为文字型态 再用 Trim函数将此文字型内容左右两边可能的空白字符去掉 Text1.Text = Trim(CStr(Two2Ten(Text1.Text))) Command1.Enabled = Not Command1.Enabled '让两个按钮反向为 可用或不可用 Command2.Enabled = Not Command2.Enabled End Sub Private Sub Command3_Click() '随机演示数值转换并显示相应的灯号 Command3.Caption = IIf(Command3.Caption = "随机灯号", "停止演示", "随机灯号") Timer1.Enabled = Not Timer1.Enabled '定时器反向 开始或停止演示 End Sub Function Ten2Two(ByVal Tvalue As Long) As String '十进制转二进制 If Tvalue = 0 Then Ten2Two = "00000000": Exit Function aa = "" Do Until Tvalue < 1 '循环直到变量Tvalue的值小于 1 才结束循环 aa = CStr(Tvalue Mod 2) & aa '变量aa 逐一累加 Tvalue = Int(Tvalue / 2) '将变量Tvalue除以2 再用函数Int将此数值去除小数 整数化 Loop Ten2Two = aa '将文字变量aa返回 End Function Function Two2Ten(ByVal Tstr As String) As Long '二进制转十进制 Dim TmpVal& '定义数值型变量 TmpVal j = Len(Trim(Tstr)) '将参数Tstr去除空白后计算它的长度(几个字符) 赋值给 j For i = 1 To j '从第一个字符开始循环到j个字符 '变量开始逐一累加i的?次方 TmpVal = IIf(Val(Mid(Tstr, j - (i - 1), 1)) > 0, TmpVal + 2 ^ (i - 1), TmpVal) Next i Two2Ten = TmpVal '将数值变量TmpVal返回 End Function Private Sub Timer1_Timer() '定时器的事件 Dim RndVal& '变量定义 Timer1.Enabled = False '换算过程前暂时先让定时器停止运行 Randomize '随机数种子初始化 RndVal = Int(Rnd * 256) '0-255共256个数 随机取值 '将取到的随机数调用副程序Ten2Two 将十进制接收值转换为0与1的二进制后 赋值给文字型变量aa aa = Format(Trim(CStr(Ten2Two(RndVal))), "00000000") Label1.Caption = CStr(RndVal) '让标签显示接收到(随机数)的十进制值 Text1.Text = aa '文本框Text1显示变量aa的内容 For i = 1 To Len(aa) '从第一个字符开始循环到变量aa包含几个字符 '如果Shape1数组i-1的值为0 Shape1的颜色显示绿色 否则显示红色 Shape1(i - 1).FillColor = IIf(Mid(aa, i, 1) = "0", QBColor(10), QBColor(12)) Next i Timer1.Enabled = True '换算完成后再让定时器继续运行 End Sub
2026-01-09 11:25:41 600B pci-1761
1
Eazfuscator.NET 3.3最后一个免费版本!(支持Visual Studio 2012) 3.4开始收费!
2026-01-09 11:14:17 3.95MB
1
### Nginx安装与配置详解 #### 一、Nginx简介 Nginx是一款高性能的HTTP和反向代理Web服务器软件,它以其出色的稳定性、丰富的功能集、简单的配置方式和较低的内存消耗而闻名。Nginx可以作为Web服务器或负载均衡器使用,非常适合处理大量的并发连接请求。 #### 二、Nginx安装步骤 ##### 1. 下载源码包 在服务器上创建一个专门用于下载Nginx源码包的目录: ```bash mkdir /home/download/ cd /home/download/ ``` 接着,下载Nginx的源码包。这里以版本1.18.0为例: ```bash wget http://nginx.org/download/nginx-1.18.0.tar.gz tar -xzvf nginx-1.18.0.tar.gz ``` ##### 2. 安装依赖 Nginx的编译安装需要一些依赖库,例如OpenSSL、zlib和PCRE等。这些库可以通过以下命令进行安装: ```bash yum -y install openssl openssl-devel yum -y install gcc gcc-c++ ``` 然后,下载并解压zlib和PCRE的源码包: ```bash wget http://zlib.net/zlib-1.2.11.tar.gz wget https://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz tar -xzvf pcre-8.44.tar.gz tar -xzvf zlib-1.2.11.tar.gz ``` ##### 3. 编译安装 进入Nginx源码目录,并根据需要进行配置。以下是典型的编译选项: ```bash cd /home/download/nginx-1.18.0 ./configure --sbin-path=/usr/local/nginx/nginx \ --with-http_ssl_module \ --with-pcre=../pcre-8.44 \ --with-zlib=../zlib-1.2.11 \ --http-log-path=/var/log/nginx/access.log \ --error-log-path=/var/log/nginx/error.log \ --user=www \ --group=www ``` 这里需要注意的是`--sbin-path`参数指定了Nginx可执行文件的路径,`--with-http_ssl_module`启用了HTTPS支持,`--with-pcre`和`--with-zlib`分别指定了PCRE和zlib的路径。 接下来编译并安装Nginx: ```bash make make install ``` 为了确保Nginx以特定用户身份运行,还需要创建该用户和组: ```bash groupadd www useradd -r -g www www ``` #### 三、启动与管理Nginx服务 完成安装后,可以通过以下命令来管理Nginx服务: - **重新加载配置文件**:`./nginx -s reload` - **重启Nginx**:`./nginx -s reopen` - **停止Nginx**:`./nginx -s stop` 需要注意的是,这里的命令是在Nginx的安装目录下执行的。如果希望将这些操作封装为系统服务,可以使用`systemd`或其他init系统进行设置。 #### 四、Nginx配置文件详解 Nginx的核心配置文件位于`/usr/local/nginx/conf/nginx.conf`。下面是一些基本的配置示例: 1. **监听端口**: ```nginx server { listen 80; server_name localhost; } ``` 2. **反向代理配置**: ```nginx server { listen 80; server_name www.example.com; location / { proxy_pass http://backend_server; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ``` 3. **SSL配置**(启用HTTPS): ```nginx server { listen 443 ssl; server_name www.example.com; ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/server.key; # SSL相关的其他配置 } ``` 4. **日志配置**: ```nginx access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ``` 5. **错误页面定制**: ```nginx error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } ``` 通过上述步骤,你可以成功地在Linux环境下安装并配置Nginx服务。Nginx的强大之处不仅在于其性能优越,更在于其高度可定制化的特性,能够满足各种复杂的应用场景需求。
2026-01-09 11:11:31 2.15MB nginx反向代理 nginx
1
在IT行业中,嵌入式系统和微控制器的开发与调试是一项关键任务,而飞思卡尔(现为NXP的一部分)的MC9S12XS128是一款高性能的16位微控制器,广泛应用于各种工业和汽车电子系统。本文将详细讲解如何解锁这款微控制器,以进行深入的开发和调试工作。 我们要明确“解锁”在嵌入式系统中的含义。通常,微控制器为了保护知识产权和防止非法篡改,会设有不同的安全机制,这些机制可能会限制用户访问某些寄存器或执行特定操作。解锁是为了能够访问这些受限功能,以便于进行固件升级、故障排查或定制化开发。 "龙丘BDM解锁MC9S12XS128步骤.pdf"这份文档很可能是提供了解锁过程的详细指南,BDM是背景调试模块(Background Debug Module)的缩写,它是飞思卡尔微控制器中用于调试的一种接口。通过BDM,我们可以对芯片进行读写操作,甚至在运行状态下进行实时调试。 解锁MC9S12XS128通常包括以下几个步骤: 1. **准备工具**:你需要一个支持BDM接口的编程器或调试器,如JTAG适配器,以及对应的驱动和软件工具。这些工具应能连接到微控制器的BDM引脚,并且支持MC9S12XS128的通信协议。 2. **安全配置**:MC9S12XS128的安全特性包括安全字节和安全锁定寄存器。要解锁,你可能需要知道正确的安全密码,这通常在芯片的数据手册中可以找到。如果没有原始密码,可能需要利用特殊的工具或技巧来重置或绕过安全机制。 3. **进入调试模式**:通过编程器连接到BDM接口,按照文档中的步骤设置合适的电压和时序,使微控制器进入调试模式。 4. **读取和修改内存**:在调试模式下,你可以读取微控制器的内存,包括程序存储器和EEPROM,查找并修改安全寄存器,解除锁定状态。 5. **验证解锁**:解锁后,你应能自由地读写受保护的区域,并进行正常的编程和调试操作。这一步骤需要通过尝试访问以前受限的区域来验证解锁是否成功。 6. **备份和恢复**:解锁操作可能会使微控制器失去原有的保护,因此在解锁前最好备份原有的固件,以便在需要时恢复。同时,也要确保在完成调试或开发工作后,正确地重新锁定微控制器,以防意外修改。 这个过程可能涉及一些复杂的硬件和软件操作,对于初学者来说可能会有一定难度。因此,在尝试解锁之前,一定要仔细阅读MC9S12XS128的数据手册,理解其安全特性和解锁机制,并遵循提供的文档步骤谨慎操作。如果可能,寻求经验丰富的工程师的指导也是明智的选择。 解锁飞思卡尔的MC9S12XS128是一个技术性较强的过程,需要对微控制器的内部结构和调试接口有深入的了解。通过掌握正确的解锁方法,开发者可以更有效地进行系统开发和故障诊断,进一步提升产品的质量和性能。
2026-01-09 11:08:42 452KB xs128 解锁方法
1
Ethereal是免费的网络协议检测程序,支持Unix,Windows。让您经由程序抓取运行的网站的相关资讯,包括每一封包流向及其内容、资讯可依操作系统语系看出,方便查看、监控TCP session动态等等. 内有原版和汉化包,程序必须安装在C盘.
2026-01-09 10:48:12 13.2MB 网络协议检测 监控TCP
1
华为网络设备设置ssh远程登录增加rsa公钥认证,DER编码格式的公钥格式。 XSHELL等工具生成的公钥需要进行格式转换。
2026-01-09 10:44:44 8.2MB ssh RSA HUAWEI
1
ubuntu18.04,20.04,22.04,24.04的docker镜像
2026-01-09 10:44:29 104.28MB docker
1
python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl路径不在cmd窗口当前目录下,需要带上路径 WHL文件是以Wheel格式保存的Python安装包, Wheel是Python发行版的标准内置包格式。 在本质上是一个压缩包,WHL文件中包含了Python安装的py文件和元数据,以及经过编译的pyd文件, 这样就使得它可以在不具备编译环境的条件下,安装适合自己python版本的库文件。 如果要查看WHL文件的内容,可以把.whl后缀名改成.zip,使用解压软件(如WinRAR、WinZIP)解压打开即可查看。 为什么会用到whl文件来安装python库文件呢? 在python的使用过程中,我们免不了要经常通过pip来安装自己所需要的包, 大部分的包基本都能正常安装,但是总会遇到有那么一些包因为各种各样的问题导致安装不了的。 这时我们就可以通过尝试去Python安装包大全中(whl包下载)下载whl包来安装解决问题。
2026-01-09 10:43:27 40.86MB python
1
文中针对设置非完整缓和曲线后线路中桩点坐标计算的实际要求,从回旋线的基本性质出发,将非完整缓和曲线看成完整缓和曲线的一部分,根据起算数据先求出相同变更率的完整缓和曲线原点的坐标及原点的切线方向,再按完整缓和曲线点既有坐标的计算方法,可得到非完整缓和曲线点的坐标,该方法使得非完整缓和曲线点的坐标计算简单且有规律。
2026-01-09 10:38:19 742KB 行业研究
1
《Flex画板工具:事故现场图绘制的专业解决方案》 在信息技术日益发达的今天,各种专业工具应运而生,以满足不同领域的特定需求。"Flex画板工具"就是这样一款专为处理事故现场图设计的软件,它凭借其丰富的功能和易用性,成为了事故处理人员的得力助手。这款工具由Flash Builder开发,采用SDK3.5版本,确保了高效稳定运行的同时,也体现了技术的先进性。 Flex画板工具的核心在于它的集成化设计。作为一个专业的事故现场绘制平台,它集合了各类场景图标,覆盖了事故现场可能出现的所有情况。这意味着用户无需寻找和组合多个元素,只需在这款工具中就能找到所需的图形,大大提高了工作效率。从车辆、人员、道路标志到各种事故痕迹,每一个细节都能被精准地呈现,使事故分析和重建工作更为精确。 在技术层面,使用Flash Builder作为开发工具,Flex画板工具具有良好的交互性和用户体验。Flash Builder是一款强大的开发环境,支持ActionScript和Flex框架,能够创建出动态且富媒体的应用程序。结合SDK3.5,这个工具不仅拥有高效的性能,还能提供流畅的动画效果和响应式设计,使得用户在绘制过程中享受到流畅的操作体验。 此外,Flex画板工具还可能包含了一些高级特性,例如自定义图形编辑、比例缩放、多图层管理、测量工具以及导出和分享功能。这些功能对于绘制复杂场景、精确测量距离和角度、以及团队间的协作至关重要。通过自定义图形编辑,用户可以创造出独一无二的图标,适应特定的事故类型或地域特征;多图层管理则能帮助用户有条不紊地组织各个元素,避免混乱。 在实际应用中,Flex画板工具不仅适用于事故调查,还可以广泛应用于安全演练、模拟训练、城市规划等领域。它将复杂的现场描绘工作简单化,使得非专业人员也能快速上手,从而提高整个事故处理流程的效率。 Flex画板工具以其全面的功能、强大的开发背景和良好的用户体验,成为事故现场图绘制的首选工具。无论是为了记录事故现场,还是进行模拟分析,它都能提供可靠的支持,帮助相关人员更好地理解和解决复杂的事故问题。在未来,随着技术的不断发展,我们有理由期待Flex画板工具在功能和性能上会有更大的提升,为更多领域带来便利。
2026-01-09 10:34:13 551KB 专用画板
1