private void OpenDevice() { ushort vid = 0, pid = 0; if (textBox3.Text != "" && textBox2.Text != "") { vid = (ushort)Convert.ToInt32(textBox3.Text, 16); pid = (ushort)Convert.ToInt32(textBox2.Text, 16); } Clear(); Print("0x" + vid.ToString("x")); Print("0x" + pid.ToString("x")); try { HidDevice[] HidDeviceList = HidDevices.Enumerate(vid, pid, Convert.ToUInt16(0xFF31)).ToArray(); if (HidDeviceList == null || HidDeviceList.Length == 0) { Print("Connect usb device. Try open again or select a keyboard templet!"); HidDevice = null; return; } for (int i = 0; i < HidDeviceList.Length; i++) { //Print(HidDeviceList[i].DevicePath); HidDevice = HidDeviceList[0]; break; } if (HidDevice == null) { Print("Connect usb device. Try open again."); return; } Print("Device OK"); byte[] outdata = new byte[9]; outdata[0] = 0; outdata[1] = 0xFF; outdata[2] = 0xFA; HidDevice.Write(outdata); Thread.Sleep(60); // 0xFFFA是open的flag // 0xFFF1是upload的flag // 0xFFF2是end的flag } catch (Exception ex) { Print(ex.ToString()); } }
private void openToolStripMenuItem_Click(object sender, EventArgs e) { if (textBox3.Text != "") { vid = (ushort)Convert.ToInt32(textBox3.Text, 16); } if (textBox4.Text != "") { pid = (ushort)Convert.ToInt32(textBox4.Text, 16); } Clear(); Print("0x" + vid.ToString("x")); Print("0x" + pid.ToString("x")); try { HidDevice[] HidDeviceList = HidDevices.Enumerate(vid, pid, Convert.ToUInt16(0xFF31)).ToArray(); if (HidDeviceList == null || HidDeviceList.Length == 0) { Print("Connect usb device and install driver. Try open again"); return; } for (int i = 0; i < HidDeviceList.Length; i++) { Print(HidDeviceList[i].DevicePath); HidDevice = HidDeviceList[0]; break; } if (HidDevice == null) { Print("Connect usb device and install driver. Try open again"); return; } Print("Device OK"); byte[] outdata = new byte[9]; outdata[0] = 0; outdata[1] = 0xFF; outdata[2] = 0xFA; HidDevice.Write(outdata); Thread.Sleep(60); } catch (Exception ex) { Print(ex.ToString()); } }
private void uploadToolStripMenuItem_Click(object sender, EventArgs e) { try { int addr = 0; if (textBox4.Text != "" || textBox4.Text != null) { addr = Convert.ToInt32(textBox4.Text); } if (textBox2.Text == "") { Clear(); Print("Nothing to upload"); return; } string[] str = textBox2.Text.Split(','); if (HidDevice == null) { Clear(); Print("Invalid device"); return; } Clear(); Print("Uploading address=" + addr); byte[] outdata = new byte[9]; outdata[0] = 0; byte[] a = new byte[2]; outdata[1] = 0xFF; outdata[2] = 0xF1; HidDevice.Write(outdata, 50); Thread.Sleep(50); for (ushort i = 0; (i * 2) < Convert.ToInt32(eepromsize); i += 3) { a = BitConverter.GetBytes((ushort)(i * 2 + addr)); outdata[1] = a[0]; outdata[2] = a[1]; if ((i + 2) < str.Length) { ushort data3 = Convert.ToUInt16(str[i + 2]); //Print(data3); a = BitConverter.GetBytes(data3); outdata[7] = a[0]; outdata[8] = a[1]; } if ((i + 1) < str.Length) { ushort data2 = Convert.ToUInt16(str[i + 1]); //Print(data2); a = BitConverter.GetBytes(data2); outdata[5] = a[0]; outdata[6] = a[1]; } if (i < str.Length) { ushort data1 = Convert.ToUInt16(str[i]); //Print(data1); a = BitConverter.GetBytes(data1); outdata[3] = a[0]; outdata[4] = a[1]; } else { break; } HidDevice.Write(outdata, 50); string outdatastr = ""; for (int k = 1; k < outdata.Length; k++) { outdatastr += outdata[k].ToString() + "/"; } Print(outdatastr); Thread.Sleep(50); } outdata[1] = 0xFF; outdata[2] = 0xF2; HidDevice.Write(outdata, 50); Thread.Sleep(50); Print("Upload finished"); } catch (Exception ex) { Print(ex.ToString()); } }
private void UploadPrintBox() { OpenDevice(); Encode(iencode); Print("eepromsize=" + eepromsize.ToString()); try { if (CodeTemp == "") { Print("Nothing to upload"); return; } string[] str = CodeTemp.Split(','); if (HidDevice == null) { Print("Invalid device"); return; } byte[] outdata = new byte[9]; outdata[0] = 0; byte[] a = new byte[2]; outdata[1] = 0xFF; outdata[2] = 0xF1; HidDevice.Write(outdata); Thread.Sleep(60); for (ushort i = 0; (i * 2 + 4 + addr) < eepromsize; i += 3) { a = BitConverter.GetBytes((ushort)(i * 2 + addr)); outdata[1] = a[0]; outdata[2] = a[1]; if ((i + 2) < str.Length) { ushort data3 = Convert.ToUInt16(str[i + 2]); //Print(data3); a = BitConverter.GetBytes(data3); outdata[7] = a[0]; outdata[8] = a[1]; } if ((i + 1) < str.Length) { ushort data2 = Convert.ToUInt16(str[i + 1]); //Print(data2); a = BitConverter.GetBytes(data2); outdata[5] = a[0]; outdata[6] = a[1]; } if (i < str.Length) { ushort data1 = Convert.ToUInt16(str[i]); //Print(data1); a = BitConverter.GetBytes(data1); outdata[3] = a[0]; outdata[4] = a[1]; } else { break; } HidDevice.Write(outdata); string outdatastr = ""; for (int k = 1; k < outdata.Length; k++) { outdatastr += outdata[k].ToString() + "/"; } Print(outdatastr); Thread.Sleep(60); } outdata[1] = 0xFF; outdata[2] = 0xF2; HidDevice.Write(outdata); Thread.Sleep(60); Print("Upload finished"); } catch (Exception ex) { Print(ex.ToString()); } }