You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

196 lines
6.0 KiB
C#

using gts;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using static gts.mc_pulse;
namespace Gugao.FunTest
{
public partial class Form1 : Form
{
short cardnum = 1;
short ret = 0;
public Form1()
{
InitializeComponent();
}
private void btnOpen_Click(object sender, EventArgs e)
{
ret = mc_pulse.GT_Open(cardnum, 0,0);
AddText($"ret = {ret}");
if(ret==0)
{
ret = mc_pulse.GT_LoadConfig(cardnum, "gugao1.cfg");
if(ret==0)
{
timer1.Enabled = true;
//ret = mc_pulse.GT_LmtsOff(cardnum, 3, 0);
//AddText($"ret = {ret}");
mc_pulse.GT_ClrSts(cardnum, short.Parse(cboxAxis.SelectedItem.ToString()), 1);
}
}
}
private void btnDisablePlimit_Click(object sender, EventArgs e)
{
ret= mc_pulse.GT_LmtsOff(cardnum, short.Parse(cboxAxis.SelectedItem.ToString()), 0);
AddText($"ret = {ret}");
}
private void AddText(string text)
{
txtLog.AppendText(text+"\r\n");
}
private void Form1_Load(object sender, EventArgs e)
{
cboxAxis.SelectedIndex = 0;
}
private void timer1_Tick(object sender, EventArgs e)
{
ret = mc_pulse.GT_GetSts(cardnum, short.Parse(cboxAxis.SelectedItem.ToString()), out int pSts, 1, out uint pClock);
if(ret==0)
{
if((pSts >> 1 & 0x01)==1)
{
btnAlarm.BackColor= Color.Red;
}
else
{
btnAlarm.BackColor = SystemColors.Window;
}
if ((pSts >> 5 & 0x01) == 1)
{
btnPlimitTrigger.BackColor = Color.Red;
}
else
{
btnPlimitTrigger.BackColor = SystemColors.Window;
}
if ((pSts >> 6 & 0x01) == 1)
{
btnNlimitTrigger.BackColor = Color.Red;
}
else
{
btnNlimitTrigger.BackColor = SystemColors.Window;
}
if ((pSts >> 9 & 0x01) == 1)
{
btnServo.BackColor = Color.Red;
}
else
{
btnServo.BackColor = SystemColors.Window;
}
mc_pulse.GT_GetDi(cardnum, mc_pulse.MC_LIMIT_POSITIVE, out int pValue);
int v = ((pValue >> (short.Parse(cboxAxis.SelectedItem.ToString()) - 1)) & 0x01);
if(v==1)
{
btnPlimit.BackColor = Color.Red;
}
else
{
btnPlimit.BackColor= SystemColors.Window;
}
mc_pulse.GT_GetDi(cardnum, mc_pulse.MC_LIMIT_NEGATIVE, out pValue);
v = ((pValue >> (short.Parse(cboxAxis.SelectedItem.ToString()) - 1)) & 0x01);
if (v == 1)
{
btnNlimit.BackColor = Color.Red;
}
else
{
btnNlimit.BackColor = SystemColors.Window;
}
}
}
private void btnClear_Click(object sender, EventArgs e)
{
mc_pulse.GT_ClrSts(cardnum, short.Parse(cboxAxis.SelectedItem.ToString()),1);
}
private void btnEnablePlimit_Click(object sender, EventArgs e)
{
ret = mc_pulse.GT_LmtsOn(cardnum, short.Parse(cboxAxis.SelectedItem.ToString()), 0);
AddText($"ret = {ret}");
}
private void button3_Click(object sender, EventArgs e)
{
short axisID = short.Parse(cboxAxis.SelectedItem.ToString());
mc_pulse.GT_ZeroPos(cardnum, axisID, 1);
THomePrm homePrm;
ret = mc_pulse.GT_GetHomePrm(cardnum, axisID, out homePrm);
homePrm.mode = 20;
homePrm.moveDir = -1;
homePrm.indexDir = -1;
homePrm.velHigh = 0.5;
homePrm.velLow = 0.2;
homePrm.acc = 0.05;
homePrm.dec = 0.05;
//homePrm.pad1_1 = 0;
//homePrm.homeOffset = (int)dfHome_offset;
homePrm.searchHomeDistance = 0;
homePrm.searchIndexDistance = 0;
homePrm.edge = 1;// (short)(Config.HomeOrgLogic == 0 ? 1 : 0);
ret = mc_pulse.GT_GoHome(cardnum, axisID, ref homePrm);
Task.Run(() => {
while (true)
{
mc_pulse.GT_GetHomeStatus(cardnum, axisID, out mc_pulse.THomeStatus pHomeStatus);
string msg = $"run={pHomeStatus.run},stage={pHomeStatus.stage},err={pHomeStatus.error},capturePos={pHomeStatus.capturePos}";
Invoke(new Action(() => {
txtLog.AppendText(msg + "\r\n");
File.AppendAllText("d://log.txt", $"{msg}\r\n");
}));
Thread.Sleep(10);
if (pHomeStatus.stage == 100)
break;
}
});
}
private void button4_Click(object sender, EventArgs e)
{
short axisID = short.Parse(cboxAxis.SelectedItem.ToString());
mc_pulse.GT_AxisOn(cardnum, axisID);
}
private void button5_Click(object sender, EventArgs e)
{
short axisID = short.Parse(cboxAxis.SelectedItem.ToString());
mc_pulse.GT_AxisOff(cardnum, axisID);
}
}
}