示例#1
0
        /// <summary>
        /// Initializes the CAN.
        /// </summary>
        /// <returns>If successful, return [true].</returns>
        private static bool CANInit()
        {
            int Result;

            Result = C4UFX.EnableTS(0, 0);
            Result = C4UFX.ResetInterface(0, 0);          // clear out any misc messages

            if (Result != C4UFX.Resp_Ack)
            {
                CANCheckStatus(true);
                return(false);
            }
            Result = C4UFX.ClearCANMess(0, 0);            // clear out any misc messages

            if (Result != C4UFX.Resp_Ack)
            {
                CANCheckStatus(true);
                return(false);
            }
            Result = C4UFX.SetCANBaud(0, 0, CANBAUD);

            if (Result != C4UFX.Resp_Ack)
            {
                CANCheckStatus(true);
                return(false);
            }
            Result = C4UFX.ClearCANMess(0, 0);

            if (Result != C4UFX.Resp_Ack)
            {
                CANCheckStatus(true);
                return(false);
            }
            Result = C4UFX.RecCANMess(0, 0, (long)Filters.MESS0, 0x0C + 1); //'//MO0 + enable rollover bit

            if (Result != C4UFX.Resp_Ack)
            {
                CANCheckStatus(true);
                return(false);
            }

            Result = C4UFX.RecCANMess(0, 0, (long)Filters.MESS1, 0x1C);
            if (Result != C4UFX.Resp_Ack)
            {
                CANCheckStatus(true);
                return(false);
            }

            for (int i = 0; i < 6; i++)
            {
                Result = C4UFX.SetFilters(0, 0, (byte)i, (long)Filters.FILTER0, true);
                if (Result != C4UFX.Resp_Ack)
                {
                    CANCheckStatus(true);
                    return(false);
                }
            }

            return(true);
        }