private void SetPotTicker(string msg, INFO_LEVEL level) { if (this.labelPos.InvokeRequired)//如果调用控件的线程和创建创建控件的线程不是同一个则为True { while (!this.labelPos.IsHandleCreated) { //解决窗体关闭时出现“访问已释放句柄“的异常 if (this.labelPos.Disposing || this.labelPos.IsDisposed) { return; } } SetPotTickerCallback d = new SetPotTickerCallback(SetPotTicker); this.labelPos.Invoke(d, new object[] { msg, level }); } else { switch (level) { case INFO_LEVEL.INIT: this.labelPos.Visible = false; break; case INFO_LEVEL.PROCESS: this.labelPos.Visible = true; this.labelPos.Text = msg; break; } } }
private void SetWriteNV(object sender, INFO_LEVEL _level) { if (WriteNVHandler != null) { UIEventArgs mArgs = new UIEventArgs(); mArgs.level = _level; WriteNVHandler(sender, mArgs); } }
private void SetBindKey2(object sender, INFO_LEVEL _level) { if (BindKey2Handler != null) { UIEventArgs mArgs = new UIEventArgs(); mArgs.level = _level; BindKey2Handler(sender, mArgs); } }
private void SetValidSN(object sender, INFO_LEVEL _level) { if (UpdateValidSNHandler != null) { UIEventArgs mArgs = new UIEventArgs(); mArgs.level = _level; UpdateValidSNHandler(sender, mArgs); } }
private void SetMainText(string msg, string submsg, INFO_LEVEL level) { if (this.labelWorkStatus.InvokeRequired)//如果调用控件的线程和创建创建控件的线程不是同一个则为True { while (!this.labelWorkStatus.IsHandleCreated) { //解决窗体关闭时出现“访问已释放句柄“的异常 if (this.labelWorkStatus.Disposing || this.labelWorkStatus.IsDisposed) { return; } } SetMainTextCallback d = new SetMainTextCallback(SetMainText); this.labelWorkStatus.Invoke(d, new object[] { msg, level }); } else { this.labelWorkStatus.Text = msg; switch (level) { case INFO_LEVEL.INIT: this.panelWorkStatus.BackColor = Color.LightBlue; this.label_Tip.Text = ""; this.textBox_SN.Enabled = true; this.textBox_SN.Text = ""; this.textBox_SN.Focus(); break; case INFO_LEVEL.PASS: this.panelWorkStatus.BackColor = Color.Green; this.label_Tip.Text = "再次扫描,进行下次测试!"; this.textBox_SN.Enabled = true; this.textBox_SN.Text = ""; this.textBox_SN.Focus(); break; case INFO_LEVEL.FAIL: this.panelWorkStatus.BackColor = Color.Red; this.label_Tip.Text = "再次扫描,进行下次测试!"; this.textBox_SN.Enabled = true; this.textBox_SN.Text = ""; this.textBox_SN.Focus(); break; case INFO_LEVEL.PROCESS: this.panelWorkStatus.BackColor = Color.Yellow; this.label_Tip.Text = submsg; break; case INFO_LEVEL.ONLY_TIP: this.label_Tip.Text = submsg; break; } } }
internal static extern bool EnumServicesStatusEx( IntPtr hSCManager, INFO_LEVEL infoLevel, SERVICE_TYPE dwServiceType, SERVICE_ACTIVE_STATE dwServiceState, IntPtr lpServices, int cbBufSize, out int pcbBytesNeeded, out int lpServicesReturned, ref int lpResumeHandle, string pszGroupName);
private void UpdateVddGpsPin(INFO_LEVEL level) { if (this.rkPin_1.InvokeRequired)//如果调用控件的线程和创建创建控件的线程不是同一个则为True { while (!this.rkPin_1.IsHandleCreated) { //解决窗体关闭时出现“访问已释放句柄“的异常 if (this.rkPin_1.Disposing || this.rkPin_1.IsDisposed) { return; } } UpdateVddGpsPinCallback d = new UpdateVddGpsPinCallback(UpdateVddGpsPin); this.rkPin_1.Invoke(d, new object[] { level }); } else { switch (level) { case INFO_LEVEL.INIT: this.rkPin_1.BackColor = Color.White; break; case INFO_LEVEL.FAIL: this.rkPin_1.BackColor = Color.Red; break; case INFO_LEVEL.PASS: this.rkPin_1.BackColor = Color.Green; break; case INFO_LEVEL.PROCESS: this.rkPin_1.BackColor = Color.Yellow; break; case INFO_LEVEL.GREY: this.rkPin_1.BackColor = Color.Gray; break; } } }
private void SetRK4103Pin(int num, INFO_LEVEL result) { if (mRK4103Pin[num - 1].InvokeRequired)//如果调用控件的线程和创建创建控件的线程不是同一个则为True { while (!mRK4103Pin[num - 1].IsHandleCreated) { //解决窗体关闭时出现“访问已释放句柄“的异常 if (mRK4103Pin[num - 1].Disposing || mRK4103Pin[num - 1].IsDisposed) { return; } } SetRK4103PinCallback d = new SetRK4103PinCallback(SetRK4103Pin); mRK4103Pin[num - 1].Invoke(d, new object[] { num, result }); } else { switch (result) { case INFO_LEVEL.FAIL: mRK4103Pin[num - 1].BackColor = Color.Red; break; case INFO_LEVEL.PASS: mRK4103Pin[num - 1].BackColor = Color.Green; break; case INFO_LEVEL.PROCESS: mRK4103Pin[num - 1].BackColor = Color.Yellow; break; case INFO_LEVEL.INIT: mRK4103Pin[num - 1].BackColor = Color.White; break; case INFO_LEVEL.GREY: mRK4103Pin[num - 1].BackColor = Color.Gray; break; } } }
private void SetWriteNVFlag(INFO_LEVEL level) { if (this.pictureBox_WriteNV.InvokeRequired)//如果调用控件的线程和创建创建控件的线程不是同一个则为True { while (!this.pictureBox_WriteNV.IsHandleCreated) { //解决窗体关闭时出现“访问已释放句柄“的异常 if (this.pictureBox_WriteNV.Disposing || this.pictureBox_WriteNV.IsDisposed) { return; } } SetWriteNVFlagCallback d = new SetWriteNVFlagCallback(SetWriteNVFlag); this.pictureBox_WriteNV.Invoke(d, new object[] { level }); } else { switch (level) { case INFO_LEVEL.INIT: this.pictureBox_WriteNV.Visible = false; break; case INFO_LEVEL.PASS: this.pictureBox_WriteNV.Visible = true; this.pictureBox_WriteNV.Image = global::RK7001Test.Properties.Resources.OK; break; case INFO_LEVEL.FAIL: this.pictureBox_WriteNV.Visible = true; this.pictureBox_WriteNV.Image = global::RK7001Test.Properties.Resources.Shape; break; case INFO_LEVEL.PROCESS: this.pictureBox_WriteNV.Visible = true; this.pictureBox_WriteNV.Image = global::RK7001Test.Properties.Resources.ic_loading; break; } } }
private void SetRemoteStatus(INFO_LEVEL level) { if (this.panel_remoter.InvokeRequired)//如果调用控件的线程和创建创建控件的线程不是同一个则为True { while (!this.panel_remoter.IsHandleCreated) { //解决窗体关闭时出现“访问已释放句柄“的异常 if (this.panel_remoter.Disposing || this.panel_remoter.IsDisposed) { return; } } SetRemoteStatusCallback d = new SetRemoteStatusCallback(SetRemoteStatus); this.panel_remoter.Invoke(d, new object[] { level }); } else { switch (level) { case INFO_LEVEL.INIT: this.panel_remoter.BackColor = Color.White; break; case INFO_LEVEL.PASS: this.panel_remoter.BackColor = Color.Green; break; case INFO_LEVEL.FAIL: this.panel_remoter.BackColor = Color.Red; break; case INFO_LEVEL.PROCESS: this.panel_remoter.BackColor = Color.Yellow; break; } } }
private void SetRK7001PinList(PIN_STATUS status, INFO_LEVEL level) { if (level == INFO_LEVEL.INIT) { for (int i = 1; i <= 28; i++) { if (i == 1 || i == 7 || i == 22 || i == 10 || i == 14) { Set7001Pin(i, INFO_LEVEL.GREY); } else { Set7001Pin(i, INFO_LEVEL.INIT); } } return; } else if (level == INFO_LEVEL.PROCESS) { for (int i = 1; i <= 28; i++) { if (i == 1 || i == 7 || i == 22 || i == 10 || i == 14) { Set7001Pin(i, INFO_LEVEL.GREY); } else { Set7001Pin(i, INFO_LEVEL.PROCESS); } } return; } else if (level == INFO_LEVEL.PASS) { for (int i = 1; i <= 28; i++) { if (i == 1 || i == 7 || i == 22 || i == 10 || i == 14) { Set7001Pin(i, INFO_LEVEL.GREY); } else { Set7001Pin(i, INFO_LEVEL.PASS); } } return; } //判断错误 /* * if(status.Pin1_Open || status.Pin1_Short) * Set7001Pin(1, INFO_LEVEL.FAIL); * else * Set7001Pin(1, INFO_LEVEL.PASS); */ if (status.Pin2_Open || status.Pin2_Short) { Set7001Pin(2, INFO_LEVEL.FAIL); } else { Set7001Pin(2, INFO_LEVEL.PASS); } if (status.Pin3_Open || status.Pin3_Short) { Set7001Pin(3, INFO_LEVEL.FAIL); } else { Set7001Pin(3, INFO_LEVEL.PASS); } if (status.Pin4_Open || status.Pin4_Short) { Set7001Pin(4, INFO_LEVEL.FAIL); } else { Set7001Pin(4, INFO_LEVEL.PASS); } if (status.Pin5_Open || status.Pin5_Short) { Set7001Pin(5, INFO_LEVEL.FAIL); } else { Set7001Pin(5, INFO_LEVEL.PASS); } if (status.Pin6_Open || status.Pin6_Short) { Set7001Pin(6, INFO_LEVEL.FAIL); } else { Set7001Pin(6, INFO_LEVEL.PASS); } /* * if (status.Pin7_Open || status.Pin7_Short) * Set7001Pin(7, INFO_LEVEL.FAIL); * else * Set7001Pin(7, INFO_LEVEL.PASS); */ if (status.Pin8_Open || status.Pin8_Short) { Set7001Pin(8, INFO_LEVEL.FAIL); } else { Set7001Pin(8, INFO_LEVEL.PASS); } if (status.Pin9_Open || status.Pin9_Short) { Set7001Pin(9, INFO_LEVEL.FAIL); } else { Set7001Pin(9, INFO_LEVEL.PASS); } /* * if (status.Pin10_Open || status.Pin10_Short) * Set7001Pin(10, INFO_LEVEL.FAIL); * else * Set7001Pin(10, INFO_LEVEL.PASS); */ if (status.Pin11_Open || status.Pin11_Short) { Set7001Pin(11, INFO_LEVEL.FAIL); } else { Set7001Pin(11, INFO_LEVEL.PASS); } if (status.Pin12_Open || status.Pin12_Short) { Set7001Pin(12, INFO_LEVEL.FAIL); } else { Set7001Pin(12, INFO_LEVEL.PASS); } if (status.Pin13_Open || status.Pin13_Short) { Set7001Pin(13, INFO_LEVEL.FAIL); } else { Set7001Pin(13, INFO_LEVEL.PASS); } /* * if (status.Pin14_Open || status.Pin14_Short) * Set7001Pin(14, INFO_LEVEL.FAIL); * else * Set7001Pin(14, INFO_LEVEL.PASS); */ if (status.Pin15_Open || status.Pin15_Short) { Set7001Pin(15, INFO_LEVEL.FAIL); } else { Set7001Pin(15, INFO_LEVEL.PASS); } if (status.Pin16_Open || status.Pin16_Short) { Set7001Pin(16, INFO_LEVEL.FAIL); } else { Set7001Pin(16, INFO_LEVEL.PASS); } if (status.Pin17_Open || status.Pin17_Short) { Set7001Pin(17, INFO_LEVEL.FAIL); } else { Set7001Pin(17, INFO_LEVEL.PASS); } if (status.Pin18_Open || status.Pin18_Short) { Set7001Pin(18, INFO_LEVEL.FAIL); } else { Set7001Pin(18, INFO_LEVEL.PASS); } if (status.Pin19_Open || status.Pin19_Short) { Set7001Pin(19, INFO_LEVEL.FAIL); } else { Set7001Pin(19, INFO_LEVEL.PASS); } if (status.Pin20_Open || status.Pin20_Short) { Set7001Pin(20, INFO_LEVEL.FAIL); } else { Set7001Pin(20, INFO_LEVEL.PASS); } if (status.Pin21_Open || status.Pin21_Short) { Set7001Pin(21, INFO_LEVEL.FAIL); } else { Set7001Pin(21, INFO_LEVEL.PASS); } /* * if (status.Pin22_Open || status.Pin22_Short) * Set7001Pin(22, INFO_LEVEL.FAIL); * else * Set7001Pin(22, INFO_LEVEL.PASS); */ if (status.Pin23_Open || status.Pin23_Short) { Set7001Pin(23, INFO_LEVEL.FAIL); } else { Set7001Pin(23, INFO_LEVEL.PASS); } if (status.Pin24_Open || status.Pin24_Short) { Set7001Pin(24, INFO_LEVEL.FAIL); } else { Set7001Pin(24, INFO_LEVEL.PASS); } if (status.Pin25_Open || status.Pin25_Short) { Set7001Pin(25, INFO_LEVEL.FAIL); } else { Set7001Pin(25, INFO_LEVEL.PASS); } if (status.Pin26_Open || status.Pin26_Short) { Set7001Pin(26, INFO_LEVEL.FAIL); } else { Set7001Pin(26, INFO_LEVEL.PASS); } if (status.Pin27_Open || status.Pin27_Short) { Set7001Pin(27, INFO_LEVEL.FAIL); } else { Set7001Pin(27, INFO_LEVEL.PASS); } if (status.Pin28_Open || status.Pin28_Short) { Set7001Pin(28, INFO_LEVEL.FAIL); } else { Set7001Pin(28, INFO_LEVEL.PASS); } /* * if (status.Pin29_Open || status.Pin29_Short) * Set7001Pin(29, INFO_LEVEL.FAIL); * else * Set7001Pin(29, INFO_LEVEL.PASS); * if (status.Pin30_Open || status.Pin30_Short) * Set7001Pin(30, INFO_LEVEL.FAIL); * else * Set7001Pin(30, INFO_LEVEL.PASS); */ }
private void SetRK4103ItemList(RK4103ITEM item, DeviceInfo info, INFO_LEVEL level) { if (this.lvRK4003ErrItem.InvokeRequired)//如果调用控件的线程和创建创建控件的线程不是同一个则为True { while (!this.lvRK4003ErrItem.IsHandleCreated) { //解决窗体关闭时出现“访问已释放句柄“的异常 if (this.lvRK4003ErrItem.Disposing || this.lvRK4003ErrItem.IsDisposed) { return; } } SetRK4103ItemListCallback d = new SetRK4103ItemListCallback(SetRK4103ItemList); this.lvRK4003ErrItem.Invoke(d, new object[] { item, info, level }); } else { this.lvRK4003ErrItem.BeginUpdate(); switch (item) { case RK4103ITEM.INIT: switch (level) { case INFO_LEVEL.INIT: this.lv4103sw.SubItems.Clear(); this.lv4103lgtsensor.SubItems.Clear(); this.lv4103gsensor.SubItems.Clear(); this.lv4103ble.SubItems.Clear(); this.lv4103sw.BackColor = Color.White; this.lv4103lgtsensor.BackColor = Color.White; this.lv4103gsensor.BackColor = Color.White; this.lv4103ble.BackColor = Color.White; this.lv4103sw.Text = "软件版本号"; this.lv4103lgtsensor.Text = "光感异常测试"; this.lv4103gsensor.Text = "Gsensor测试"; this.lv4103ble.Text = "蓝牙4.0测试"; break; case INFO_LEVEL.PASS: this.lv4103lgtsensor.SubItems.Add("通过"); this.lv4103gsensor.SubItems.Add("通过"); this.lv4103lgtsensor.SubItems[1].ForeColor = Color.Green; this.lv4103gsensor.SubItems[1].ForeColor = Color.Green; break; } break; case RK4103ITEM.VERSION: this.lv4103sw.SubItems.Add(info.sw); break; case RK4103ITEM.LIGHTSENSOR: switch (level) { case INFO_LEVEL.FAIL: this.lv4103lgtsensor.SubItems.Add("失败"); this.lv4103lgtsensor.SubItems[0].BackColor = Color.Red; this.lv4103lgtsensor.SubItems[1].BackColor = Color.Red; break; case INFO_LEVEL.PASS: this.lv4103lgtsensor.SubItems.Add("通过"); this.lv4103lgtsensor.SubItems[1].ForeColor = Color.Green; break; } break; case RK4103ITEM.GSENSOR: switch (level) { case INFO_LEVEL.FAIL: this.lv4103gsensor.SubItems.Add("失败"); this.lv4103gsensor.SubItems[0].BackColor = Color.Red; this.lv4103gsensor.SubItems[1].BackColor = Color.Red; break; case INFO_LEVEL.PASS: this.lv4103gsensor.SubItems.Add("通过"); this.lv4103gsensor.SubItems[1].ForeColor = Color.Green; break; } break; case RK4103ITEM.BLE: switch (level) { case INFO_LEVEL.FAIL: this.lv4103ble.SubItems.Add("失败"); this.lv4103ble.SubItems[0].BackColor = Color.Red; this.lv4103ble.SubItems[1].BackColor = Color.Red; break; case INFO_LEVEL.PASS: this.lv4103ble.SubItems.Add("通过"); this.lv4103ble.SubItems[1].ForeColor = Color.Green; break; } break; } this.lvRK4003ErrItem.EndUpdate(); } }
private void SetRK7001ItemList(RK7001ITEM item, DeviceInfo info, INFO_LEVEL level) { if (this.lvRK7001ErrItem.InvokeRequired)//如果调用控件的线程和创建创建控件的线程不是同一个则为True { while (!this.lvRK7001ErrItem.IsHandleCreated) { //解决窗体关闭时出现“访问已释放句柄“的异常 if (this.lvRK7001ErrItem.Disposing || this.lvRK7001ErrItem.IsDisposed) { return; } } SetRK7001ItemListCallback d = new SetRK7001ItemListCallback(SetRK7001ItemList); this.lvRK7001ErrItem.Invoke(d, new object[] { item, info, level }); } else { this.lvRK7001ErrItem.BeginUpdate(); switch (item) { case RK7001ITEM.VERSION: this.lv7001uid.SubItems.Add(info.sn); this.lv7001sw.SubItems.Add(info.sw); this.lv7001hw.SubItems.Add(info.hw); break; case RK7001ITEM.INIT: switch (level) { case INFO_LEVEL.INIT: this.lv7001uid.SubItems.Clear(); this.lv7001sw.SubItems.Clear(); this.lv7001hw.SubItems.Clear(); this.lv7001ampf.SubItems.Clear(); this.lv7001mosfet.SubItems.Clear(); this.lv7001buzzer.SubItems.Clear(); this.lv7001uid.BackColor = Color.White; this.lv7001sw.BackColor = Color.White; this.lv7001hw.BackColor = Color.White; this.lv7001ampf.BackColor = Color.White; this.lv7001mosfet.BackColor = Color.White; this.lv7001buzzer.BackColor = Color.White; this.lv7001uid.Text = "设备UID"; this.lv7001sw.Text = "软件版本号"; this.lv7001hw.Text = "硬件版本号"; this.lv7001ampf.Text = "运放故障"; this.lv7001mosfet.Text = "Mos短路"; this.lv7001buzzer.Text = "Buzzer故障"; break; case INFO_LEVEL.PASS: this.lv7001ampf.SubItems.Add("通过"); this.lv7001mosfet.SubItems.Add("通过"); this.lv7001buzzer.SubItems.Add("通过"); this.lv7001ampf.SubItems[1].ForeColor = Color.Green; this.lv7001mosfet.SubItems[1].ForeColor = Color.Green; this.lv7001buzzer.SubItems[1].ForeColor = Color.Green; break; } break; case RK7001ITEM.AMPLIFY: switch (level) { case INFO_LEVEL.PASS: this.lv7001ampf.SubItems.Add("通过"); this.lv7001ampf.SubItems[1].ForeColor = Color.Green; break; case INFO_LEVEL.FAIL: this.lv7001ampf.SubItems.Add("失败"); this.lv7001ampf.SubItems[0].BackColor = Color.Red; this.lv7001ampf.SubItems[1].BackColor = Color.Red; break; } break; case RK7001ITEM.MOSFET: switch (level) { case INFO_LEVEL.PASS: this.lv7001mosfet.SubItems.Add("通过"); this.lv7001mosfet.SubItems[1].ForeColor = Color.Green; break; case INFO_LEVEL.FAIL: this.lv7001mosfet.SubItems.Add("失败"); this.lv7001mosfet.SubItems[0].BackColor = Color.Red; this.lv7001mosfet.SubItems[1].BackColor = Color.Red; break; } break; case RK7001ITEM.BUZZER: switch (level) { case INFO_LEVEL.PASS: this.lv7001buzzer.SubItems.Add("通过"); this.lv7001buzzer.SubItems[1].ForeColor = Color.Green; break; case INFO_LEVEL.FAIL: this.lv7001buzzer.SubItems.Add("失败"); this.lv7001buzzer.SubItems[0].BackColor = Color.Red; this.lv7001buzzer.SubItems[1].BackColor = Color.Red; break; } break; } this.lvRK7001ErrItem.EndUpdate(); } }
public static extern int ChangeServiceFailureActions( Win32ServiceControlHandle hService, INFO_LEVEL dwInfoLevel, [MarshalAs(UnmanagedType.Struct)] ref SERVICE_FAILURE_ACTIONS lpInfo);
public static extern int ChangeServiceDescription( Win32ServiceControlHandle serviceHandle, INFO_LEVEL dwInfoLevel, [MarshalAs(UnmanagedType.Struct)] ref SERVICE_DESCRIPTION lpInfo);
internal static extern bool QueryServiceStatusEx(IntPtr hService, INFO_LEVEL infoLevel, IntPtr lpBuffer, int cbBufSize, out int pcbBytesNeeded);