public MessageFilter(UserFilterType FilterType, byte[] Match)
        {
            TxFlags = TxFlag.NONE;

            switch (FilterType)
            {
            case UserFilterType.PASSALL:
                PassAll();
                break;

            case UserFilterType.PASS:
                Pass(Match);
                break;

            case UserFilterType.BLOCK:
                Block(Match);
                break;

            case UserFilterType.STANDARDISO15765:
                StandardISO15765(Match);
                break;

            case UserFilterType.NONE:
                break;
            }
        }
Beispiel #2
0
 public PassThruMsg(ProtocolID myProtocolId, TxFlag myTxFlag, byte[] myByteArray)
     : this()
 {
     ProtocolID = myProtocolId;
     TxFlags = myTxFlag;
     SetBytes(myByteArray);
 }
Beispiel #3
0
 public void FromDataBytes(IEnumerable <byte> Data, TxFlag TxFlags = TxFlag.NONE)
 {
     Length = 1;
     Marshal.WriteInt32(MessagePtr, protocolID);
     Marshal.WriteInt32(MessagePtr, 8, (int)TxFlags);
     marshalIEnumerableToHeapData(MessagePtr, Data);
 }
Beispiel #4
0
 public void FromDataBytesArray(IEnumerable <byte>[] Data, TxFlag TxFlags = TxFlag.NONE)
 {
     Length = Data.Length;
     for (int i = 0; i < Data.Length; i++)
     {
         IntPtr pMessage = IntPtr.Add(MessagePtr, i * CONST.J2534MESSAGESIZE);
         Marshal.WriteInt32(pMessage, protocolID);
         Marshal.WriteInt32(pMessage, 8, (int)TxFlags);
         marshalIEnumerableToHeapData(pMessage, Data[i]);
     }
 }
Beispiel #5
0
 internal Channel(Device Device, Protocol ProtocolID, Baud Baud, ConnectFlag ConnectFlags, int ChannelID, object Sync)
 {
     sync               = Sync;
     channelId          = ChannelID;
     hJ2534MessageArray = new HeapMessageArray(ProtocolID, CONST.HEAPMESSAGEBUFFERSIZE);
     API               = Device.API;
     this.Device       = Device;
     this.ProtocolID   = ProtocolID;
     this.ConnectFlags = ConnectFlags;
     DefaultTxTimeout  = 100;
     DefaultRxTimeout  = 300;
     DefaultTxFlag     = TxFlag.NONE;
 }
        public void StandardISO15765(byte[] SourceAddress)
        {
            //Should throw exception??
            if (SourceAddress.Length != 4)
            {
                return;
            }
            Reset(4);
            Mask[0] = 0xFF;
            Mask[1] = 0xFF;
            Mask[2] = 0xFF;
            Mask[3] = 0xFF;

            Pattern     = SourceAddress.ToArray();
            Pattern[3] += 0x08;

            FlowControl = SourceAddress;

            TxFlags    = TxFlag.ISO15765_FRAME_PAD;
            FilterType = Filter.FLOW_CONTROL_FILTER;
        }
Beispiel #7
0
        /// <summary>
        /// Convert a Message to an J2534 formatted transmit, and send to the interface
        /// </summary>
        private Response <J2534Err> SendNetworkMessage(Message message, TxFlag Flags)
        {
            //this.Logger.AddDebugMessage("Trace: Send Network Packet");

            PassThruMsg TempMsg = new PassThruMsg();

            TempMsg.ProtocolID = Protocol;
            TempMsg.TxFlags    = Flags;
            TempMsg.SetBytes(message.GetBytes());

            int NumMsgs = 1;

            IntPtr MsgPtr = TempMsg.ToIntPtr();

            OBDError = J2534Port.Functions.PassThruWriteMsgs((int)ChannelID, MsgPtr, ref NumMsgs, WriteTimeout);
            Marshal.FreeHGlobal(MsgPtr);
            if (OBDError != J2534Err.STATUS_NOERROR)
            {
                //Debug messages here...check why failed..
                return(Response.Create(ResponseStatus.Error, OBDError));
            }
            return(Response.Create(ResponseStatus.Success, OBDError));
        }
 public MessageFilter()
 {
     TxFlags = TxFlag.NONE;
 }
Beispiel #9
0
 public PeriodicMessage(int Interval, byte[] Data, TxFlag TxFlags) : base(Data, TxFlags)
 {
     this.Interval = Interval;
 }
Beispiel #10
0
        /// <summary>
        /// Set filter
        /// </summary>
        private Response <J2534Err> SetFilter(UInt32 Mask, UInt32 Pattern, UInt32 FlowControl, TxFlag txflag, FilterType Filtertype)
        {
            PassThruMsg maskMsg;
            PassThruMsg patternMsg;

            IntPtr MaskPtr;
            IntPtr PatternPtr;
            IntPtr FlowPtr;

            maskMsg    = new PassThruMsg(Protocol, txflag, new Byte[] { (byte)(0xFF & (Mask >> 16)), (byte)(0xFF & (Mask >> 8)), (byte)(0xFF & Mask) });
            patternMsg = new PassThruMsg(Protocol, txflag, new Byte[] { (byte)(0xFF & (Pattern >> 16)), (byte)(0xFF & (Pattern >> 8)), (byte)(0xFF & Pattern) });
            MaskPtr    = maskMsg.ToIntPtr();
            PatternPtr = patternMsg.ToIntPtr();
            FlowPtr    = IntPtr.Zero;

            int tempfilter = 0;

            OBDError = J2534Port.Functions.PassThruStartMsgFilter((int)ChannelID, Filtertype, MaskPtr, PatternPtr, FlowPtr, ref tempfilter);

            Marshal.FreeHGlobal(MaskPtr);
            Marshal.FreeHGlobal(PatternPtr);
            Marshal.FreeHGlobal(FlowPtr);
            if (OBDError != J2534Err.STATUS_NOERROR)
            {
                return(Response.Create(ResponseStatus.Error, OBDError));
            }
            Filters.Add((ulong)tempfilter);
            return(Response.Create(ResponseStatus.Success, OBDError));
        }
Beispiel #11
0
 public Message(byte[] Data, TxFlag TxFlags = TxFlag.NONE)
 {
     FlagsAsInt = (int)TxFlags;
     this.Data  = Data;
 }
Beispiel #12
0
 public HeapMessage(Protocol ProtocolID, TxFlag TxFlags, IEnumerable <byte> Data)
 {
     this.ProtocolID = ProtocolID;
     this.TxFlags    = TxFlags;
     this.Data       = Data;
 }
Beispiel #13
0
 public PassThruMsg(ProtocolID myProtocolId, TxFlag myTxFlag, byte[] myByteArray)
 {
     ProtocolID = myProtocolId;
     TxFlags = myTxFlag;
     Data = myByteArray;
 }
Beispiel #14
0
 public PassThruMsg(ProtocolID myProtocolId, TxFlag myTxFlag, byte[] myByteArray) : this()
 {
     ProtocolID = myProtocolId;
     TxFlags    = myTxFlag;
     SetBytes(myByteArray);
 }
Beispiel #15
0
 public PassThruMsg(ProtocolID myProtocolId, TxFlag myTxFlag, byte[] myByteArray)
 {
     ProtocolID = myProtocolId;
     TxFlags    = myTxFlag;
     Data       = myByteArray;
 }