当前位置: 首页 > news >正文

vb.net 实时监控双门双向门禁控制板源代码

 本示例使用设备介绍:实时网络双门双向门禁控制板可二次编程控制网络继电器远程开关-淘宝网 (taobao.com)

Imports System.Net.Sockets
Imports System.Net
Imports System.Text
Imports System.ThreadingImports System.Net.NetworkInformation
Imports System.Management
Public Class Form1Dim PortNumber As Integer  ''侦听端口号    Dim ListenerThre As Thread ''侦听线程Dim LocalIp As String      ''本地ip64Dim ready As Boolean = False ''线程运行标识Dim machinnos As StringDim RemoteIPoint As IPEndPointDim BeepCode As StringDim VoiceCode As StringPublic ListenerSock As Socket ''侦听socketDelegate Sub EditUi(ByVal data0 As String, ByVal data1 As String)  '线程内更新UI传送两个参数Delegate Sub EditTC(ByVal con As Integer, ByVal data1 As String)Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load'Control.CheckForIllegalCrossThreadCalls = False   '经典解决“线程间操作无效: 从不是创建控件的线程访问它 ,尽量不要用这种方式getIp()ComboBox2.SelectedIndex = 0ComboBox3.SelectedIndex = 1ComboBox4.SelectedIndex = 16ComboBox5.SelectedIndex = 1StartListener() ''开始侦听End SubPublic Sub getIp()     '获取本机所有网卡的IPDim Address() As System.Net.IPAddressDim i As IntegerAddress = Dns.GetHostByName(Dns.GetHostName()).AddressListIf UBound(Address) < 0 ThenMsgBox("未能查找到本台电脑安装的网卡,暂不能启动本软件。", MsgBoxStyle.Critical + vbOKOnly, "注意")EndElseFor i = 0 To UBound(Address)ComboBox1.Items.Add(Address(i).ToString())NextComboBox1.SelectedIndex = 0LocalIp = ComboBox1.Text.Trim()End IfEnd SubPrivate Sub StartListener()Dim LocalPoint As IPEndPointPortNumber = TextBox6.TextWhile Not readyTryLocalPoint = New IPEndPoint(IPAddress.Parse(LocalIp), PortNumber)ListenerSock = New Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)ListenerSock.Bind(LocalPoint)ListenerThre = New Thread(AddressOf ThrListener)ListenerThre.Start()ready = True'ListBox1.Items.Add(LocalPoint.ToString() & "已开始侦听......")Catch ex As ExceptionListenerSock.Close()ready = FalseMsgBox("    有其它应用程序占用了 " & LocalPoint.ToString() & " ,请检查并关闭此应用后再打开本程序。", vbCritical + vbOKOnly, "警告")EndEnd TryEnd WhileEnd SubPrivate Sub ThrListener() '侦听线程      While readyTryDim bytes(1024) As ByteDim dataArray() As StringDim RemotePoint As System.Net.EndPoint = New System.Net.IPEndPoint(System.Net.IPAddress.Any, 0)Dim NumGet As IntegerDim Msg As StringDim Sendinf As StringDim SendBuf As Byte()Dim i As IntegerDim DevBufferIpAddrStr As StringDim DevBufferRemoteAddrStr As StringDim DevBufferCardCode As StringDim DevBufferUseTimeStr As StringDim DevRecFramesStr As StringDim DevBufferMachinStr As StringDim DevBufferDatetimeStr As StringDim DevBufferCardidStr As StringDim DevBufferUseMoneryStr As StringDim DevBufferReaderStr As StringDim DevBufferDoorNoStr As StringDim DevBufferDelayStr As StringDim DevBufferPasswPropStr As StringDim DevBufferPassWStr As StringDim DevBufferStaryStr As StringDim DevBufferRecordAddStr As StringDim DevBufferAllNoStr As StringDim DevBufferFunctionStr1 As StringDim DevBufferFunctionStr2 As StringDim DevBufferSerialNumStr As StringDim DevBufferInputKeyStr As StringDim DevBufferCommandStr As StringDim DevBufferQrcodeInfStr As StringDim DevBufferStateStr As StringDim DevBufferRandomCode As StringDim DevBufferSwitchStr As StringDim DevBufferFireStr As StringNumGet = ListenerSock.ReceiveFrom(bytes, RemotePoint)Msg = Encoding.GetEncoding(936).GetString(bytes, 0, NumGet)'Msg = Encoding.UTF8.GetString(bytes, 0, NumGet)     '读取中文wifi名称时,需用utf8解码Me.Invoke(New EditUi(AddressOf EditUiNow), Now() & (" FromIP:" & Convert.ToString(RemotePoint) + "          ").Substring(0, 30) & "Data:", Msg) '用Invoke跨线程更新UI      Me.Invoke(New EditTC(AddressOf EditTCNow), 3, Convert.ToString(RemotePoint)) '用Invoke跨线程更新UIdataArray = Split(Convert.ToString(Msg), ",")Select Case dataArray(0)Case "101"             '接收到 1、终端开机时向电脑发送的开机信息,         2、电脑发送002查询设备时间所返回的信息DevRecFramesStr = dataArray(1)            '包序列号DevBufferIpAddrStr = dataArray(2)         '终端IPDevBufferRemoteAddrStr = dataArray(3)     '远程电脑指机IPDevBufferMachinStr = dataArray(4)         '机号DevBufferDatetimeStr = dataArray(5)       '日期时间*/If dataArray.Length > 6 Then              '2018年以后的设备有唯一硬件序号*/DevBufferSerialNumStr = dataArray(6)End IfSendinf = "001," + DevRecFramesStr        '向设备发此数据表示已收到信息,否则设备会连续发三次SendBuf = Encoding.GetEncoding(936).GetBytes(Sendinf)ListenerSock.SendTo(SendBuf, SendBuf.Length, SocketFlags.None, RemotePoint)Me.Invoke(New EditTC(AddressOf EditTCNow), 2, Now() & (" SendTo:" & Convert.ToString(RemotePoint) + "          ").Substring(0, 30) & "Data:" & Sendinf)Dim SystemTimeStr As String = String.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now)If DevBufferDatetimeStr.Substring(0, 16) <> SystemTimeStr.Substring(0, 16) ThenSendinf = "003," & DevRecFramesStr & "," & SystemTimeStrSendBuf = Encoding.GetEncoding(936).GetBytes(Sendinf)ListenerSock.SendTo(SendBuf, SendBuf.Length, SocketFlags.None, RemotePoint)Me.Invoke(New EditTC(AddressOf EditTCNow), 2, Now() & (" SendTo:" & Convert.ToString(RemotePoint) + "          ").Substring(0, 30) & "Data:" & Sendinf)End IfMe.Invoke(New EditTC(AddressOf EditTCNow), 1, DevBufferDatetimeStr) '用Invoke跨线程更新UI      Case "150"                                    '接收到实时考勤门禁机刷卡数据DevRecFramesStr = dataArray(1)            '包序列号DevBufferIpAddrStr = dataArray(2)         '终端IPDevBufferRemoteAddrStr = dataArray(3)     '远程电脑指机IPDevBufferMachinStr = dataArray(4)         '机号DevBufferCardidStr = dataArray(5)         '卡号DevBufferReaderStr = dataArray(6)         '消费金额*/DevBufferDoorNoStr = dataArray(7)         '门或继电器号*/DevBufferDelayStr = dataArray(8)          '门磁未关秒数,0表示已关*/DevBufferPasswPropStr = dataArray(9)      '密码属性(0密码无效,1刷卡后按密码,2补签密码,3开门密码,4防迫胁密码)*/DevBufferPassWStr = dataArray(10)         '密码(最多8位数字)*/DevBufferUseTimeStr = dataArray(11)       '消费时间*/                        If dataArray.Length > 12 ThenDevBufferSerialNumStr = dataArray(12)  '2018年以后的设备有唯一硬件序号End IfSendinf = "001," + DevRecFramesStr        '向设备发此数据表示已收到信息,否则设备会连续发三次SendBuf = Encoding.GetEncoding(936).GetBytes(Sendinf)ListenerSock.SendTo(SendBuf, SendBuf.Length, SocketFlags.None, RemotePoint)Me.Invoke(New EditTC(AddressOf EditTCNow), 2, Now() & (" SendTo:" & Convert.ToString(RemotePoint) + "          ").Substring(0, 30) & "Data:" & Sendinf)'此处加入业务对数据库的查、增、删、减操作'用050指令返回开门成功,051指令返回开门失败,正式系统开发时要有重发机制Select Case VoiceCodeCase "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15"  '发送禁止开门的指令"Sendinf = "051," & DevBufferMachinStr & "," & DevBufferCardidStr & "," & TextBox5.Text.Trim() & "," & Format(NumericUpDown2.Value, "0") & "," & BeepCode & "," & VoiceCodeCase Else  '发送开门指令Sendinf = "050," & DevBufferMachinStr & "," & DevBufferCardidStr & "," & TextBox5.Text.Trim() & "," & Format(NumericUpDown2.Value, "0") & "," & BeepCode & "," & VoiceCode & "," & DevBufferReaderStr & "," & DevBufferDoorNoStr & "," & Format(NumericUpDown1.Value, "0") & "," & Format(NumericUpDown2.Value, "0")End SelectSendBuf = Encoding.GetEncoding(936).GetBytes(Sendinf)ListenerSock.SendTo(SendBuf, SendBuf.Length, SocketFlags.None, RemotePoint)Me.Invoke(New EditTC(AddressOf EditTCNow), 2, Now() & (" SendTo:" & Convert.ToString(RemotePoint) + "          ").Substring(0, 30) & "Data:" & Sendinf)Case "151"                                    '发送按钮开门申请信息DevRecFramesStr = dataArray(1)            '包序列号DevBufferIpAddrStr = dataArray(2)         '终端IPDevBufferRemoteAddrStr = dataArray(3)     '远程电脑指机IPDevBufferMachinStr = dataArray(4)         '机号DevBufferInputKeyStr = dataArray(5)       '&&按钮号DevBufferReaderStr = dataArray(6)         '&&对应的门或继电器号DevBufferDelayStr = dataArray(7)          '&&门磁未关秒数(0门已关)DevBufferUseTimeStr = dataArray(8)        '&&刷卡时间If UBound(dataArray) >= 9 Then DevBufferSerialNumStr = dataArray(9) Else DevBufferSerialNumStr = "" '唯一硬件序号Sendinf = "001," + DevRecFramesStr        '向设备发此数据表示已收到信息,否则设备会连续发三次SendBuf = Encoding.GetEncoding(936).GetBytes(Sendinf)ListenerSock.SendTo(SendBuf, SendBuf.Length, SocketFlags.None, RemotePoint)Me.Invoke(New EditTC(AddressOf EditTCNow), 2, Now() & (" SendTo:" & Convert.ToString(RemotePoint) + "          ").Substring(0, 30) & "Data:" & Sendinf)Select Case VoiceCodeCase "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15"  '发送禁止开门的指令"Sendinf = "051," & DevBufferMachinStr & "," & DevBufferInputKeyStr & "," & TextBox5.Text.Trim() & "," & Format(NumericUpDown2.Value, "0") & "," & BeepCode & "," & VoiceCodeCase Else   '发送开门指令Sendinf = "050," & DevBufferMachinStr & "," & DevBufferInputKeyStr & "," & TextBox5.Text.Trim() & "," & Format(NumericUpDown2.Value, "0") & "," & BeepCode & "," & VoiceCode & "," & DevBufferInputKeyStr & "," & DevBufferReaderStr & "," & Format(NumericUpDown1.Value, "0") & "," & Format(NumericUpDown2.Value, "0")End SelectSendBuf = Encoding.GetEncoding(936).GetBytes(Sendinf)ListenerSock.SendTo(SendBuf, SendBuf.Length, SocketFlags.None, RemotePoint)Me.Invoke(New EditTC(AddressOf EditTCNow), 2, Now() & (" SendTo:" & Convert.ToString(RemotePoint) + "          ").Substring(0, 30) & "Data:" & Sendinf)Case "152"    '门磁报警信息DevRecFramesStr = dataArray(1)        ' &&包序列号DevBufferIpAddrStr = dataArray(2)     ' &&终端IPDevBufferRemoteAddrStr = dataArray(3) '&&远程电脑指机IPDevBufferMachinStr = dataArray(4)     '&&机号DevBufferInputKeyStr = dataArray(5)   '&&门磁号DevBufferReaderStr = dataArray(6)     '&&对应的门或继电器号DevBufferDelayStr = dataArray(7)      '&&门磁未关秒数(0门已关)DevBufferUseTimeStr = dataArray(8)    '&&刷卡时间If UBound(dataArray) >= 9 Then DevBufferSerialNumStr = dataArray(9) Else DevBufferSerialNumStr = "" '唯一硬件序号Sendinf = "001," + DevRecFramesStr        '向设备发此数据表示已收到信息,否则设备会连续发三次SendBuf = Encoding.GetEncoding(936).GetBytes(Sendinf)ListenerSock.SendTo(SendBuf, SendBuf.Length, SocketFlags.None, RemotePoint)Me.Invoke(New EditTC(AddressOf EditTCNow), 2, Now() & (" SendTo:" & Convert.ToString(RemotePoint) + "          ").Substring(0, 30) & "Data:" & Sendinf)Case "153"    '返回查询设备状态的053指令DevRecFramesStr = dataArray(1)        ' &&包序列号DevBufferIpAddrStr = dataArray(2)     ' &&终端IPDevBufferRemoteAddrStr = dataArray(3) '&&远程电脑指机IPDevBufferMachinStr = dataArray(4)     '&&机号DevBufferInputKeyStr = dataArray(5)   '&&继电器号DevBufferReaderStr = dataArray(6)     '&&继电器状态DevBufferDelayStr = dataArray(7)      '&&门磁未关秒数(0门已关)DevBufferStateStr = dataArray(8)      '&&门磁报警状态If UBound(dataArray) >= 9 Then DevBufferSerialNumStr = dataArray(9) Else DevBufferSerialNumStr = "" '唯一硬件序号Sendinf = "001," + DevRecFramesStr        '向设备发此数据表示已收到信息,否则设备会连续发三次SendBuf = Encoding.GetEncoding(936).GetBytes(Sendinf)ListenerSock.SendTo(SendBuf, SendBuf.Length, SocketFlags.None, RemotePoint)Me.Invoke(New EditTC(AddressOf EditTCNow), 2, Now() & (" SendTo:" & Convert.ToString(RemotePoint) + "          ").Substring(0, 30) & "Data:" & Sendinf)Msg = "继电器号:" & DevBufferInputKeyStr & ",继电器状态:" & DevBufferReaderStr & ",门磁未关秒数:" & DevBufferDelayStr & ",门磁报警状态:" & DevBufferStateStrMe.Invoke(New EditTC(AddressOf EditTCNow), 9, Msg)Case "154"                                    '接收到实时考勤门禁机卡离开感应区DevRecFramesStr = dataArray(1)            '包序列号DevBufferIpAddrStr = dataArray(2)         '终端IPDevBufferRemoteAddrStr = dataArray(3)     '远程电脑指机IPDevBufferMachinStr = dataArray(4)         '机号DevBufferCardidStr = dataArray(5)         '卡号DevBufferSerialNumStr = dataArray(6)Case "155" '&&门禁脱网记录发送----DevRecFramesStr = dataArray(1)      ' &&包序列号DevBufferIpAddrStr = dataArray(2)   ' &&终端IPDevBufferRemoteAddrStr = dataArray(3) '&&远程电脑指机IPDevBufferMachinStr = dataArray(4)     '&&机号DevBufferCardidStr = dataArray(5)     '&&卡号DevBufferReaderStr = dataArray(6)    '&&读头DevBufferDoorNoStr = dataArray(7)    '&&门或继电器号DevBufferPasswPropStr = dataArray(8) '&&密码属性(0密码无效,1刷卡后按密码,2补签密码,3开门密码,4防迫胁密码)DevBufferUseTimeStr = dataArray(9)   '&&刷卡时间DevBufferStaryStr = dataArray(10)    '&&状态  0扣费 1计次DevBufferRecordAddStr = dataArray(11) '&&记录地址标识DevBufferAllNoStr = dataArray(12)    '&&总计录数If UBound(dataArray) = 13 Then DevBufferSerialNumStr = dataArray(13) Else DevBufferSerialNumStr = "" '唯一硬件序号Sendinf = "001," + DevRecFramesStr        '向设备发此数据表示已收到信息,否则设备会连续发三次SendBuf = Encoding.GetEncoding(936).GetBytes(Sendinf)ListenerSock.SendTo(SendBuf, SendBuf.Length, SocketFlags.None, RemotePoint)Me.Invoke(New EditTC(AddressOf EditTCNow), 2, Now() & (" SendTo:" & Convert.ToString(RemotePoint) + "          ").Substring(0, 30) & "Data:" & Sendinf)If Not IsDateTime(DevBufferUseTimeStr) Then  '记录的刷卡时间非法,表示此记录有问题(测试时的其它数据)DevBufferUseTimeStr = "9999-99-99 99:99:99"End If'这里对脱网记录进行处理If CheckBox3.Checked Then  '选择清除已上传的记录驱使用设备继续上传剩下的记录Sendinf = "055," + DevBufferMachinStr + "," + DevBufferCardidStr + "," + DevBufferUseTimeStr + "," + DevBufferRecordAddStr '&&清除设备内当前这条记录,设备才会传下一条记录SendBuf = Encoding.GetEncoding(936).GetBytes(Sendinf)ListenerSock.SendTo(SendBuf, SendBuf.Length, SocketFlags.None, RemotePoint)Me.Invoke(New EditTC(AddressOf EditTCNow), 2, Now() & (" SendTo:" & Convert.ToString(RemotePoint) + "          ").Substring(0, 30) & "Data:" & Sendinf)End IfCase "158" '响应电脑远程开门的058指令DevRecFramesStr = dataArray(1)      ' &&包序列号DevBufferIpAddrStr = dataArray(2)   ' &&终端IPDevBufferRemoteAddrStr = dataArray(3) '&&远程电脑指机IPDevBufferMachinStr = dataArray(4)     '&&机号DevBufferStaryStr = dataArray(5)      '&&0开门成功,1开门密码认证失败,2开门密码认证失败超过6次,需等待一段时间后再能再次接收058指令(防暴力破解),3 不允许此时间段开门DevBufferRandomCode = dataArray(6)    '&&动态随机码(8位十六进制)Me.Invoke(New EditTC(AddressOf EditTCNow), 10, DevBufferRandomCode)Msg = ""Select Case DevBufferStaryStrCase "0"Msg = "IP:" & DevBufferIpAddrStr & " 开门成功"Case "1"Msg = "IP:" & DevBufferIpAddrStr & " 开门密码认证失败!"Case "2"Msg = "IP:" & DevBufferIpAddrStr & " 开门密码认证失败超过6次,需等待一段时间后再能再次接收058指令(防暴力破解)"Case "3"Msg = "IP:" & DevBufferIpAddrStr & " 不允许此时间段开门"End SelectMe.Invoke(New EditTC(AddressOf EditTCNow), 9, Msg)Me.Invoke(New EditTC(AddressOf EditTCNow), 10, DevBufferRandomCode)Case "159" '&&心跳信息DevRecFramesStr = dataArray(1)      ' &&包序列号DevBufferIpAddrStr = dataArray(2)   ' &&终端IPDevBufferRemoteAddrStr = dataArray(3) '&&远程电脑指机IPDevBufferMachinStr = dataArray(4)     '&&机号DevBufferQrcodeInfStr = dataArray(5)  '&&信息类型DevBufferSwitchStr = dataArray(6)     '继电器状态(bit0为第1门bit1为第2门)DevBufferFireStr = dataArray(7)       '消防输入状态DevBufferRandomCode = dataArray(8)    '&&动态随机码(8位十六进制)DevBufferDatetimeStr = dataArray(9)   '日期时间DevBufferSerialNumStr = dataArray(10) '设备硬件号Me.Invoke(New EditTC(AddressOf EditTCNow), 10, DevBufferRandomCode)End SelectCatch ex As ExceptionMe.Invoke(New EditTC(AddressOf EditTCNow), 2, "ERROR:" & vbCrLf & ex.GetHashCode & ex.Message & vbCrLf)End TryEnd WhileEnd Sub

 

