支持多曲线的历史曲线控件源码

别再手动刷新了!用C# Winform Chart控件实现多曲线实时动态更新(附完整源码) 本文详细介绍了如何使用C# Winform Chart控件实现多曲线实时动态更新,适用于工业自动化、金融交易和物联网等场景。通过构建高响应性实时图表框架、优化多曲线绘制性能以及管理工业级数据队列,开发者可以轻松打造高效的实时数据监控系统。附完整源码,助您快速实现动态曲线绘制功能。 阅读详情

(声明:魏滔序原创,转贴请注明出处。)
早就想亲自DIY一个类似Windwos任务管理器中的CPU和内存的曲线图,因时间关系直到现在才如愿以偿。虽然做的粗糙点,但勉强说的过去。
功能:可以设置是否显示值刻度、网格、曲线、时间刻度等,可以定义背景颜色、网格颜色、刻度颜色、曲线颜色等,可以设置网格大小、刻度间隔、曲线进展长度,最重要的是可以支持多曲线运行。

名称:Graph
VERSION 5.00
Begin VB.UserControl Graph
   AutoRedraw      =   -1  'True
   BackColor       =   &H00000000&
   ClientHeight    =   1605
   ClientLeft      =   0
   ClientTop       =   0
   ClientWidth     =   2880
   ForeColor       =   &H8000000B&
   HitBehavior     =   0  '无
   ScaleHeight     =   1605
   ScaleWidth      =   2880
End
Attribute VB_Name = "Graph"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Option Explicit

Private m_Coll() As Collection
Private m_Color() As OLE_COLOR
Private m_Time As Collection

Private m_MaxValue As Single
Private m_ScaleColor As OLE_COLOR
Private m_GridColor As OLE_COLOR
Private m_CellWidth As Single
Private m_CellHeight As Single
Private m_Spaced As Single
Private m_ValueScale As Single
Private m_TimeScale As Long

Private m_ShowGraph As Boolean
Private m_ShowGrid As Boolean
Private m_ShowValueScale As Boolean
Private m_ShowTimeScale As Boolean


'背景颜色
Public Property Get BackColor() As OLE_COLOR
    BackColor = UserControl.BackColor
End Property
Public Property Let BackColor(ByVal Value As OLE_COLOR)
    UserControl.BackColor = Value
    Call AddValue
    PropertyChanged "BackColor"
End Property

'数字颜色
Public Property Get ScaleColor() As OLE_COLOR
    ScaleColor = m_ScaleColor
End Property
Public Property Let ScaleColor(ByVal Value As OLE_COLOR)
    m_ScaleColor = Value
    Call AddValue
    PropertyChanged "ScaleColor"
End Property

'网格颜色
Public Property Get GridColor() As OLE_COLOR
    GridColor = m_GridColor
End Property
Public Property Let GridColor(ByVal Value As OLE_COLOR)
    m_GridColor = Value
    Call AddValue
    PropertyChanged "GridColor"
End Property

'曲线是否可见
Public Property Get ShowGraph() As Boolean
    ShowGraph = m_ShowGraph
End Property
Public Property Let ShowGraph(ByVal Value As Boolean)
    m_ShowGraph = Value
    Call AddValue
    PropertyChanged "ShowGraph"
End Property

'网格是否可见
Public Property Get ShowGrid() As Boolean
    ShowGrid = m_ShowGrid
End Property
Public Property Let ShowGrid(ByVal Value As Boolean)
    m_ShowGrid = Value
    Call AddValue
    PropertyChanged "ShowGrid"
End Property

'值刻度是否可见
Public Property Get ShowValueScale() As Boolean
    ShowValueScale = m_ShowValueScale
End Property
Public Property Let ShowValueScale(ByVal Value As Boolean)
    m_ShowValueScale = Value
    Call AddValue
    PropertyChanged "ShowValueScale"
End Property

'时间刻度是否可见
Public Property Get ShowTimeScale() As Boolean
    ShowTimeScale = m_ShowTimeScale
End Property
Public Property Let ShowTimeScale(ByVal Value As Boolean)
    m_ShowTimeScale = Value
    Call AddValue
    PropertyChanged "ShowTimeScale"
End Property

'单格宽度
Public Property Get CellWidth() As Single
    CellWidth = m_CellWidth
