private void btnChipSet_Click(object sender, EventArgs e) { setLabel.Text = ""; ChipModel CHIPMODEL = new ChipModel(); CHIPMODEL.chipSelect = chipSelect.SelectedIndex; CHIPMODEL.pathSelect = pathSelect.SelectedIndex; CHIPMODEL.baudRate = baudRate.SelectedItem.ToString(); CHIPMODEL.parityCheck = parityCheck.SelectedItem.ToString(); CHIPMODEL.stopBit = stopBit.SelectedItem.ToString(); CHIPMODEL.byteLength = byteLength.SelectedItem.ToString(); CHIPMODEL.FIFOSelect = FIFOSelect.SelectedItem.ToString(); CHIPMODEL.DMAPattern = DMAPattern.SelectedItem.ToString(); CHIPMODEL.receiveFIFO = receiveFIFO.SelectedItem.ToString(); CHIPMODEL.sendTarget = sendTarget.SelectedItem.ToString(); CHIPMODEL.receiveInterrupt = receiveInterrupt.SelectedItem.ToString(); CHIPMODEL.sendInterrupt = sendInterrupt.SelectedItem.ToString(); CHIPMODEL.receiveCache = receiveCache.SelectedItem.ToString(); int error = CDll.ChipSet(CHIPMODEL); if (error >= 0) { setLabel.Text = "设置成功..."; } }
public static extern void SetChipModel(IntPtr ptr, ChipModel model);
/// <summary> /// 芯片设置 /// </summary> /// <param name="CHIPMODEL"></param> /// <returns></returns> public static int ChipSet(ChipModel CHIPMODEL) { int error = 0; Byte[] cmdByte = new Byte[10] { 0XAA, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0XBB }; cmdByte[2] = (byte)CHIPMODEL.chipSelect; cmdByte[3] = (byte)CHIPMODEL.pathSelect; //设置DUT波特率 cmdByte[1] = 0x03; cmdByte[4] = ValueReturn(CHIPMODEL.baudRate, "波特率"); error = CGloabal.WriteToCom(CGloabal.g_serialPorForUUT, cmdByte, 10); Thread.Sleep(100); cmdByte[1] = 0x08; //发送中断、接收中断、接收缓存中断 cmdByte[4] = 01; cmdByte[5] = 0x00; cmdByte[5] += ValueReturn(CHIPMODEL.receiveInterrupt, "接收中断"); cmdByte[5] += ValueReturn(CHIPMODEL.sendInterrupt, "发送中断"); cmdByte[5] += ValueReturn(CHIPMODEL.receiveCache, "接收缓存中断"); error = CGloabal.WriteToCom(CGloabal.g_serialPorForUUT, cmdByte, 10); if (error < 0) { return(-3); } Thread.Sleep(100); cmdByte[4] = 02; //FIFO使能,DMA模式,接收FIFO触发器,发送触发器 cmdByte[5] = 0x00; cmdByte[5] += ValueReturn(CHIPMODEL.FIFOSelect, "FIFO使能"); cmdByte[5] += ValueReturn(CHIPMODEL.DMAPattern, "DMA模式"); cmdByte[5] += ValueReturn(CHIPMODEL.receiveFIFO, "接收触发器"); cmdByte[5] += ValueReturn(CHIPMODEL.sendTarget, "发送触发器"); error = CGloabal.WriteToCom(CGloabal.g_serialPorForUUT, cmdByte, 10); if (error < 0) { return(-2); } //设置奇偶校验,停止位,字长 cmdByte[4] = 3; cmdByte[5] = 0x00; cmdByte[5] += ValueReturn(CHIPMODEL.parityCheck, "奇偶校验"); cmdByte[5] += ValueReturn(CHIPMODEL.stopBit, "停止位"); cmdByte[5] += ValueReturn(CHIPMODEL.byteLength, "字长"); error = CGloabal.WriteToCom(CGloabal.g_serialPorForUUT, cmdByte, 10); if (error < 0) { return(-1); } Thread.Sleep(100); Thread.Sleep(100); return(error); }
public Builder AddChip(ChipModel model) { Chips.Add(model); return(this); }