代码拉取完成,页面将自动刷新
同步操作将从 13799673123/myIPC 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;
namespace UltrasonicTDPlatform
{
public partial class DriverForm : Form
{
[DllImport("dllTest.dll")]
public static extern void MotorCtrDll(float targetPressure);
[DllImport("dllTest.dll")]
public static extern void MotorStop();
[DllImport("dllTest.dll")]
public static extern void TrapMotion(long pos, double vec);
// 1. 换能器驱动设置参数
int DriFreq = 20500; //驱动设置频率
int Drivol = 100; //驱动电压
int Dricur = 5; //驱动电流
int Dripow = 1000; //驱动功率
/*
* 用于存放显示数据的队列,以及队列的一些信息
*/
private Queue<double> dataQueue = new Queue<double>(100);
private int curValue = 0;
private int num = 5;//每次删除增加几个点
public DriverForm()
{
InitializeComponent();
this.TopLevel = false;
InitChart(chart1);
}
/// <summary>
/// 初始化图表
/// </summary>
private void InitChart(Chart chart)
{
//定义图表区域
chart.ChartAreas.Clear();
ChartArea chartArea1 = new ChartArea("C1");
chart.ChartAreas.Add(chartArea1);
chartArea1.BackColor = System.Drawing.Color.Transparent;
//定义存储和显示点的容器
chart.Series.Clear();
Series series1 = new Series("S1");
series1.ChartArea = "C1";
chart.Series.Add(series1);
//设置图表显示样式
chart.ChartAreas[0].AxisY.Minimum = 0;
chart.ChartAreas[0].AxisY.Maximum = 100;
chart.ChartAreas[0].AxisX.Interval = 5;
chart.ChartAreas[0].AxisX.MajorGrid.LineColor = System.Drawing.Color.Silver;
chart.ChartAreas[0].AxisY.MajorGrid.LineColor = System.Drawing.Color.Silver;
//设置标题
chart.Titles.Clear();
chart.Titles.Add("S01");
chart.Titles[0].Text = "驱动电压显示";
chart.Titles[0].ForeColor = Color.RoyalBlue;
chart.Titles[0].Font = new System.Drawing.Font("幼圆", 12F);
//隐藏图例
// Exclude entries from the legend.
chart.Legends[0].Enabled = false;
chart.ForeColor = Color.White;
//设置图表显示样式
/*double element = 100;
chart.ChartAreas[0].AxisY.Minimum = 0;
chart.ChartAreas[0].AxisY.Maximum = element;
chart.ChartAreas[0].AxisY.Interval = element / 5;
chart.ChartAreas[0].AxisX.Minimum = 0;
chart.ChartAreas[0].AxisX.Maximum = 100;
chart.ChartAreas[0].AxisX.Interval = 20;*/
chart.ChartAreas[0].AxisX.Title = "时间 / us";
chart.ChartAreas[0].AxisY.Title = "幅值 / V";
chart.ChartAreas[0].AxisX.TitleFont = new System.Drawing.Font("幼圆", 12F);
chart.ChartAreas[0].AxisY.TitleFont = new System.Drawing.Font("幼圆", 12F);
//图表字体颜色
chart.ChartAreas[0].AxisY.TitleForeColor = Color.Silver;
chart.ChartAreas[0].AxisX.TitleForeColor = Color.Silver;
chart.ChartAreas[0].AxisX.LineColor = Color.Silver;
chart.ChartAreas[0].AxisY.LineColor = Color.Silver;
chart.ChartAreas[0].AxisX.MajorGrid.LineColor = Color.Silver;
chart.ChartAreas[0].AxisY.MajorGrid.LineColor = Color.Silver;
chart.ChartAreas[0].AxisY.LabelStyle.ForeColor = Color.Silver;
chart.ChartAreas[0].AxisX.LabelStyle.ForeColor = Color.Silver;
//chart.ChartAreas[0].AxisY.
chart1.ChartAreas[0].AxisX.LabelStyle.Format = "F0";//2位小数
chart1.ChartAreas[0].AxisY.LabelStyle.Format = "F0";//3位小数
//设置图表显示样式
chart.Series[0].Color = Color.Red;
chart.Series[0].ChartType = SeriesChartType.Spline;
chart.Series[0].Points.Clear();
chart.Series[0].Points.AddXY(0, 0);
}
/// <summary>
/// 定时器事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void timer1_Tick(object sender, EventArgs e)
{
/*UpdateQueueValue();
this.chart1.Series[0].Points.Clear();
for (int i = 0; i < dataQueue.Count; i++)
{
this.chart1.Series[0].Points.AddXY((i + 1), dataQueue.ElementAt(i));
}*/
}
/// <summary>
/// 更新队列中的值
/// </summary>
private void UpdateQueueValue()
{
if (dataQueue.Count > 100)
{
//先出列
for (int i = 0; i < num; i++)
{
dataQueue.Dequeue();
}
}
for (int i = 0; i < num; i++)
{
//对curValue只取[0,360]之间的值
curValue = curValue % 360;
//对得到的正玄值,放大50倍,并上移50
dataQueue.Enqueue((50 * Math.Sin(curValue * Math.PI / 180)) + 50);
curValue = curValue + 10;
}
}
private void tableLayoutPanel1_Paint(object sender, PaintEventArgs e)
{
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
}
private void label1_Click(object sender, EventArgs e)
{
}
private void checkBox1_CheckedChanged_1(object sender, EventArgs e)
{
}
private void DriverForm_Load(object sender, EventArgs e)
{
}
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
if (radioButton1.Checked)
{
//相关值装载
NUDfreq.Value = DriFreq;
NUDCur.Value = Dricur;
NUDpow.Value = Dripow;
NUDvol.Value = Drivol;
}
}
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
}
private void label1_Click_1(object sender, EventArgs e)
{
}
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
}
private void label2_Click(object sender, EventArgs e)
{
}
private void label4_Click(object sender, EventArgs e)
{
}
private void numericUpDown2_ValueChanged(object sender, EventArgs e)
{
}
private void label3_Click(object sender, EventArgs e)
{
}
private void label9_Click(object sender, EventArgs e)
{
}
private void textBox3_TextChanged(object sender, EventArgs e)
{
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void checkBox1_CheckedChanged_2(object sender, EventArgs e)
{
if(RBCV.Checked||RBCP.Checked||RBCA.Checked)
{
CBRFT.Checked = false;
}
}
private void radioButton6_CheckedChanged(object sender, EventArgs e)
{
CBRFT.Checked = false;
}
private void radioButton5_CheckedChanged(object sender, EventArgs e)
{
CBRFT.Checked = false;
}
private void radioButton7_CheckedChanged(object sender, EventArgs e)
{
CBRFT.Checked = false;
}
private void button1_Click(object sender, EventArgs e)
{
if (!timer1.Enabled)
{
// 1. 准备开始焊接
timer1.Start();
pictureBox1.BackgroundImage = Properties.Resources.jieshu;
pictureBox1.BackgroundImageLayout = ImageLayout.Stretch;
button1.Text = " 结束焊接";
// 2. 电机跟踪焊接压力
//label24.Text = (WeldPressConfig / 10).ToString();
MotorCtrDll((float)(WeldPress.Value/10));
// 3. 延迟焊接时间
Thread.Sleep((int)DelayTime.Value);
// 4. 驱动换能器焊接; rs232
// 5. 后保压时间
Thread.Sleep((int)KeepPressTime.Value);
// 6. 电机抬升,完成焊接
TrapMotion(5000, 5);
MotorStop();
// 7. 读取并展示焊接过程压力数据
ReadCsvFileData();
// 8. 焊接完毕
timer1.Stop();
pictureBox1.BackgroundImage = Properties.Resources.qidong;
pictureBox1.BackgroundImageLayout = ImageLayout.Stretch;
button1.Text = " 开始焊接";
}
else
{
}
}
private void ReadCsvFileData()
{
System.IO.StreamReader reader = new System.IO.StreamReader(System.IO.File.OpenRead(@"data.csv"));
reader.Peek();
this.chart_load.Series[0].Points.Clear();
// 滤波变量,为了防止出现0压力的异常值
double lastValue = 0;
while (reader.Peek() > 0)
{
string str = reader.ReadLine();
string[] split = str.Split(',');
if (split[0] != "" && split[1] != "")
{
if (Double.Parse(split[1]) - 0 <= 1)
split[1] = lastValue.ToString();
this.chart_load.Series[0].Points.AddXY(Double.Parse(split[0]), Double.Parse(split[1]) * 10);
lastValue = Double.Parse(split[1]);
}
}
}
private void button2_Click(object sender, EventArgs e)
{
timer1.Stop();
}
private void label25_Click(object sender, EventArgs e)
{
}
private void button2_Click_1(object sender, EventArgs e)
{
MotorCtrDll((float)(WeldPress.Value / 10));
//MotorStop();
ReadCsvFileData();
}
private void button3_Click(object sender, EventArgs e)
{
// 电机抬
TrapMotion(5000, 5);
MotorStop();
}
private void pictureBox2_Click(object sender, EventArgs e)
{
}
private void pictureBox3_Click(object sender, EventArgs e)
{
}
private void pictureBox1_Click(object sender, EventArgs e)
{
}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。