相关文章:

vb.net 实时监控双门双向门禁控制板源代码

本示例使用设备介绍&#xff1a;实时网络双门双向门禁控制板可二次编程控制网络继电器远程开关-淘宝网 (taobao.com) Imports System.Net.Sockets Imports System.Net Imports System.Text Imports System.ThreadingImports System.Net.NetworkInformation Imports System.Man…...

文具办公产品展示预约小程序的作用如何

从整体来看&#xff0c;文具办公品牌/门店的生意来源于线下自然流量或线上自营商城/入驻第三方商城的的流量&#xff0c;线上多数情况都是以直接销售配送为主&#xff0c;但其实对文具品牌/门店而言还有信息展示、服务预约、在线咨询、产品介绍等需求。 虽然小区周边的消费者需…...

渗透测试流程是什么?7个步骤给你讲清楚!

在学习渗透测试之初&#xff0c;有必要先系统了解一下它的流程&#xff0c;静下心来阅读一下&#xff0c;树立一个全局观&#xff0c;一步一步去建设并完善自己的专业领域&#xff0c;最终实现从懵逼到牛逼的华丽转变。渗透测试是通过模拟恶意黑客的攻击方法&#xff0c;同时也…...

如何解决网站被攻击的问题:企业网络攻防的关键路径

