コード例 #1
0
        private void EnterEngMode(int bank, int page)
        {
            if (company == Company.SNOEC)
            {
                //byte[] buff = new byte[6];
                //buff[0] = 0x12;
                //buff[1] = 0x34;
                //buff[2] = 0x56;
                //buff[3] = 0x78;
                //buff[4] = (byte)bank;
                //buff[5] = (byte)page;
                //IOPort.WriteReg(DUT_USB_Port, 0xA0, 122, softHard, buff);

                byte[] buff = new byte[1];
                buff[0] = (byte)page;
                IOPort.WriteReg(DUT_USB_Port, 0xA0, 127, softHard, buff);

                //byte[] buff = new byte[6];
                //buff[0] = 0x93;
                //buff[1] = 0x78;
                //buff[2] = 0xCC;
                //buff[3] = 0xAE;
                //buff[4] = (byte)bank;
                //buff[5] = (byte)page;
                //IOPort.WriteReg(DUT_USB_Port, 0xA0, 122, softHard, buff);
            }
        }
コード例 #2
0
ファイル: SFP28_SNOEC.cs プロジェクト: tclxspy/SNOEC_GUI
 private void EnterEngMode(int page)
 {
     if (company == Company.SNOEC)
     {
         byte[] buff = new byte[1];
         buff[0] = (byte)page;
         IOPort.WriteReg(DUT_USB_Port, 0xA0, 127, softHard, buff);
     }
 }
コード例 #3
0
 public void Apply_Immediate_Staged_1()
 {
     try
     {
         EnterEngMode(0x00, 0x10);
         byte[] data = new byte[1] {
             0xFF
         };
         IOPort.WriteReg(DUT_USB_Port, 0xA0, 0xB3, softHard, data);
     }
     catch
     {
         //Log.SaveLogToTxt(ex.Message);
     }
 }
コード例 #4
0
 public void SoftRest()
 {
     try
     {
         EnterEngMode(0x00, 0x00);
         byte[] data = new byte[1] {
             0x08
         };
         IOPort.WriteReg(DUT_USB_Port, 0xA0, 0x1A, softHard, data);
     }
     catch
     {
         //Log.SaveLogToTxt(ex.Message);
     }
 }
コード例 #5
0
        public bool TxChannelEnable(int channel)
        {
            lock (syncRoot)
            {
                EnterEngMode(0);
                byte[] buff = new byte[1];
                try
                {
                    switch (channel)
                    {
                    case 1:
                        buff    = IOPort.ReadReg(DUT_USB_Port, 0xA0, 86, softHard, 1);
                        buff[0] = (byte)(buff[0] & 0xFE);
                        IOPort.WriteReg(DUT_USB_Port, 0xA0, 86, softHard, buff);
                        break;

                    case 2:
                        buff    = IOPort.ReadReg(DUT_USB_Port, 0xA0, 86, softHard, 1);
                        buff[0] = (byte)(buff[0] & 0xFD);
                        IOPort.WriteReg(DUT_USB_Port, 0xA0, 86, softHard, buff);
                        break;

                    case 3:
                        buff    = IOPort.ReadReg(DUT_USB_Port, 0xA0, 86, softHard, 1);
                        buff[0] = (byte)(buff[0] & 0xFB);
                        IOPort.WriteReg(DUT_USB_Port, 0xA0, 86, softHard, buff);
                        break;

                    case 4:
                        buff    = IOPort.ReadReg(DUT_USB_Port, 0xA0, 86, softHard, 1);
                        buff[0] = (byte)(buff[0] & 0xF7);
                        IOPort.WriteReg(DUT_USB_Port, 0xA0, 86, softHard, buff);
                        break;

                    default:
                        break;
                    }
                    return(true);
                }
                catch
                {
                    //Log.SaveLogToTxt(ex.ToString());
                    return(false);
                }
            }
        }
