资源简介
基于C#的显示数据波形的上位机,可进一步开发显示多条数据波形,在线保存数据,可将数据显示为excel格式
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
namespace SerialCommunication
{
public partial class ClockControl : UserControl
{
const int screenWidth = 200; //屏幕宽度
const int screenHeight = 200; //屏幕高度
public ClockControl()
{
InitializeComponent();
this.Width = screenWidth + 1;
this.Height = screenHeight + 1;
this.DoubleBuffered = true; //控件缓冲,避免闪烁
this.Setstyle(Controlstyles.ResizeRedraw true);
clockTimer.Start();
}
private void clockTimer_Tick(object sender EventArgs e)
{
Invalidate();
}
protected override void OnPaint(PaintEventArgs e)
{
DateTime dtNow = DateTime.Now;
string dayOfWeek = dtNow.ToString(“dddd“ new System.Globalization.CultureInfo(“zh-cn“));//星期几
Brush brush = new SolidBrush(Color.Black); //填充图形
Pen pen = new Pen(Color.Black); //画笔
Font hourFont = new Font(“Arial“ 10 Fontstyle.Bold);//时钟数字的字体
Font dateFont = new Font(“Arial“ 9); //日期的字体
int dialRadius = Math.Min(screenWidth screenHeight) / 2; //圆的半径
Graphics g = e.Graphics;
g.SmoothingMode = SmoothingMode.HighQuality;
//默认坐标系统原点是左上角,现在把原点移到屏幕中心 右下左上对应的轴:xy-x-y
g.TranslateTransform(dialRadius dialRadius);
//画时钟最外层的圆线(penxywidthheight)
//圆的中心点坐标计算:(width/2+xheight/2+y)据此可得出要使圆在坐标原点(00)的xy坐标值
g.DrawEllipse(pen -screenWidth / 2 -dialRadius screenWidth screenHeight);
GraphicsState state = g.Save();
//画矩形、日期、星期几
int rectWidth = 70;
int rectHeight = 30;
g.DrawRectangle(pen -rectWidth / 2 rectHeight rectWidth rectHeight);
g.DrawString(dtNow.ToString(“yyyy-MM-dd“) dateFont brush -rectWidth / 2 rectHeight + 2);
g.DrawString(dayOfWeek.PadLeft(8 ‘ ‘) dateFont brush -rectWidth / 2 rectHeight + 15);
g.Restore(state);
// 画时钟的60个圆点
//Save()Restore(state)配合使用,使得平移、缩放、旋转等操作只对它们作用域之间的代码有效,
//save开始到restore之间这绘画,就像有绘制了一个图层,restore之后将两个图层放到一起
state = g.Save();
for (int i = 0; i < 60; i++)
{
int w = i % 5 == 0 ? 5 : 3;
g.FillEllipse(brush 0 -dialRadius w w);
//围绕指定点按照顺时针方向旋转角度360 / 60 = 6度
g.RotateTransform(6);
}
g.Restore(state);
//画时钟的12个数字,如果用上面RotateTransform方法则数字会倾斜、倒立,故不用
state = g.Save();
for (int i = 0; i < 12; i++)
{
//已知圆中心占坐标(x0y0)半径r,角度a0则圆上任一点坐标(xy)计
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-09-28 14:10 数据波形上位机\
目录 0 2017-09-28 14:10 数据波形上位机\SerialCommunication\
目录 0 2017-09-28 14:10 数据波形上位机\SerialCommunication\SerialCommunication\
文件 1026 2017-06-09 21:23 数据波形上位机\SerialCommunication\SerialCommunication.sln
文件 68608 2017-06-09 21:23 数据波形上位机\SerialCommunication\SerialCommunication.v12.suo
文件 187 2017-06-09 21:23 数据波形上位机\SerialCommunication\SerialCommunication\App.config
目录 0 2017-09-28 14:10 数据波形上位机\SerialCommunication\SerialCommunication\bin\
目录 0 2017-09-28 14:10 数据波形上位机\SerialCommunication\SerialCommunication\bin\Debug\
目录 0 2017-09-28 14:10 数据波形上位机\SerialCommunication\SerialCommunication\bin\Debug\Resources\
文件 32034 2017-06-09 21:23 数据波形上位机\SerialCommunication\SerialCommunication\bin\Debug\Resources\close.png
文件 10504 2017-06-09 21:23 数据波形上位机\SerialCommunication\SerialCommunication\bin\Debug\Resources\danger.gif
文件 3307 2017-06-09 21:23 数据波形上位机\SerialCommunication\SerialCommunication\bin\Debug\Resources\danger.png
文件 5538 2017-06-09 21:23 数据波形上位机\SerialCommunication\SerialCommunication\bin\Debug\Resources\normal.jpg
文件 3719 2017-06-09 21:23 数据波形上位机\SerialCommunication\SerialCommunication\bin\Debug\Resources\normal.png
文件 33802 2017-06-09 21:23 数据波形上位机\SerialCommunication\SerialCommunication\bin\Debug\Resources\open.png
文件 29184 2017-06-09 21:23 数据波形上位机\SerialCommunication\SerialCommunication\bin\Debug\SerialCommunication.exe
文件 187 2017-06-09 21:23 数据波形上位机\SerialCommunication\SerialCommunication\bin\Debug\SerialCommunication.exe.config
文件 56832 2017-06-09 21:23 数据波形上位机\SerialCommunication\SerialCommunication\bin\Debug\SerialCommunication.pdb
文件 24224 2017-06-09 21:23 数据波形上位机\SerialCommunication\SerialCommunication\bin\Debug\SerialCommunication.vshost.exe
文件 187 2017-06-09 21:23 数据波形上位机\SerialCommunication\SerialCommunication\bin\Debug\SerialCommunication.vshost.exe.config
文件 490 2017-06-09 21:23 数据波形上位机\SerialCommunication\SerialCommunication\bin\Debug\SerialCommunication.vshost.exe.manifest
文件 307200 2017-06-09 21:23 数据波形上位机\SerialCommunication\SerialCommunication\bin\Debug\ZedGraph.dll
文件 5370 2017-06-09 21:23 数据波形上位机\SerialCommunication\SerialCommunication\ClockControl.cs
文件 1673 2017-06-09 21:23 数据波形上位机\SerialCommunication\SerialCommunication\ClockControl.Designer.cs
文件 6015 2017-06-09 21:23 数据波形上位机\SerialCommunication\SerialCommunication\ClockControl.resx
文件 27482 2017-06-09 21:23 数据波形上位机\SerialCommunication\SerialCommunication\Form1.cs
文件 26774 2017-06-09 21:23 数据波形上位机\SerialCommunication\SerialCommunication\Form1.Designer.cs
文件 6184 2017-06-09 21:23 数据波形上位机\SerialCommunication\SerialCommunication\Form1.resx
目录 0 2017-09-28 14:10 数据波形上位机\SerialCommunication\SerialCommunication\obj\
目录 0 2017-09-28 14:10 数据波形上位机\SerialCommunication\SerialCommunication\obj\Debug\
文件 11776 2017-06-09 21:23 数据波形上位机\SerialCommunication\SerialCommunication\obj\Debug\DesignTimeResolveAssemblyReferences.cache
............此处省略21个文件信息
相关资源
- C#上位机与单片机的完美结合内附有用
- c# 波形显示上位机代码
- 多路温度采集下位机+上位机.zip
- STM32_IAP_UPDATA带C#上位机
- UWB_室内定位上位机源码.rar
- C#串口数据波形图绘制
- 松下PLC与C#上位机通讯库含程序.rar
- 智能家居检测控制-C#编写的上位机软
- WIFI-ROBOTS机器小车上位机源代码
- 基于RFID的图书管理系统
- 上位机_USB_FPGA程序
- DELTA DVP Series PLC.zip
- c#写的温湿度监控上位机
- C#编写上位机软件串口助手,无需修改
- 温度采集与控制系统上位机和下位机
- STM32-ISP-WPF上位机源码
- 电机驱动上位机源代码
- wifi视频小车的上位机
- 上位机C#以太网连接三菱PLC
- 杜洋C#资料
- 上位机(C#)MX Component以太网连接三菱
- 上位机采集电流电压信息。做校准
- 环境检测系统——上位机软件
- 本程序是为了实现串口通信功能而使
- C#作为上位机,控制51单片机(下位机
- TwinCAT3的HMI上位机
- 串口控制FPGA Led亮灭
- C#编写的基于串口的上位机
- (源代码)C#作为上位机,控制51单片
- STM32接收C#上位机命令控制电机,和根
评论
共有 条评论