204 lines
4.3 KiB
C#
204 lines
4.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace LFP_Manager.DataStructure
|
|
{
|
|
/*************************************
|
|
Serial Info Struct
|
|
**************************************/
|
|
[Serializable]
|
|
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
|
public struct SerialConfigInfo
|
|
{
|
|
public UInt32 Baudrate;
|
|
public byte data;
|
|
public byte parity;
|
|
public byte stop;
|
|
public byte flow;
|
|
}
|
|
|
|
enum DataBits
|
|
{
|
|
Data8 = 8,
|
|
};
|
|
|
|
enum Parity
|
|
{
|
|
NoParity = 0,
|
|
EvenParity = 2,
|
|
OddParity = 3,
|
|
SpaceParity = 4,
|
|
MarkParity = 5
|
|
};
|
|
|
|
enum StopBits
|
|
{
|
|
OneStop = 1,
|
|
TwoStop = 2
|
|
};
|
|
|
|
enum FlowControl
|
|
{
|
|
NoFlowControl,
|
|
HardwareControl
|
|
};
|
|
|
|
enum SerialBaudRate
|
|
{
|
|
SerialBaud300 = 300,
|
|
SerialBaud600 = 600,
|
|
SerialBaud1200 = 1200,
|
|
SerialBaud2400 = 2400,
|
|
SerialBaud3600 = 3600,
|
|
SerialBaud4800 = 4800,
|
|
SerialBaud7200 = 7200,
|
|
SerialBaud9600 = 9600,
|
|
SerialBaud19200 = 19200,
|
|
SerialBaud38400 = 38400,
|
|
SerialBaud57600 = 57600,
|
|
SerialBaud115200 = 115200,
|
|
SerialBaud230400 = 230400,
|
|
SerialBaud460800 = 460800,
|
|
SerialBaud921600 = 921600,
|
|
SerialUnknownBaud = -1
|
|
};
|
|
|
|
enum CANBaudRate
|
|
{
|
|
CANBaud20 = 20,
|
|
CANBaud50 = 50,
|
|
CANBaud100 = 100,
|
|
CANBaud125 = 125,
|
|
CANBaud200 = 200,
|
|
CANBaud250 = 250,
|
|
CANBaud300 = 300,
|
|
CANBaud500 = 500,
|
|
CANBaud800 = 800,
|
|
CANBaud1000 = 1000,
|
|
CANUnknownBaud = -1
|
|
};
|
|
|
|
//public class csSbCanLibConstData
|
|
//{
|
|
/*************************************
|
|
define
|
|
**************************************/
|
|
//public bool ISDAR(byte x)
|
|
// {
|
|
// return (x & 0x01) != 0x00;
|
|
// }
|
|
|
|
//public bool ISABOR(byte x)
|
|
// {
|
|
// return (x & 0x02) != 0x00;
|
|
//}
|
|
|
|
//public void SETDAR(ref byte x)
|
|
// {
|
|
// x |= 0x01;
|
|
// }
|
|
//public void SETABOR(ref byte x)
|
|
//{
|
|
// x |= 0x02;
|
|
//}
|
|
|
|
//public const byte CR = 0x0D;
|
|
|
|
////Error Code
|
|
//public const byte Invalid_Arg = 0x01;
|
|
//public const byte No_Error = 0x00;
|
|
|
|
enum CAN_StructFormat
|
|
{
|
|
TX_STD_DATA = 0x14,
|
|
TX_STD_REMOTE = 0x15,
|
|
TX_EXT_DATA = 0x16,
|
|
TX_EXT_REMOTE = 0x17,
|
|
RX_STD_DATA = 0x04,
|
|
RX_STD_REMOTE = 0x05,
|
|
RX_EXT_DATA = 0x06,
|
|
RX_EXT_REMOTE = 0x07
|
|
};
|
|
|
|
/*************************************
|
|
CAN Serial Struct
|
|
**************************************/
|
|
[Serializable]
|
|
[StructLayout(LayoutKind.Sequential, Pack=1)]
|
|
public struct CAN_Struct
|
|
{
|
|
public byte Format;
|
|
public UInt32 ID;
|
|
public byte DLC;
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
|
|
public byte[] DATA;
|
|
}
|
|
|
|
/*************************************
|
|
CAN Info Struct
|
|
**************************************/
|
|
[Serializable]
|
|
[StructLayout(LayoutKind.Sequential, Pack=1)]
|
|
public struct CANConfigInfo
|
|
{
|
|
public UInt32 Baudrate;
|
|
public UInt32 ID;
|
|
public UInt32 Mask;
|
|
public byte Spec;
|
|
public bool DAR;
|
|
public bool ABOR;
|
|
}
|
|
enum CANSpec
|
|
{
|
|
CAN_A = 3, //Max Standard CAN ID Length for ascii (0~7FF)
|
|
CAN_B = 8 //Max Extended CAN ID Length for ascii (0~1FFFFFFF)
|
|
};
|
|
|
|
/*************************************
|
|
Option Info Struct
|
|
**************************************/
|
|
[Serializable]
|
|
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
|
public struct OptionInfo
|
|
{
|
|
public byte mode;
|
|
public byte delay;
|
|
public byte STD_D_Command_Header;
|
|
public byte STD_R_Command_Header;
|
|
public byte EXT_D_Command_Header;
|
|
public byte EXT_R_Command_Header;
|
|
}
|
|
public static class CAN_SerialCommandHeader
|
|
{
|
|
public static readonly char STD_DATA = 't';
|
|
public static readonly char STD_REMOTE = 'T';
|
|
public static readonly char EXT_DATA = 'e';
|
|
public static readonly char EXT_REMOTE = 'E';
|
|
}; //CS-CAN Default Serial Command Header
|
|
|
|
/*************************************
|
|
CAN Error Info Struct
|
|
**************************************/
|
|
[Serializable]
|
|
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
|
public struct CANErorrInfo
|
|
{
|
|
public byte TEC; // Transmit Error Count
|
|
public byte REC; // Receive Error Count
|
|
public byte LEC; // Last Error Count
|
|
public UInt32 StuffCount; // Stuff Error Count
|
|
public UInt32 FormCount; // Form Error Count
|
|
public UInt32 AckECount; // Ack Error Count
|
|
public UInt32 BitCount; // Bit Error Count
|
|
public UInt32 CRCCount; // CRC Error Count
|
|
|
|
public byte errorInfo; // Erroe Status
|
|
}
|
|
//}
|
|
}
|