コード例 #6
0
        public bool SetSoftTxDis(int channel)
        {
            lock (syncRoot)
            {
                byte[] buff = new byte[1];
                try
                {
                    EnterEngMode(0);
                    switch (channel)
                    {
                    case 1:
                        buff    = IOPort.ReadReg(DUT_USB_Port, 0xA0, 86, softHard, 1);
                        buff[0] = (byte)(buff[0] | 0x01);
                        IOPort.WriteReg(DUT_USB_Port, 0xA0, 86, softHard, buff);
                        break;

                    case 2:
                        buff    = IOPort.ReadReg(DUT_USB_Port, 0xA0, 86, softHard, 1);
                        buff[0] = (byte)(buff[0] | 0x02);
                        IOPort.WriteReg(DUT_USB_Port, 0xA0, 86, softHard, buff);
                        break;

                    case 3:
                        buff    = IOPort.ReadReg(DUT_USB_Port, 0xA0, 86, softHard, 1);
                        buff[0] = (byte)(buff[0] | 0x04);
                        IOPort.WriteReg(DUT_USB_Port, 0xA0, 86, softHard, buff);
                        break;

                    case 4:
                        buff    = IOPort.ReadReg(DUT_USB_Port, 0xA0, 86, softHard, 1);
                        buff[0] = (byte)(buff[0] | 0x08);
                        IOPort.WriteReg(DUT_USB_Port, 0xA0, 86, softHard, buff);
                        break;

                    default:
                        break;
                    }
                    return(true);
                }
                catch
                {
                    //Log.SaveLogToTxt(ex.ToString());
                    return(false);
                }
            }
        }
コード例 #7
0
        public bool PSM4_SetHeator(int channel, UInt16 value)
        {
            lock (syncRoot)
            {
                byte[] buff_L = new byte[1];
                buff_L[0] = (byte)(value % 256);
                byte[] buff_H = new byte[1];
                buff_H[0] = (byte)(value / 256);
                try
                {
                    //EnterEngMode(0);
                    switch (channel)
                    {
                    case 1:
                        IOPort.WriteReg(DUT_USB_Port, 0xA0, 6, softHard, buff_L);
                        IOPort.WriteReg(DUT_USB_Port, 0xA0, 7, softHard, buff_H);
                        break;

                    case 2:
                        IOPort.WriteReg(DUT_USB_Port, 0xA0, 8, softHard, buff_L);
                        IOPort.WriteReg(DUT_USB_Port, 0xA0, 9, softHard, buff_H);
                        break;

                    case 3:
                        IOPort.WriteReg(DUT_USB_Port, 0xA0, 10, softHard, buff_L);
                        IOPort.WriteReg(DUT_USB_Port, 0xA0, 11, softHard, buff_H);
                        break;

                    case 4:
                        IOPort.WriteReg(DUT_USB_Port, 0xA0, 12, softHard, buff_L);
                        IOPort.WriteReg(DUT_USB_Port, 0xA0, 13, softHard, buff_H);
                        break;

                    default:
                        break;
                    }
                    return(true);
                }
                catch
                {
                    //Log.SaveLogToTxt(ex.ToString());
                    return(false);
                }
            }
        }
コード例 #8
0
        public bool PSM4_SetIbias(int channel, byte value)
        {
            lock (syncRoot)
            {
                byte[] buff = new byte[1];
                buff[0] = value;
                try
                {
                    //EnterEngMode(0);
                    switch (channel)
                    {
                    case 1:
                        IOPort.WriteReg(DUT_USB_Port, 0xA0, 0, softHard, buff);
                        break;

                    case 2:
                        IOPort.WriteReg(DUT_USB_Port, 0xA0, 1, softHard, buff);
                        break;

                    case 3:
                        IOPort.WriteReg(DUT_USB_Port, 0xA0, 2, softHard, buff);
                        break;

                    case 4:
                        IOPort.WriteReg(DUT_USB_Port, 0xA0, 3, softHard, buff);
                        break;

                    case 5:
                        IOPort.WriteReg(DUT_USB_Port, 0xA0, 4, softHard, buff);
                        break;

                    default:
                        break;
                    }
                    return(true);
                }
                catch
                {
                    //Log.SaveLogToTxt(ex.ToString());
                    return(false);
                }
            }
        }
コード例 #9
0
 public bool TxAllChannelEnable()
 {
     lock (syncRoot)
     {
         EnterEngMode(0);
         byte[] dataToWrite = { 0x00 };
         byte[] dataReadArray;
         for (int i = 0; i < 3; i++)
         {
             IOPort.WriteReg(DUT_USB_Port, 0xA0, 86, softHard, dataToWrite);
             dataReadArray = IOPort.ReadReg(DUT_USB_Port, 0xA0, 86, softHard, 1);
             if (dataReadArray[0] == 0x00)
             {
                 return(true);
             }
         }
         return(false);
     }
 }
