Example #1
0
        public Cebora(byte deviceId, TPCANHandle channel, TPCANBaudrate baudrate, TPCANType hwType)
        {
            mDeviceId = deviceId;
            mChannel  = channel;
            mBaudrate = baudrate;
            mHwType   = hwType;

            mDigitalSignals = new Signal <int>(this);
            mDigitalSignals["CommunicationReady"]  = 0;
            mDigitalSignals["PowerSourceReady"]    = 0;
            mDigitalSignals["CollisionProtection"] = 0;
            mDigitalSignals["ProcessActive"]       = 0;
            mDigitalSignals["CurrentFlow"]         = 0;
            mDigitalSignals["ErrorNumber"]         = 0;
            mDigitalSignals["PulseSync"]           = 0;
            mDigitalSignals["PilotArc"]            = 0;
            mDigitalSignals["StickingRemedied"]    = 0;
            mDigitalSignals["WireAvailable"]       = 0;
            mDigitalSignals["MainCurrent"]         = 0;

            mAnalogSignals       = new Signal <double>(this);
            mAnalogSignals["A0"] = 0; // Welding Voltage Measured 0 ~ 100 V.
            mAnalogSignals["A1"] = 0; // Welding Current Measured 0 ~ 1000 A.
            mAnalogSignals["A2"] = 0; // Motor Current Measured 0,0 ~ 5.0 A.
            mAnalogSignals["A3"] = 0; // Wire Feed Speed Actual Value -12,5 ~ +12,5 m/min.
            mAnalogSignals["A4"] = 0; // Plasma gas flow 0.2 ~ 10.0 l/min.
            mAnalogSignals["A5"] = 0; // Shield gas flow 5.0 ~ 30.0 l/min.
        }
Example #2
0
 public static extern TPCANStatus Initialize(
     [MarshalAs(UnmanagedType.U1)]
     TPCANHandle Channel,
     [MarshalAs(UnmanagedType.U2)]
     TPCANBaudrate Btr0Btr1,
     [MarshalAs(UnmanagedType.U1)]
     TPCANType HwType,
     UInt32 IOPort,
     UInt16 Interrupt);
        /// <summary>
        /// 初始化
        /// </summary>
        public void initialize()
        {
            m_PcanHandle = PCANBasic.PCAN_USBBUS1;                   //通道
            m_Baudrate   = TPCANBaudrate.PCAN_BAUD_500K;             //波特率
            TPCANStatus result;                                      //状态

            result = PCANBasic.Initialize(m_PcanHandle, m_Baudrate); //初始化
            if (result == TPCANStatus.PCAN_ERROR_OK)
            {
                ConfiguerTraceFile();
            }
            else
            {
                throw  new Exception("pcanhelper初始化失败");
            }
        }
Example #4
0
        public TPCANStatus connect(TPCANHandle handler, TPCANBaudrate baudrate, TPCANType type, UInt32 io, UInt16 interrupt)
        {
            TPCANStatus stsResult;
            m_PcanHandle = handler;

            // Connects a selected PCAN-Basic channel
            //
            stsResult = PCANBasic.Initialize(
                    m_PcanHandle,
                    baudrate,
                    type,
                    io,
                    interrupt);

            readCanTimer = new Timer(50);
            readCanTimer.Start();
            readCanTimer.Elapsed += OnTimedEvent;

            return stsResult;
        }
Example #5
0
        //private void btnInit_Click(object sender, EventArgs e)

        /*
         * strBitrate 波特率
         *
         */
        private bool PCAN_Init(string strBitrate)
        {
            bool bInitRet = false;

            m_PcanHandle = Convert.ToUInt16("51", 16);
            m_Baudrate   = TPCANBaudrate.PCAN_BAUD_500K;
            m_HwType     = TPCANType.PCAN_TYPE_ISA;

            TPCANStatus stsResult;

            // Connects a selected PCAN-Basic channel
            //
            if (m_IsFD)
            {
                stsResult = PCANBasic.InitializeFD(m_PcanHandle, strBitrate);
            }
            else
            {
                stsResult = PCANBasic.Initialize(
                    m_PcanHandle,
                    m_Baudrate,
                    m_HwType,
                    256,  // Convert.ToUInt32(strIO, 16),
                    3);   // Convert.ToUInt16(strInterrupt));
            }
            if (stsResult != TPCANStatus.PCAN_ERROR_OK)
            {
                if (stsResult != TPCANStatus.PCAN_ERROR_CAUTION)
                {
                    //MessageBox.Show(GetFormatedError(stsResult));
                    bInitRet = false;
                }
            }
            else
            {
                // Prepares the PCAN-Basic's PCAN-Trace file
                bInitRet = true;
            }

            return(bInitRet);
        }