End Property
Public Property Let CellWidth(ByVal Value As Single)
    m_CellWidth = Value
    Call AddValue
    PropertyChanged "CellWidth"
End Property

'单格宽度
Public Property Get CellHeight() As Single
    CellHeight = m_CellHeight
End Property
Public Property Let CellHeight(ByVal Value As Single)
    m_CellHeight = Value
    Call AddValue
    PropertyChanged "CellHeight"
End Property

'值间隔
Public Property Get Spaced() As Long
    Spaced = m_Spaced
End Property
Public Property Let Spaced(ByVal Value As Long)
    m_Spaced = Value
    Call AddValue
    PropertyChanged "Spaced"
End Property

'值刻度
Public Property Get ValueScale() As Long
    ValueScale = m_ValueScale
End Property
Public Property Let ValueScale(ByVal Value As Long)
    m_ValueScale = Value
    Call AddValue
    PropertyChanged "ValueScale"
End Property

'时间刻度
Public Property Get TimeScale() As Long
    TimeScale = m_TimeScale
End Property
Public Property Let TimeScale(ByVal Value As Long)
    m_TimeScale = Value
    PropertyChanged "TimeScale"
End Property

'最大比例
Public Property Get MaxValue() As Single
    MaxValue = m_MaxValue
End Property
Public Property Let MaxValue(ByVal Value As Single)
    m_MaxValue = Value
    Call AddValue
    PropertyChanged "MaxValue"
End Property

'曲线个数
Public Property Get GraphCount() As Long
    On Error Resume Next
    GraphCount = UBound(m_Coll) + 1
End Property

Private Sub UserControl_Resize()
    Call AddValue
End Sub

Private Sub UserControl_Show()
    Call AddValue
End Sub

Private Sub UserControl_Initialize()
    UserControl.ScaleMode = 3
    Set m_Time = New Collection
End Sub

Private Sub UserControl_Terminate()
    Dim i As Long
    For i = 0 To GraphCount - 1
        Set m_Coll(i) = Nothing
    Next
    Set m_Time = Nothing
End Sub

Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
    m_ShowGraph = PropBag.ReadProperty("ShowGraph", True)
    m_ShowGrid = PropBag.ReadProperty("ShowGrid", True)
    m_ShowValueScale = PropBag.ReadProperty("ShowValueScale", True)
    m_ShowTimeScale = PropBag.ReadProperty("ShowTimeScale", True)
   
    UserControl.BackColor = PropBag.ReadProperty("BackColor", &H0&)
    m_ScaleColor = PropBag.ReadProperty("ScaleColor", &HC0C0C0)
    m_GridColor = PropBag.ReadProperty("GridColor", vbGreen)
    m_CellWidth = PropBag.ReadProperty("CellWidth", 12)
    m_CellHeight = PropBag.ReadProperty("CellHeight", 12)
    m_Spaced = PropBag.ReadProperty("Spaced", 5)
    m_ValueScale = PropBag.ReadProperty("ValueScale", 25)
    m_TimeScale = PropBag.ReadProperty("TimeScale", 2)
    m_MaxValue = PropBag.ReadProperty("MaxValue", 100)
End Sub

Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
    Call PropBag.WriteProperty("ShowGraph", m_ShowGraph, True)
    Call PropBag.WriteProperty("ShowGrid", m_ShowGrid, True)
    Call PropBag.WriteProperty("ShowValueScale", m_ShowValueScale, True)
    Call PropBag.WriteProperty("ShowTimeScale", m_ShowTimeScale, True)
   
    Call PropBag.WriteProperty("BackColor", UserControl.BackColor, &H0&)
    Call PropBag.WriteProperty("ScaleColor", m_ScaleColor, &HFFFFFF)
    Call PropBag.WriteProperty("GridColor", m_GridColor, vbGreen)
    Call PropBag.WriteProperty("CellWidth", m_CellWidth, 12)
    Call PropBag.WriteProperty("CellHeight", m_CellHeight, 12)
    Call PropBag.WriteProperty("Spaced", m_Spaced, 5)
    Call PropBag.WriteProperty("ValueScale", m_ValueScale, 25)
    Call PropBag.WriteProperty("TimeScale", m_TimeScale, 2)
    Call PropBag.WriteProperty("MaxValue", m_MaxValue, 100)
End Sub