コード例 #10
0
        public void DataPathPwrDn_2()
        {
            try
            {
                EnterEngMode(0x00, 0x00);
                byte[] data = new byte[1] {
                    0x00
                };
                Byte[] buff = IOPort.WriteReg(DUT_USB_Port, 0xA0, 0x1A, softHard, data);

                EnterEngMode(0x00, 0x10);
                data = IOPort.ReadReg(DUT_USB_Port, 0xA0, 0x80, softHard, 1);

                data[0] &= 0x0F;
                IOPort.WriteReg(DUT_USB_Port, 0xA0, 0x80, softHard, data);
            }
            catch
            {
                //Log.SaveLogToTxt(ex.Message);
            }
        }
コード例 #11
0
        private void EnterEngMode(int page)
        {
            if (company == Company.Inno)
            {
                byte[] buff = new byte[5];
                buff[0] = 0xca;
                buff[1] = 0x2d;
                buff[2] = 0x81;
                buff[3] = 0x5f;
                buff[4] = (byte)page;
                IOPort.WriteReg(DUT_USB_Port, 0xA0, 123, softHard, buff);
            }
            else if (company == Company.SNOEC)
            {
                //byte[] buff = new byte[5];
                //buff[0] = 0xdf;
                //buff[1] = 0x5e;
                //buff[2] = 0x75;
                //buff[3] = 0xcd;
                //buff[4] = (byte)page;
                //IOPort.WriteReg(DUT_USB_Port, 0xA0, 123, softHard, buff);
                byte[] buff = new byte[5];
                buff[0] = 0x12;
                buff[1] = 0x34;
                buff[2] = 0x56;
                buff[3] = 0x78;
                buff[4] = (byte)page;
                IOPort.WriteReg(DUT_USB_Port, 0xA0, 123, softHard, buff);

                //byte[] buff = new byte[5];
                //buff[0] = 0x80;
                //buff[1] = 0x00;
                //buff[2] = 0x46;
                //buff[3] = 0x49;
                //buff[4] = (byte)page;
                //IOPort.WriteReg(DUT_USB_Port, 0xA2, 123, softHard, buff);

                //byte[] buff = new byte[1];//sip
                //buff[0] = (byte)page;
                //IOPort.WriteReg(DUT_USB_Port, 0xA0, 127, softHard, buff);
            }
            else if (company == Company.Generic)
            {
                byte[] buff = new byte[5];
                buff[0] = 0x00;
                buff[1] = 0x00;
                buff[2] = 0x10;
                buff[3] = 0x11;
                buff[4] = (byte)page;
                IOPort.WriteReg(DUT_USB_Port, 0xA0, 123, softHard, buff);
            }
            else if (company == Company.Luxshare)
            {
                //byte[] buff = new byte[5];//100G
                //buff[0] = 0xA6;
                //buff[1] = 0x06;
                //buff[2] = 0x4C;
                //buff[3] = 0x6E;
                //buff[4] = (byte)page;
                //IOPort.WriteReg(DUT_USB_Port, 0xA0, 123, softHard, buff);

                //byte[] buff = new byte[5];//56G
                //buff[0] = 0xE0;
                //buff[1] = 0x55;
                //buff[2] = 0x3E;
                //buff[3] = 0x8A;
                //buff[4] = (byte)page;
                //IOPort.WriteReg(DUT_USB_Port, 0xA0, 123, softHard, buff);

                byte[] buff = new byte[5];//56G
                buff[0] = 0x4C;
                buff[1] = 0x4F;
                buff[2] = 0x45;
                buff[3] = 0x54;
                buff[4] = (byte)page;
                IOPort.WriteReg(DUT_USB_Port, 0xA0, 123, softHard, buff);
            }
            else if (company == Company.Nopasswords)
            {
                byte[] buff = new byte[1];
                buff[0] = (byte)page;
                IOPort.WriteReg(DUT_USB_Port, 0xA0, 127, softHard, buff);
            }
            else if (company == Company.Nopasswords_Nopage)
            {
                //no code
            }
        }