Example #6
0
        public TPCANStatus connect(TPCANHandle handler, TPCANBaudrate baudrate, TPCANType type, UInt32 io, UInt16 interrupt)
        {
            TPCANStatus stsResult;

            m_PcanHandle = handler;

            // Connects a selected PCAN-Basic channel
            //
            stsResult = PCANBasic.Initialize(
                m_PcanHandle,
                baudrate,
                type,
                io,
                interrupt);

            readCanTimer = new Timer(50);
            readCanTimer.Start();
            readCanTimer.Elapsed += OnTimedEvent;

            return(stsResult);
        }
Example #7
0
        internal static Baudrate ToInterfaceBaudrate(TPCANBaudrate baudrate)
        {
            switch (baudrate)
            {
            case TPCANBaudrate.PCAN_BAUD_1M: return(Baudrate.BR1000K);

            case TPCANBaudrate.PCAN_BAUD_800K: return(Baudrate.BR800K);

            case TPCANBaudrate.PCAN_BAUD_500K: return(Baudrate.BR500K);

            case TPCANBaudrate.PCAN_BAUD_250K: return(Baudrate.BR250K);

            case TPCANBaudrate.PCAN_BAUD_125K: return(Baudrate.BR125K);

            case TPCANBaudrate.PCAN_BAUD_100K: return(Baudrate.BR100K);

            case TPCANBaudrate.PCAN_BAUD_95K: return(Baudrate.BR95K);

            case TPCANBaudrate.PCAN_BAUD_83K: return(Baudrate.BR83K);

            case TPCANBaudrate.PCAN_BAUD_50K: return(Baudrate.BR50K);

            case TPCANBaudrate.PCAN_BAUD_47K: return(Baudrate.BR47K);

            case TPCANBaudrate.PCAN_BAUD_33K: return(Baudrate.BR33K);

            case TPCANBaudrate.PCAN_BAUD_20K: return(Baudrate.BR20K);

            case TPCANBaudrate.PCAN_BAUD_10K: return(Baudrate.BR10K);

            case TPCANBaudrate.PCAN_BAUD_5K: return(Baudrate.BR5K);

            default:
                return(Baudrate.Unsupported);
            }
        }
Example #8
0
 /// <summary>
 /// Initializes a PCAN Channel
 /// </summary>
 /// <param name="Channel">The handle of a PCAN Channel</param>
 /// <param name="Btr0Btr1">The speed for the communication (BTR0BTR1 code)</param>
 /// <returns>A TPCANStatus error code</returns>
 public static TPCANStatus Initialize(
     TPCANHandle Channel,
     TPCANBaudrate Btr0Btr1)
 {
     return(Initialize(Channel, Btr0Btr1, (TPCANType)0, 0, 0));
 }
Example #9
0
 /// <summary>
 /// Initializes a PCAN Channel
 /// </summary>
 /// <param name="Channel">The handle of a PCAN Channel</param>
 /// <param name="Btr0Btr1">The speed for the communication (BTR0BTR1 code)</param>
 /// <returns>A TPCANStatus error code</returns>
 public static TPCANStatus Initialize(
     TPCANHandle Channel,
     TPCANBaudrate Btr0Btr1)
 {
     return Initialize(Channel, Btr0Btr1, (TPCANType)0, 0, 0);
 }
