162 lines
3.7 KiB
C#
162 lines
3.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
//using System.Threading.Tasks;
|
|
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using System.Windows.Data;
|
|
using System.Windows.Documents;
|
|
using System.Windows.Input;
|
|
using System.Windows.Media;
|
|
using System.Windows.Media.Imaging;
|
|
using System.Windows.Navigation;
|
|
using System.Windows.Shapes;
|
|
|
|
namespace WPFSerialAssistant
|
|
{
|
|
/// <summary>
|
|
/// MainWindow.xaml 的交互逻辑
|
|
/// </summary>
|
|
public partial class MainWindow : Window
|
|
{
|
|
public MainWindow()
|
|
{
|
|
InitializeComponent();
|
|
InitCore();
|
|
}
|
|
// 单次锁存 可以通过单次锁存,读取当前的位置值
|
|
private void SingleLatch_Checked(object sender, RoutedEventArgs e)
|
|
{
|
|
//1 清空缓存
|
|
string cmd = "01 06";
|
|
SerialPortWrite(cmd);
|
|
Utilities.sleep(5);
|
|
|
|
//2 设置单次模式
|
|
cmd = "01 01 01";
|
|
SerialPortWrite(cmd);
|
|
Utilities.sleep(5);
|
|
|
|
//3 开始锁存
|
|
cmd = "01 02";
|
|
SerialPortWrite(cmd);
|
|
Utilities.sleep(5);
|
|
|
|
//4 读取锁存值
|
|
cmd = "01 09";
|
|
SerialPortWrite(cmd);
|
|
Utilities.sleep(5);
|
|
|
|
}
|
|
//定时锁存 每10ms(1000*10us),即100HZ,锁存一次位置的值,发一个脉冲
|
|
private void TimingLatches_Checked(object sender, RoutedEventArgs e)
|
|
{
|
|
//1 清空缓存
|
|
string cmd = "01 06";
|
|
SerialPortWrite(cmd);
|
|
Utilities.sleep(5);
|
|
|
|
//2 设置定时模式
|
|
cmd = "01 01 02 03 e8";
|
|
SerialPortWrite(cmd);
|
|
Utilities.sleep(5);
|
|
|
|
//3 开始锁存
|
|
cmd = "01 02";
|
|
SerialPortWrite(cmd);
|
|
Utilities.sleep(5);
|
|
|
|
//4 停止锁存
|
|
cmd = "01 03";
|
|
SerialPortWrite(cmd);
|
|
Utilities.sleep(5);
|
|
|
|
//5 读取锁存值
|
|
cmd = "01 09";
|
|
SerialPortWrite(cmd);
|
|
Utilities.sleep(5);
|
|
|
|
//6 清空数据与flash
|
|
cmd = "01 04";
|
|
SerialPortWrite(cmd);
|
|
Utilities.sleep(5);
|
|
}
|
|
//分频锁存 以X轴为基准,每20个脉冲锁存一次,并发送一次脉冲
|
|
private void FreDivsionRadioButton_Checked(object sender, RoutedEventArgs e)
|
|
{
|
|
//1 清空缓存
|
|
string cmd = "01 06";
|
|
SerialPortWrite(cmd);
|
|
Utilities.sleep(5);
|
|
|
|
//2 设置定时模式
|
|
cmd = "01 01 03 00 00 14 01";
|
|
SerialPortWrite(cmd);
|
|
Utilities.sleep(5);
|
|
|
|
//3 开始锁存
|
|
cmd = "01 02";
|
|
SerialPortWrite(cmd);
|
|
Utilities.sleep(5);
|
|
|
|
//4 停止锁存
|
|
cmd = "01 03";
|
|
SerialPortWrite(cmd);
|
|
Utilities.sleep(5);
|
|
|
|
//5 读取锁存值
|
|
cmd = "01 09";
|
|
SerialPortWrite(cmd);
|
|
Utilities.sleep(5);
|
|
|
|
//6 清空数据与flash
|
|
cmd = "01 04";
|
|
SerialPortWrite(cmd);
|
|
Utilities.sleep(5);
|
|
}
|
|
//获取固件版本
|
|
private void GetVersionButton_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
string cmd = "01 08";
|
|
SerialPortWrite(cmd);
|
|
}
|
|
//设置归零,表示XYZ轴的清零,把当前的位置读数重置为0.
|
|
private void SetZeroButton_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
string cmd = "01 06";
|
|
SerialPortWrite(cmd);
|
|
}
|
|
//开始锁存
|
|
private void StartRecordButtion_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
string cmd = "01 02";
|
|
SerialPortWrite(cmd);
|
|
}
|
|
//停止锁存
|
|
private void StopRecordButton_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
string cmd = "01 03";
|
|
SerialPortWrite(cmd);
|
|
}
|
|
//获取锁存值
|
|
private void GetRecordButton_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
string cmd = "01 09";
|
|
SerialPortWrite(cmd);
|
|
}
|
|
//清除Flash区
|
|
private void ClearFlashButton_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
string cmd = "01 04";
|
|
SerialPortWrite(cmd);
|
|
}
|
|
//获得锁存点数量
|
|
private void GetPointsButton_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
string cmd = "01 05";
|
|
SerialPortWrite(cmd);
|
|
}
|
|
}
|
|
}
|