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); } } }