Files
PR_PRM_GUI/LFP_Manager_PRM/DataStructure/csSbCanLibConstData.cs
2026-02-11 10:10:43 +09:00

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
}
//}
}