Public Sub Clear()
    Dim i As Long, x As Long, c As Long
    c = GraphCount
    For i = 0 To c - 1
        For x = m_Coll(i).Count To 1 Step -1
            m_Coll(i).Remove x
        Next
    Next

    For i = m_Time.Count To 1 Step -1
        m_Time.Remove i
    Next
End Sub

'添加曲线
Public Sub AddGraph(ByVal Color As OLE_COLOR)
    Dim i As Long
    i = GraphCount - 1
    i = i + 1
    ReDim Preserve m_Coll(i)
    ReDim Preserve m_Color(i)

    Set m_Coll(i) = New Collection
    m_Color(i) = Color
End Sub

'添加值
Public Sub AddValue(ParamArray Value())
    Dim i As Long, YScale As Single, Index As Long
    Dim t As Date, Count As Long
    Dim x() As Single, y() As Single, NullPraram As Boolean

    '    On Local Error Resume Next
    Count = GraphCount
    NullPraram = UBound(Value) = -1

    With UserControl
        .Cls                                               ' 清除

        '网格
        If m_ShowGrid Then
            For i = 1 To .ScaleWidth / m_CellWidth
                UserControl.Line (0, 0)-(m_CellWidth * i, .ScaleHeight), m_GridColor, B
            Next
            For i = 1 To .ScaleHeight / m_CellHeight
                UserControl.Line (0, 0)-(.ScaleWidth, m_CellHeight * i), m_GridColor, B
            Next
        End If


        If Count = 0 Then GoTo s:
        ReDim x(Count - 1, 1)
        ReDim y(Count - 1, 1)
        YScale = .ScaleHeight / MaxValue

        For Index = 0 To Count - 1
            If Index < UBound(Value) Or NullPraram Then
                If Not NullPraram Then
                    '保存记录
                    m_Coll(Index).Add Value(Index)
                    '删除记录
                    Do While m_Coll(Index).Count > .ScaleWidth / m_Spaced
                        m_Coll(Index).Remove 1
                    Loop
                End If

                '画线
                If m_ShowGraph Then
                    For i = 1 To m_Coll(Index).Count
                        ' 新点
                        x(Index, 1) = x(Index, 0) + m_Spaced: y(Index, 1) = m_Coll(Index)(i) * YScale
                        ' 画线
                        UserControl.Line (.ScaleWidth - x(Index, 0), .ScaleHeight - y(Index, 0))-(.ScaleWidth - x(Index, 1), .ScaleHeight - y(Index, 1)), m_Color(Index)
                        ' 旧点
                        x(Index, 0) = x(Index, 1): y(Index, 0) = y(Index, 1)
                    Next
                End If
            End If
        Next

        '横坐标
        If Not NullPraram Then
            t = Now
            i = Format(t, "ss")
            If i Mod m_TimeScale = 0 Then
                m_Time.Add t
            Else
                m_Time.Add 0
            End If
            Do While m_Time.Count > .ScaleWidth / m_Spaced
                m_Time.Remove 1
            Loop
        End If

        If m_ShowTimeScale Then
            For i = .ScaleWidth / m_Spaced To .ScaleWidth / m_Spaced - m_Time.Count + 1 Step -1
                Index = .ScaleWidth / m_Spaced - i + 1
                If Index > 0 And Index <= m_Time.Count Then
                    If m_Time(Index) <> 0 And m_Time(Index) <> t Then
                        .CurrentX = i * m_Spaced
                        .CurrentY = .ScaleHeight - 15
                        t = m_Time(Index)
                        UserControl.Print Format(t, "hh:nn:ss")
                    End If
                End If
            Next
        End If
s:
        '纵坐标
        If m_ShowValueScale Then
            If m_ValueScale = 0 Then Exit Sub
            For i = 0 To MaxValue / m_ValueScale
                .CurrentY = Int(.ScaleHeight / (MaxValue / m_ValueScale)) * i
                .CurrentX = 0
                UserControl.Print MaxValue - Int(MaxValue * i / (MaxValue / m_ValueScale))
            Next
        End If
    End With
    DoEvents
End Sub

 