コード例 #12
0
 public byte[] WriteReg(int deviceIndex, int deviceAddress, int page, int regAddress, byte[] dataToWrite)
 {
     EnterEngMode(page);
     return(IOPort.WriteReg(deviceIndex, deviceAddress, regAddress, softHard, dataToWrite));
 }
コード例 #13
0
ファイル: QSFP28_PSM4_Form.cs プロジェクト: tclxspy/SNOEC_GUI
        private void btnLoad_I2C_Batch_Click(object sender, EventArgs e)
        {
            try
            {
                IOPort.SoftHard softHard = IOPort.SoftHard.SerialPort;
                switch (this.comboBoxSoftHard.Text)
                {
                case "OnEasyB_I2C":
                    softHard = IOPort.SoftHard.OnEasyB_I2C;
                    try
                    {
                        byte i, re;
                        OnEasyB_I2C.serialNumber = new StringBuilder(255);
                        byte          MaxDevNum = OnEasyB_I2C.USBIO_GetMaxNumofDev();
                        List <String> list      = new List <string>();

                        for (i = 0; i < MaxDevNum; i++)
                        {
                            re = OnEasyB_I2C.USBIO_GetSerialNo(i, OnEasyB_I2C.serialNumber);
                            if (re != 0)
                            {
                                list.Add(OnEasyB_I2C.serialNumber.ToString());
                            }
                        }

                        if (list.Count == 0)
                        {
                            MessageBox.Show("Disconnect to OnEasyB_I2C", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            return;
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message, "Disconnect to OnEasyB_I2C", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }

                    this.comboBoxDeviceIndex.SelectedIndex = 0;
                    break;

                case "SerialPort":
                    softHard = IOPort.SoftHard.SerialPort;
                    break;

                default:
                    softHard = IOPort.SoftHard.SerialPort;
                    break;
                }

                if (this.txtI2C_Batch_FilePath.Text == "")
                {
                    return;
                }

                this.btnLoad_I2C_Batch.Enabled   = false;
                this.btnLoad_I2C_Batch.BackColor = Color.Yellow;
                this.btnLoad_I2C_Batch.Refresh();

                DirectoryInfo directoryInfo = Directory.GetParent(this.txtI2C_Batch_FilePath.Text);
                if (!directoryInfo.Exists)
                {
                    MessageBox.Show("File is no exist", "error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    this.btnLoadSetting.Enabled   = true;
                    this.btnLoadSetting.BackColor = SystemColors.Control;
                    return;
                }

                DataTable setting_table = this.GetExcelTable(this.txtI2C_Batch_FilePath.Text);

                for (int row = 0; row < setting_table.Rows.Count; row++)
                {
                    byte[] deviceAddress = new byte[1];
                    int    regAddress    = 0;
                    byte[] writeData     = new byte[1];

                    try
                    {
                        deviceAddress = Algorithm.HexStringToBytes(setting_table.Rows[row][0].ToString());

                        byte[] buf_regAdress = Algorithm.HexStringToBytes(setting_table.Rows[row][1].ToString());

                        for (int i = 0; i < buf_regAdress.Length; i++)
                        {
                            regAddress += buf_regAdress[i] << 8 * i;
                        }

                        writeData = Algorithm.HexStringToBytes(setting_table.Rows[row][2].ToString());
                    }
                    catch
                    {
                        MessageBox.Show("Unfomart", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        this.btnLoad_I2C_Batch.Enabled   = true;
                        this.btnLoad_I2C_Batch.BackColor = SystemColors.Control;
                        return;
                    }


                    byte[] buff = IOPort.WriteReg(this.comboBoxDeviceIndex.SelectedIndex, deviceAddress[0], regAddress, softHard, writeData);
                    if (buff == null)
                    {
                        this.btnLoad_I2C_Batch.Enabled   = true;
                        this.btnLoad_I2C_Batch.BackColor = SystemColors.Control;
                        return;
                    }
                }

                this.btnLoad_I2C_Batch.Enabled   = true;
                this.btnLoad_I2C_Batch.BackColor = SystemColors.Control;
                MessageBox.Show("Done", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "No link.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }