Beispiel #1
0
        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 = "设置成功...";
            }
        }
Beispiel #2
0
 public static extern void SetChipModel(IntPtr ptr, ChipModel model);
Beispiel #3
0
        /// <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);
 }