在当今数字化时代&#xff0c;企业面临着不断升级的网络威胁&#xff0c;网站遭受攻击的风险也与日俱增。解决网站被攻击的问题对企业发展至关重要&#xff0c;不仅关系到企业的信息安全&#xff0c;也直接影响到企业的声誉和利益。从企业发展的角度出发&#xff0c;我们将探讨…...

大健康产业的先行者「完美公司」携手企企通,推进企业采购供应链数字化进程

随着中国经济持续向好&#xff0c;消费升级和美妆步骤增加&#xff0c;美妆和个人护理产品已逐渐成为中国消费者的日用消费品&#xff0c;推动了护肤品和化妆品的销售额增速均超过10%&#xff0c;成为中国整个快速消费品市场中的一颗亮眼明珠。 据国家统计局数据显示&#xff0…...

在windows Server安装Let‘s Encrypt的SSL证书

1、到官网&#xff08;https://certbot.eff.org/instructions?wswebproduct&oswindows&#xff09;下载 certbot客户端。 2、安装客户端&#xff08;全部默认安装即可&#xff09; 3、暂停IIS中的网站 开始菜单中找到并运行“Certbot”&#xff0c;输入指令&#xff1a; …...

GPT实战系列-P-Tuning本地化训练ChatGLM2等LLM模型,到底做了什么?(二)

GPT实战系列-如何使用P-Tuning本地化训练ChatGLM2等LLM模型&#xff1f;(二) 文章目录 GPT实战系列-1.训练参数配置传递2.训练前准备3.训练参数配置4.训练对象&#xff0c;seq2seq训练5.执行训练6.训练模型评估依赖数据集的预处理 P-Tuning v2 将 ChatGLM2-6B 模型需要微调的参…...

Python3.7+PyQt5 pyuic5将.ui文件转换为.py文件、Python读取配置文件、生成日志

1.实际开发项目时&#xff0c;是使用Qt Designer来设计UI界面&#xff0c;得到一个.ui的文件&#xff0c;然后利用PyQt5安装时自带的工具pyuic5将.ui文件转换为.py文件&#xff1a; pyuic5 -o mywindow.py mywindow.ui #先是py文件名&#xff0c;再是ui文件名样式图 QT5 UI&am…...

使用 VPN ,一定要知道的几个真相!

你们好&#xff0c;我的网工朋友。 今天想和你聊聊VPN。在VPN出现之前&#xff0c;企业分支之间的数据传输只能依靠现有物理网络&#xff08;例如Internet&#xff09;。 但由于Internet中存在多种不安全因素&#xff0c;报文容易被网络中的黑客窃取或篡改&#xff0c;最终造…...

数电实验-----实现74LS153芯片扩展为8选1时间选择器以及应用(Quartus II )

目录 一、74LS153芯片介绍 管脚图 功能表 二、4选1选择器扩展为8选1选择器 1.扩展原理 2.电路图连接&#xff08;Quartus II &#xff09; 3.仿真结果 三、8选1选择器的应用 1.三变量表决器 2.奇偶校验电路 一、74LS153芯片介绍 74ls153芯片是属于四选一选择器的芯片。…...

如何实现MATLAB与Simulink的数据交互

参考链接&#xff1a;如何实现MATLAB与Simulink的数据交互 MATLAB是一款强大的数学计算软件&#xff0c;Simulink则是一种基于模型的多域仿真平台&#xff0c;常用于工程和科学领域中的系统设计、控制设计和信号处理等方面。MATLAB和Simulink都是MathWorks公司的产品&#xff0…...

【数据结构】归并排序

​​ &#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前正在学习c和算法 ✈️专栏&#xff1a;数据结构 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章有啥瑕疵 希望大佬指点一二 如果文章对你…...

数字引领,智慧赋能|袋鼠云与易知微共同亮相2023智慧港口大会

2023年10月19日&#xff0c;由中国港口协会、中国交通通信信息中心、天津港&#xff08;集团&#xff09;有限公司主办&#xff0c;中国港口协会智慧港口专业委员会、《港口科技》杂志社等单位承办的以“数字引领 智慧赋能”为主题的“2023智慧港口大会”在天津顺利召开。 袋鼠…...