Example #10
0
        public PeakCan(int p_peak_id, TPCANBaudrate p_baud_rate = TPCANBaudrate.PCAN_BAUD_1M)
        {
            TPCANStatus status;
            uint        condition;
            uint        device_id;

            foreach (TPCANHandle channel in USB_CHANNELS)
            {
                status = PCANBasic.GetValue(channel, TPCANParameter.PCAN_CHANNEL_CONDITION, out condition, sizeof(UInt32));
                if (status == TPCANStatus.PCAN_ERROR_OK && (condition & PCANBasic.PCAN_CHANNEL_AVAILABLE) == PCANBasic.PCAN_CHANNEL_AVAILABLE)
                {
                    status = PCANBasic.Initialize(channel, p_baud_rate);
                    if (status == TPCANStatus.PCAN_ERROR_OK)
                    {
                        status = PCANBasic.GetValue(channel, TPCANParameter.PCAN_DEVICE_NUMBER, out device_id, sizeof(UInt32));
                        if (status == TPCANStatus.PCAN_ERROR_OK && device_id == p_peak_id)
                        {
                            m_sock = channel;
                        }

                        PCANBasic.Uninitialize(channel);
                    }
                }
            }

            if (m_sock == 0)
            {
                throw new Exception($"PEAK CAN USB adapt with id 0x{p_peak_id:X} not found");
            }
            else
            {
                status = PCANBasic.Initialize(m_sock, p_baud_rate);

                if (status != TPCANStatus.PCAN_ERROR_OK)
                {
                    throw new Exception($"Error initializing CAN with id 0x{p_peak_id:X}");
                }

                status = PCANBasic.Reset(m_sock);
                if (status != TPCANStatus.PCAN_ERROR_OK)
                {
                    throw new Exception(GetFormatedError(status));
                }

                uint numeric_buffer = PCANBasic.PCAN_PARAMETER_ON;
                status = PCANBasic.SetValue(m_sock, TPCANParameter.PCAN_RECEIVE_EVENT, ref numeric_buffer, sizeof(UInt32));

                if (status != TPCANStatus.PCAN_ERROR_OK)
                {
                    throw new Exception(GetFormatedError(status));
                }

                status = PCANBasic.GetStatus(m_sock);
                if (status != TPCANStatus.PCAN_ERROR_OK)
                {
                    throw new Exception(GetFormatedError(status));
                }
            }

            m_queue_rx = new BlockingCollection <TPCANMsg>();
            m_queue_tx = new BlockingCollection <TPCANMsg>();

            m_thread_stop            = false;
            m_thread_rx              = new Thread(new ThreadStart(ReadRawFrame));
            m_thread_rx.IsBackground = true;
            m_thread_rx.Start();

            m_thread_tx = new Thread(new ThreadStart(WriteRawFrame));
            m_thread_tx.IsBackground = true;
            m_thread_tx.Start();
        }
Example #11
0
        //SET BAUD RATE WHEN USER CHANGE THE SELECTION
        private void cbBaudRate_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            switch (cbBaudRate.SelectedIndex)
            {
            case 0:
                m_Baudrate = TPCANBaudrate.PCAN_BAUD_1M;
                break;

            case 1:
                m_Baudrate = TPCANBaudrate.PCAN_BAUD_800K;
                break;

            case 2:
                m_Baudrate = TPCANBaudrate.PCAN_BAUD_500K;
                break;

            case 3:
                m_Baudrate = TPCANBaudrate.PCAN_BAUD_250K;
                break;

            case 4:
                m_Baudrate = TPCANBaudrate.PCAN_BAUD_125K;
                break;

            case 5:
                m_Baudrate = TPCANBaudrate.PCAN_BAUD_100K;
                break;

            case 6:
                m_Baudrate = TPCANBaudrate.PCAN_BAUD_95K;
                break;

            case 7:
                m_Baudrate = TPCANBaudrate.PCAN_BAUD_83K;
                break;

            case 8:
                m_Baudrate = TPCANBaudrate.PCAN_BAUD_50K;
                break;

            case 9:
                m_Baudrate = TPCANBaudrate.PCAN_BAUD_47K;
                break;

            case 10:
                m_Baudrate = TPCANBaudrate.PCAN_BAUD_33K;
                break;

            case 11:
                m_Baudrate = TPCANBaudrate.PCAN_BAUD_20K;
                break;

            case 12:
                m_Baudrate = TPCANBaudrate.PCAN_BAUD_10K;
                break;

            case 13:
                m_Baudrate = TPCANBaudrate.PCAN_BAUD_5K;
                break;
            }
        }
Example #12
0
 static public void SetBaudRate(TPCANBaudrate eBaudrate)
 {
     m_Baudrate = eBaudrate;
 }
Example #13
0
 /// <summary>
 ///     Initializes a PCAN Channel.
 /// </summary>
 /// <param name="Channel">The handle of a PCAN Channel.</param>
 /// <param name="Btr0Btr1">The speed for the communication (BTR0BTR1 code).</param>
 /// <returns>A TPCANStatus error code.</returns>
 public static TPCANStatus Initialize(ushort Channel, TPCANBaudrate Btr0Btr1)
 {
     return(Initialize(Channel, Btr0Btr1, 0, 0, 0));
 }
Example #14
0
 public static extern TPCANStatus Initialize(
     [MarshalAs(UnmanagedType.U2)] ushort Channel,
     [MarshalAs(UnmanagedType.U2)] TPCANBaudrate Btr0Btr1,
     [MarshalAs(UnmanagedType.U1)] TPCANType HwType,
     uint IOPort,
     ushort Interrupt);
Example #15
0
 /// <summary>
 /// reconnect with giving speed
 /// </summary>
 /// <param name="x"></param>
 public void reconnect(int x = (int)TPCANBaudrate.PCAN_BAUD_125K)
 {
     disconnect();
     m_Baudrate = (TPCANBaudrate)x;
     reConnect();
 }