//----------------------------------------------------------------------- // // Copyright © 2012 Nils Hammar. All rights reserved. // //----------------------------------------------------------------------- /* * Software to access vehicle information via the OBD-II connector. * * Copyright © 2012 Nils Hammar * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * Alternative licensing is possible, see the licensing document. * * The above text may not be removed or modified. */ namespace SharedObjects.Api { /// /// Envelope class for one message. /// This is much like the PASSTHRU_MSG struct /// but is 'pure' C# to avoid unsafe pointers. /// public interface IPassThruMsg { /// /// Gets or sets the array of data. /// [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Justification = "Intentional for use with DLL API")] byte[] Data { get; set; } /// /// Gets or sets the size of the data. /// int DataSize { get; set; } /// /// Gets or sets the index of extra data. /// int ExtraDataIndex { get; set; } /// /// Gets a value indicating whether this is a message sent from the application, /// which is applicable when replaying raw data through the simulator. /// bool isSentData { get; } /// /// Gets or sets the Protocol ID. /// int ProtocolID { get; set; } /// /// Gets or sets the RX Status Flags. /// int RxStatus { get; set; } /// /// Gets or sets the Message Timestamp. /// int Timestamp { get; set; } /// /// Gets or sets the TX Flags. /// int TxFlags { get; set; } /// /// Set the values of the struct given as parameter to the values of this object. /// Notice that the data area in the struct MUST be allocated to at least /// the size of the data area. /// /// Pointer to struct to load. unsafe void toStruct(PASSTHRU_MSG* pMsg); } }