星火模型(Spark)的langchain 实现

星火模型的langchain实现 测试已通过&#xff0c;希望有所帮助。 使用前请先安装环境&#xff1a; pip install githttps://github.com/shell-nlp/spark-ai-python.git注意&#xff1a; 一定要使用上面方式安装spark库&#xff0c;因对官方的库做了改动。官方的库已经长时间不…...

python运算符重载之构造函数和迭代器

1 python运算符重载之构造函数和迭代器 python运算符重载是在类方法中拦截内置操作-当类的实例使用内置操作时&#xff0c;pytho自动调用对应方法&#xff0c;并且返回操作结果。 NO#描述1拦截运算运算符重载拦截内置操作&#xff0c;比如打印、函数调用、点号运算、表达式运…...

【数据处理】Python:实现求条件分布函数 | 求平均值方差和协方差 | 求函数函数期望值的函数 | 概率论

猛戳订阅! 👉 《一起玩蛇》🐍 💭 写在前面:本章我们将通过 Python 手动实现条件分布函数的计算,实现求平均值,方差和协方差函数,实现求函数期望值的函数。部署的测试代码放到文后了,运行所需环境 python version >= 3.6,numpy >= 1.15,nltk >= 3.4,tqd…...

new/delete 和malloc/free的区别

C中&#xff1a; 创建单个数据空间&#xff1a; char *ch new char; delete ch; ch NULL; 创建多个数据空间&#xff1a; char *ch new char[4]; delete [] ch; ch NULL; C语言中&#xff1a; 创建单个数据空间&#xff1a; char *ch malloc(sizeof(char)); fre…...