使用方法:
设置好各项属性后:
Option Explicit
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
Private Sub Command1()
    Graph.AddGraph ColorConstants.vbRed
    Graph.AddGraph ColorConstants.vbBlue
    Graph.AddGraph ColorConstants.vbGreen
   
    Dim v1, v2, v3
    Do
        Randomize
        v1 = Int(Rnd * 100)
       
        Randomize
        v2 = Int(Rnd * 100)
       
        Randomize
        v3 = Int(Rnd * 100)
       
        Call Graph.AddValue(v1, v2, v3, 5)
       
        Sleep 50: DoEvents
    Loop

End Sub

C#二维坐标曲线绘制及源码分析 C#(发音为“看”)是一种由微软开发的面向对象的编程语言,它被设计为简单、现代、通用的编程语言,旨在使程序员能够快速构建各种应用程序。C#是.NET框架的关键组件,广泛应用于开发Windows桌面应用程序、网站、游戏、Web服务以及移动应用等。绘制二维坐标曲线的方法多种多样,常见的有:线性插值、多项式拟合、样条曲线(如贝塞尔曲线)等。每种方法有其适用的场景和优缺点。线性插值适合简单快速地连接数据点,但通常不会生成平滑的曲线。多项式拟合。 阅读详情

相关推荐

实时、历史曲线绘制 c#

实时、历史曲线绘制实时、历史曲线绘制实时、历史曲线绘制实时、历史曲线绘制实时、历史曲线绘制

C#上位机UDP通信带曲线显示和历史曲线查看

