Package peak.can.basic
Class PCANBasic
java.lang.Object
peak.can.basic.PCANBasic
This is the main class for using the PCANBasic API with your java
applications. Steps to use this api:
A minimalistic program that writes every can message that it receives (ping-pong)
looks like this:
1. Create a new PCANBasic object:
example:
can = new PCANBasic(); 2. Call the initializeAPI method
example:
can.initializeAPI();
3. Call the Initialize method passing the TPCANHandle parameter which you want use, TPCANBaudrate and other parameters for Non-PNP devices
example:
can.initialize(TPCANHandle.PCAN_USBBUS1, TPCANBaudrate.PCAN_BAUD_1M);
4. Call the read or write method passing the TPCANHandle parameter which is initialized and you want use
example: TPCANMsg msg = new TPCANMsg();; can.Read(TPCANHandle.PCAN_USBBUS1, msg, null); can.Write(TPCANHandle.PCAN_USBBUS1, msg); (do not forget to check if msg is null after calling the Read method)
5. At the end call the Uninitialize method example: can.Uninitialize(TPCANHandle.PCAN_USBBUS1);
A minimalistic program that writes every can message that it receives (ping-pong)
looks like this:
import peak.can.basic.*; public class MinimalisticProgram { public static void main(String[] args) { PCANBasic can = null; TPCANMsg msg = null; TPCANStatus status = null; can = new PCANBasic(); if(!can.initializeAPI()) { System.out.println("Unable to initialize the API"); System.exit(0); } status = can.Initialize(TPCANHandle.PCAN_PCIBUS1, TPCANBaudrate.PCAN_BAUD_1M, TPCANType.PCAN_TYPE_NONE, 0, (short) 0); msg = new TPCANMsg(); while(true) { while(can.Read(TPCANHandle.PCAN_PCIBUS1, msg, null) == TPCANStatus.PCAN_ERROR_OK) { status = can.Write(TPCANHandle.PCAN_PCIBUS1, msg); if(status != TPCANStatus.PCAN_ERROR_OK) { System.out.println("Unable to write the CAN message"); System.exit(0); } } } } }
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionFilterMessages
(TPCANHandle Channel, int FromID, int ToID, TPCANMode Mode) Configures the reception filter.GetErrorText
(TPCANStatus Error, short Language, StringBuffer Buffer) Returns a descriptive text of a given TPCANStatus error code, in any desired language The current languages available for translation are: Neutral (0x00), German (0x07), English (0x09), Spanish (0x0A), Italian (0x10) and French (0x0C)GetStatus
(TPCANHandle Channel) Gets the current status of a PCAN ChannelGetValue
(TPCANHandle Channel, TPCANParameter Parameter, Object Buffer, int BufferLength) Retrieves a PCAN Channel value Parameters can be present or not according with the kind of Hardware (PCAN Channel) being used.Initialize
(TPCANHandle Channel, TPCANBaudrate Btr0Btr1, TPCANType HwType, int IOPort, short Interrupt) Initializes a PCAN Channelboolean
Initializes the PCANBasic APIInitializeFD
(TPCANHandle Channel, TPCANBitrateFD BitrateFD) Initializes a FD capable PCAN ChannelLookUpChannel
(StringBuffer Parameters, MutableTPCANHandle FoundChannel) Finds a PCAN-Basic channel that matches with the given parametersRead
(TPCANHandle Channel, TPCANMsg MessageBuffer, TPCANTimestamp TimestampBuffer) Transmits a CAN messageReadFD
(TPCANHandle Channel, TPCANMsgFD MessageBuffer, TPCANTimestampFD TimestampBuffer) Reads a CAN message from the receive queue of a FD capable PCAN ChannelReset
(TPCANHandle Channel) Resets the receive and transmit queues of the PCAN Channel A reset of the CAN controller is not performed.ResetRcvEvent
(TPCANHandle Channel) Resets the handle of the Receive-Event for the Channel.SetRcvEvent
(TPCANHandle Channel) Sets the handle of the Receive-Event for the Channel. static method peak.can.basic.RcvEventDispatcher.dispatchRcvEvent is used to notify each Receive-EventSetValue
(TPCANHandle Channel, TPCANParameter Parameter, Object Buffer, int BufferLength) Configures or sets a PCAN Channel value Parameters can be present or not according with the kind of Hardware (PCAN Channel) being used.Uninitialize
(TPCANHandle Channel) Uninitializes one or all PCAN Channels initialized by CAN_Initialize Giving the TPCANHandle value "PCAN_NONEBUS", uninitialize all initialized channelsWrite
(TPCANHandle Channel, TPCANMsg MessageBuffer) Transmits a CAN messageWriteFD
(TPCANHandle Channel, TPCANMsgFD MessageBuffer) Transmits a CAN message over a FD capable PCAN Channel
-
Constructor Details
-
PCANBasic
public PCANBasic()
-
-
Method Details
-
Initialize
public TPCANStatus Initialize(TPCANHandle Channel, TPCANBaudrate Btr0Btr1, TPCANType HwType, int IOPort, short Interrupt) Initializes a PCAN Channel- Parameters:
Channel
- The handle of a PCAN ChannelBtr0Btr1
- The speed for the communication (BTR0BTR1 code)HwType
- NON PLUG'n'PLAY: The type of hardware and operation modeIOPort
- NON PLUG'n'PLAY: The I/O address for the parallel portInterrupt
- NON PLUG'n'PLAY: Interrupt number of the parallel port- Returns:
- a TPCANStatus error code
-
InitializeFD
Initializes a FD capable PCAN ChannelSee PCAN_BR_* values Bitrate string must follow the following construction rules: - parameters and values must be separated by '=' - Couples of Parameter/value must be separated by ',' - Following Parameter must be filled out: f_clock, data_brp, data_sjw, data_tseg1, data_tseg2, nom_brp, nom_sjw, nom_tseg1, nom_tseg2. - Following Parameters are optional (not used yet): data_ssp_offset, nom_samp
Example: f_clock_mhz=80, nom_brp=1, nom_tset1=63, nom_tseg2=16, nom_sjw=7, data_brp=4, data_tset1=12, data_tseg2=7, data_sjw=1
- Parameters:
Channel
- The handle of a FD capable PCAN ChannelBitrateFD
- The speed for the communication (FD Bitrate string)- Returns:
- A TPCANStatus error code
-
Uninitialize
Uninitializes one or all PCAN Channels initialized by CAN_Initialize Giving the TPCANHandle value "PCAN_NONEBUS", uninitialize all initialized channels- Parameters:
Channel
- The handle of a PCAN Channel- Returns:
- A TPCANStatus error code
-
Reset
Resets the receive and transmit queues of the PCAN Channel A reset of the CAN controller is not performed.- Parameters:
Channel
- The handle of a PCAN Channel- Returns:
- A TPCANStatus error code
-
GetStatus
Gets the current status of a PCAN Channel- Parameters:
Channel
- The handle of a PCAN Channel- Returns:
- A TPCANStatus error code
-
Read
public TPCANStatus Read(TPCANHandle Channel, TPCANMsg MessageBuffer, TPCANTimestamp TimestampBuffer) Transmits a CAN message- Parameters:
Channel
- The handle of a PCAN ChannelMessageBuffer
- A TPCANMsg buffer with the message to be readTimestampBuffer
- A TPCANTimestamp structure buffer to get the reception time of the message. If this value is not desired, this parameter should be passed as NULL- Returns:
- A TPCANStatus error code
-
ReadFD
public TPCANStatus ReadFD(TPCANHandle Channel, TPCANMsgFD MessageBuffer, TPCANTimestampFD TimestampBuffer) Reads a CAN message from the receive queue of a FD capable PCAN Channel- Parameters:
Channel
- The handle of a FD capable PCAN ChannelMessageBuffer
- A TPCANMsgFD structure buffer to store the CAN messageTimestampBuffer
- A TPCANTimestampFD buffer to get the reception time of the message- Returns:
- A TPCANStatus error code
-
Write
Transmits a CAN message- Parameters:
Channel
- The handle of a PCAN ChannelMessageBuffer
- A TPCANMsg buffer with the message to be sent- Returns:
- A TPCANStatus error code
-
WriteFD
Transmits a CAN message over a FD capable PCAN Channel- Parameters:
Channel
- The handle of a FD capable PCAN ChannelMessageBuffer
- A TPCANMsgFD buffer with the message to be sent- Returns:
- A TPCANStatus error code
-
FilterMessages
Configures the reception filter. The message filter will be expanded with every call to this function. If it is desired to reset the filter, please use the CAN_SetParameter function- Parameters:
Channel
- The handle of a PCAN ChannelFromID
- The lowest CAN ID to be receivedToID
- The highest CAN ID to be receivedMode
- Message type, Standard (11-bit identifier) or Extended (29-bit identifier)- Returns:
- A TPCANStatus error code
-
GetValue
public TPCANStatus GetValue(TPCANHandle Channel, TPCANParameter Parameter, Object Buffer, int BufferLength) Retrieves a PCAN Channel value Parameters can be present or not according with the kind of Hardware (PCAN Channel) being used. If a parameter is not available, a PCAN_ERROR_ILLPARAMTYPE error will be returned- Parameters:
Channel
- The handle of a PCAN ChannelParameter
- The TPCANParameter parameter to getBuffer
- Buffer for the parameter valueBufferLength
- Size in bytes of the buffer- Returns:
- A TPCANStatus error code
-
SetValue
public TPCANStatus SetValue(TPCANHandle Channel, TPCANParameter Parameter, Object Buffer, int BufferLength) Configures or sets a PCAN Channel value Parameters can be present or not according with the kind of Hardware (PCAN Channel) being used. If a parameter is not available, a PCAN_ERROR_ILLPARAMTYPE error will be returned- Parameters:
Channel
- The handle of a PCAN ChannelParameter
- The TPCANParameter parameter to getBuffer
- Buffer for the parameter valueBufferLength
- Size in bytes of the buffer- Returns:
- A TPCANStatus error code
-
GetErrorText
Returns a descriptive text of a given TPCANStatus error code, in any desired language The current languages available for translation are: Neutral (0x00), German (0x07), English (0x09), Spanish (0x0A), Italian (0x10) and French (0x0C)- Parameters:
Error
- A TPCANStatus error codeLanguage
- Indicates a 'Primary language ID'Buffer
- Buffer for a null terminated char array- Returns:
- A TPCANStatus error code
-
LookUpChannel
Finds a PCAN-Basic channel that matches with the given parameters- Parameters:
Parameters
- A comma separated string contained pairs of parameter-name/value to be matched within a PCAN-Basic channelFoundChannel
- Buffer for returning the PCAN-Basic channel- Returns:
- A TPCANStatus error code
-
SetRcvEvent
Sets the handle of the Receive-Event for the Channel. static method peak.can.basic.RcvEventDispatcher.dispatchRcvEvent is used to notify each Receive-Event- Parameters:
Channel
- The handle of a PCAN Channel- Returns:
- A TPCANStatus error code
-
ResetRcvEvent
Resets the handle of the Receive-Event for the Channel.- Parameters:
Channel
- The handle of a PCAN Channel- Returns:
- A TPCANStatus error code
-
initializeAPI
public boolean initializeAPI()Initializes the PCANBasic API- Returns:
- a boolean to indicate if API is successfully loaded
-