Linux程序设计(上)

系列文章目录 文章目录 系列文章目录前言一、unix, linux, GNU, POSIXLinux程序 二、shellshell语法1.变量2.语句 函数命令命令的执行dialog工具-- 三、文件操作1. Linux 文件结构2. 系统调用和设备驱动程序3. 库函数4. 底层文件访问5. 标准I/O库6.格式化输入输出7. 文件和目录…...

mysql面试题——存储引擎相关

一&#xff1a;MySQL 支持哪些存储引擎? MySQL支持多种存储引擎&#xff0c;比如InnoDB&#xff0c;MyISAM&#xff0c; MySQL大于等于5.5之后&#xff0c;默认存储引擎是InnoDB 二&#xff1a;InnoDB 和 MyISAM 有什么区别? InnoDB支持事务&#xff0c;MyISAM不支持InnoD…...

趣学python编程 (四、数据结构和算法介绍)

数据结构和算法在编程中非常重要。数据结构是组织和存储数据的方式&#xff0c;而算法是解决问题的方法和步骤。你要挑战的蓝桥杯&#xff0c;实际也是在设计算法解决问题。其实各种编程语言都只是工具&#xff0c;而程序的核心数据结构算法。犹如练武&#xff0c;数据结构和算…...

从能算到秒杀:单词拆分与「能否拼出来」的判定艺术