1:应用程序界面 2:实现的功能 (1)常规的UDP收发操作 (2)私有通信协议的格式转化 (3)数据的定时刷新显示和实时存储(txt) (4)数据的历史曲线查看 3:实现的方式 UDP设置的核心代码 private void btnStart_Click(object sender, EventArgs e) { ReceiveMe...

淮南草的博客 1728

C# Winform数值实时曲线(完整示例)

C#实现显示实时数据,并形成曲线,保存数据,完整的项目代码

C# 曲线控件 曲线绘制 实时曲线 多曲线控件 开发

Prepare 本文将使用一个NuGet公开的组件来实现曲线的显示,包含了多种显示的模式和配置来满足各种不同的应用场景,方便大家进行快速的开发系统。 在Visual Studio 中的NuGet管理器中可以下载安装,也可以直接在NuGet控制台输入下面的指令安装: Install-Package HslCommunication NuGet安装教程 http://...

weixin_30555515的博客 3286

VB曲线绘制并历史记录显示

一款很好的历史绘图记录代码,可以随意的镶嵌在其他需要历史绘图显示的例子中

Chart实现实时趋势图以及历史趋势图

主要介绍如何用C#中自带的Chart控件实现添加sin曲线、cos曲线、绘制鼠标运行轨迹,以及监控实时趋势的功能。

VB.net实时曲线控件源码及示例:实时数据绘制的利器

VB.net实时曲线控件源码及示例:实时数据绘制的利器 去发现同类优质开源项目:https://gitcode.com/ 在现代软件开发中,实时数据的可视化变得越来越重要。VB.net实时曲线控件源码及示例正是为此而生,它能够帮助开发者轻松实现实时数据的动态绘制,无论是适时曲线、历史曲线,还是动态历史曲线,都能轻松应对。 项目介绍 VB.net实时曲线控件源码及示例是一个开源项目,为开发者提供了在...

gitblog_06702的博客 1140

labview历史数据查询

labview历史数据查询,历史曲线查询,历时表格查询。labview操作曲线控件

VB.net 实时曲线控件源码及示例

VB.net 实时曲线控件源码及示例 去发现同类优质开源项目:https://gitcode.com/ 此仓库提供了VB.net编写的实时曲线控件源码及示例,适用于需要绘制适时曲线、历史曲线以及动态历史曲线的场景。例如,在流量监控、访问量统计、员工绩效排名等多种场合中,此控件将发挥重要作用。 文件说明 CEGraphControl 目录中包含了实时曲线控件的源代码。 DeviceApplicat...

gitblog_06730的博客 318

C# WinForm中使用Chart控件绘制曲线图

展示一个小Demo  在窗口中读取txt文件数据,并使用chart控件绘制曲线。 首先,在空白的窗体上拖入一个按钮,命名为打开,执行打开文件职能;一个文本框,用来显示文件的路径;再拖入一个chart控件。 在chart控件中属性中的Series属性中编辑曲线样式和显示几条曲线。 全部添加完成,进行代码的编写,开始,定义一个点,用来显示坐标 public struct Point {     //定义一个点     public double X;     public double Y; } 然后书写打开按钮的代码,绘制坐标系 将读取到的所有行数据,处理后以坐标形式进行绘制 这里,

802.11ax 的OFDMA资源分配详解

802.11ax 引入的最重要的技术就是OFDMA。OFDMA中引入了RU(资源块)概念,也就是20Mhz/40Mhz/80Mhz/160Mhz的带宽可以切割成不同尺寸的RU,分配给不同的用户使用,这样就大大提高了频谱资源的利用率。 常见的RU尺寸有26/52/102/242/484/996,单位是子载波,每个子载波是78.125Khz,这样20Mhz的带宽可以划分为如下图所示的不同RU大小。 按照11ax规范的要求,上下行的数据传输都可以由AP来统一调度,这样上下行的OFDM...

weixin_43408952的博客 1万+

大项目多曲线的曲线组件源码定制之详细需求,适用工控、军工、金融等数据分析领域 浮云E绘图

在一些工业控制领域,有大量设备采集多种类型的大量数据,需要可视化直观对比某时段/刻,同一设备上的各种数据状态,或者多个设备上的同一种数据,并且海量数据(数百万个点)高性能展示,现有市面上没有一款软件能做到精细化并高效的支持,需要专业团队定制研发一款适合大项目多曲线大数据量的曲线组件。

睿软考论文AI教练 352

MT4/MT5数据源接入全攻略:从买服务、自研API到低成本DDE,哪种方案适合你?

本文全面解析MT4/MT5数据源接入的三种主流方案:商业服务、自研API和低成本DDE,详细对比其技术参数、成本结构和适用场景。帮助技术团队根据业务需求选择最优方案,确保外汇交易系统的数据流稳定性和实时性,提升交易体验和业务连续性。

weixin_42568801的博客 172

终极工业控制控件库:HslControls.dll快速开发指南

还在为工业软件开发中的界面设计发愁吗?HslControls.dll 是一款专为工业物联网和上位机软件设计的C#控件库,提供超过30种工业级图形化控件,让您快速构建专业的生产监控系统。无论您是新手开发者还是资深工程师,这个开源项目都能大幅提升您的开发效率! ## 🎯 为什么选择HslControls控件库? ### 新手也能快速上手的工业控件 传统的工业软件开发往往需要大量时间来处理界面绘制

gitblog_00222的博客 651

吐血总结《Mysql从入门到入魔》,图文并茂

文章目录1. 查询1.1 查询多列1.2 检索唯一值1.3 限制输出1.4 注释2. ORDER BY 排序2.1 单列排序3.2 多列排序3.3 指定排序方向4. WHERE 过滤数据4.1 WHERE 子句操作符4.2 范围值检查4.3 空值检查5. 高级数据过滤5.1 WHERE 组合过滤5.2 IN 操作符5.3 NOT 操作符6. 通配符过滤6.1 % 通配符6.2 _ 通配符7. 创建计算字段7.1 计算字段7.2 拼接字段7.3 执行算数计算8. 函数8.1 常用文本处理函数8.2 日期和时间

向日葵的专属太阳 3万+

保姆级教程:用LoRA微调Chinese-Mistral-7B模型,并一键部署到Ollama(附完整代码)

本文提供了一份详细的LoRA微调Chinese-Mistral-7B模型的保姆级教程,涵盖环境配置、数据预处理、微调实战、模型量化及Ollama部署全流程。通过实战案例和完整代码,帮助开发者快速构建专属中文大模型,适用于医疗、法律等垂直领域。

weixin_30369041的博客 249

C#上位机开发源码:基于RS485通讯的ModbusRtu协议,支持权限管理、数据库、实时曲线等功能及Excel导出与自定义布局

摘要:本文将介绍一个上位机开发项目,采用C#语言进行开发,基于RS485通讯总线的ModbusRtu协议,实现用户权限管理、sqlite数据库操作、实时曲线与历史曲线展示、历史报表导出Excel等功能。在工业自动化领域,上位机作为人机交互的重要界面,承担着数据采集、处理、展示以及与下位机的通信等任务。可以实时更新数据,展示设备的运行状态。采用基于RS485通讯总线的ModbusRtu协议,支持用户权限管理、sqlite数据库、实时曲线、历史曲线、历史报表、导出Excel、主界面布局可调带记忆等功能。

hMSzRrGcyc的博客 1887

算法基础之数组双指针(Leetcode题型归纳)

数组双指针(Leetcode题型归纳)1.前言2.双指针基础3.相向双指针3.1定义3.2真题分析3.2.1两数之和(1)3.2.2两数之和-输入有序数组(167)3.2.3三数之和(15)3.2.4最接近的三数之和(16)3.2.5四数之和(18)3.2.6盛最多水的容器(11)3.2.7有效三角形的个数(611)4.同向双指针-快慢指针4.1定义4.2真题分析4.1.1删除排序数组中的重复项(26)4.1.2移除元素(27)4.1.3删除排序数组中的重复项(80)4.1.4移动零(283)4.1.5数组

Buluchacha的博客 1034

HslControls工业控件库使用指南

HslControls是一个基于C#开发的工业物联网控件库,为工业上位机软件开发提供了丰富的图形化控件支持。通过该控件库,开发者可以快速构建专业的工业监控界面,大幅提升开发效率。 ## 快速开始 ### 环境准备 首先获取项目源码: ```bash git clone https://gitcode.com/gh_mirrors/hs/HslControlsDemo ``` 确保开发环境满足

gitblog_00719的博客 1024

NLP高频面试题(一)——Transformer的基本结构、作用和代码实现

本文详细介绍了Transformer模型的基本结构和PyTorch代码实现过程。首先解析了Transformer的核心组成部分,包括嵌入层、多头自注意力机制、位置编码、前馈神经网络、编码器和解码器等模块,并通过清晰的代码示例逐步展示了如何在PyTorch中构建完整的Transformer模型。文末提供了一个可运行的简单示例,帮助读者快速理解并实践Transformer的核心原理与实现方法。

WeLearnNLP 1026

OpenCV实现文档扫描OCR识别(基于Python + OpenCV,含完整代码)

在当今数字化时代,文档处理的自动化需求日益增长。文档扫描OCR(Optical Character Recognition,光学字符识别)技术成为了将纸质文档转换为可编辑电子文本的关键手段。通过Python与OpenCV库的结合,我们能够实现高效、准确的文档扫描OCR识别。这一技术在办公自动化、数字图书馆、档案管理等众多领域都有着广泛的应用。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 2031

vb6源码 ymodem_VB6 实时曲线显示源码全套资料

【实例简介】VB6 实时曲线显示源码全套资料 ,【实例截图】【核心代码】VB6实时曲线显示源码全套资料└── VB6 实时曲线显示源码全套资料├── DrawCurveCtrl│ ├── Debug│ │ ├── DrawDebug.exe│ │ ├── Form1.frm│ │ ├── Form1.log│...

weixin_29094775的博客 539

SAP Joule 在顾问与开发者场景的双擎定位:Joule for Consultants 与 Joule for Developers 全面解读

SAP推出企业级AI助手Joule,分为顾问版(Joule for Consultants)和开发者版(Joule for Developers)两个版本。顾问版聚焦咨询业务,整合SAP知识库和方法论,辅助方案设计、差距分析和实施落地;开发者版嵌入开发工具链,支持代码生成、解释、测试和迁移。两者共享智能底座但面向不同场景:顾问版优化项目交付流程,开发者版提升工程效率。典型案例显示,Joule能有效缩短云转型周期,实现从业务咨询到技术落地的无缝衔接。该产品通过AI代理和知识图谱技术,为企业数字化转型提供端到端

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 352

HslControlsDemo源码解析:从HslCurve到HslGauge的实现原理

HslControlsDemo是HslControls控件库的使用示例项目,基于C#开发,配套HslCommunication组件可实现工业上位机软件的快速开发。该项目提供了丰富的工业图形化控件,包括曲线显示控件(HslCurve)、仪表盘控件(HslGauge)等,帮助开发者快速集成界面开发。 ## HslCurve曲线控件的实现原理 HslCurve是HslControls中的核心曲线显示

gitblog_00065的博客 340

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

上一篇: VB.Net程序中对.Config文件读写的类(第二版)
下一篇: Excel操作类(VB.NET)
迈克揉索芙特
博客等级 码龄24年 865粉丝 71原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值