如果说 完全平方数​ 是在算「最少几个数」&#xff0c;零钱兑换​ 是在算「最少几枚硬币」&#xff0c;那 139. 单词拆分​ 就是在考你&#xff1a;一个字符串&#xff0c;到底能不能被“拼”出来&#xff1f;这也是我第一次意识到&#xff1a;很多 DP 题&#xff0c;其实是在…...

【Sora 2批量视频生成黄金工作流】:实测吞吐提升4.8倍的关键配置——NVIDIA A100集群下每小时稳定输出217段1080p视频

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;Sora 2批量视频生成工作流全景概览 Sora 2作为新一代多模态视频生成模型&#xff0c;其批量处理能力依托于模块化、可编排的端到端工作流设计。该工作流融合提示工程、时空 latent 编码、分块并行解码与后处理…...

【飞机】基于matlab数据驱动的多传感器飞机健康监测系统【含Matlab源码 15551期】

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到海神之光博客之家&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49…...

Taotoken的TokenPlan套餐如何为个人开发者节省成本

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Taotoken的TokenPlan套餐如何为个人开发者节省成本 对于个人开发者或小型工作室而言&#xff0c;在项目开发中集成大模型API是提升…...

ML生产化核心:三层分离架构与Triton模型服务实战

1. 项目概述&#xff1a;这不是一次“部署上线”&#xff0c;而是一场系统性交付实战 “From Notebook to Production: Running ML in the Real World (Part 4)”——这个标题里藏着太多被日常讨论轻描淡写带过的重量。它不是教你怎么把 model.predict() 封装成API&#xff0…...

3分钟掌握PCB交互式BOM:告别传统表格的终极可视化方案

3分钟掌握PCB交互式BOM&#xff1a;告别传统表格的终极可视化方案 【免费下载链接】InteractiveHtmlBom Interactive HTML BOM generation plugin for KiCad, EasyEDA, Eagle, Fusion360 and Allegro PCB designer 项目地址: https://gitcode.com/gh_mirrors/in/InteractiveH…...

Apache Flink 快速入门

Flink开发环境准备学习一门新的编程语言时&#xff0c;往往会从"hello world"程序开始&#xff0c;而接触一套新的大数据计算框架时&#xff0c;则一般会从WordCount案例入手&#xff0c;下面以大数据中最经典入门案例WordCount为例&#xff0c;来编写Flink代码&…...

VIVE Focus3 Unity开发避坑指南:SDK 4.2与XR插件深度适配

1. 这不是SDK安装&#xff0c;而是给Unity项目“接上神经末梢” 刚拿到VIVE Focus3设备时&#xff0c;我把它连上电脑&#xff0c;打开Unity 2021.3.33f1&#xff08;LTS版&#xff09;&#xff0c;照着官网文档点开Package Manager——结果卡在“Loading...”三分钟&#xff0…...

边际效应在数据分析中的应用

边际效应是一个源于经济学但广泛应用与数据分析、产品运营、策略优化的核心概念。简单来说&#xff0c;他指的是每增加一个单位的投入&#xff08;如资源、功能、用户、广告话费&#xff09;&#xff0c;所带来的额外产出&#xff08;如收入、活跃度、用户数&#xff09;。理解…...

Taotoken用量看板如何帮助团队清晰掌握各模型消耗与成本分布

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Taotoken用量看板如何帮助团队清晰掌握各模型消耗与成本分布 对于项目管理者或团队负责人而言&#xff0c;在引入大模型能力后&…...