Package peak.can.basic
Class PCANBasic
- java.lang.Object
-
- peak.can.basic.PCANBasic
-
public class PCANBasic extends java.lang.Object
This is the main class for using the PCANBasic API with your java applications. Steps to use this api:
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 Constructor Description PCANBasic()
-
Method Summary
Modifier and Type Method Description TPCANStatus
FilterMessages(TPCANHandle Channel, int FromID, int ToID, TPCANMode Mode)
Configures the reception filter.TPCANStatus
GetErrorText(TPCANStatus Error, short Language, java.lang.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)TPCANStatus
GetStatus(TPCANHandle Channel)
Gets the current status of a PCAN ChannelTPCANStatus
GetValue(TPCANHandle Channel, TPCANParameter Parameter, java.lang.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.TPCANStatus
Initialize(TPCANHandle Channel, TPCANBaudrate Btr0Btr1, TPCANType HwType, int IOPort, short Interrupt)
Initializes a PCAN Channelboolean
initializeAPI()
Initializes the PCANBasic APITPCANStatus
InitializeFD(TPCANHandle Channel, TPCANBitrateFD BitrateFD)
Initializes a FD capable PCAN ChannelTPCANStatus
LookUpChannel(java.lang.StringBuffer Parameters, MutableTPCANHandle FoundChannel)
Finds a PCAN-Basic channel that matches with the given parametersTPCANStatus
Read(TPCANHandle Channel, TPCANMsg MessageBuffer, TPCANTimestamp TimestampBuffer)
Transmits a CAN messageTPCANStatus
ReadFD(TPCANHandle Channel, TPCANMsgFD MessageBuffer, TPCANTimestampFD TimestampBuffer)
Reads a CAN message from the receive queue of a FD capable PCAN ChannelTPCANStatus
Reset(TPCANHandle Channel)
Resets the receive and transmit queues of the PCAN Channel A reset of the CAN controller is not performed.TPCANStatus
ResetRcvEvent(TPCANHandle Channel)
Resets the handle of the Receive-Event for the Channel.TPCANStatus
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-EventTPCANStatus
SetValue(TPCANHandle Channel, TPCANParameter Parameter, java.lang.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.TPCANStatus
Uninitialize(TPCANHandle Channel)
Uninitializes one or all PCAN Channels initialized by CAN_Initialize Giving the TPCANHandle value "PCAN_NONEBUS", uninitialize all initialized channelsTPCANStatus
Write(TPCANHandle Channel, TPCANMsg MessageBuffer)
Transmits a CAN messageTPCANStatus
WriteFD(TPCANHandle Channel, TPCANMsgFD MessageBuffer)
Transmits a CAN message over a FD capable PCAN Channel
-
-
-
Method Detail
-
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
public TPCANStatus InitializeFD(TPCANHandle Channel, TPCANBitrateFD BitrateFD)
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
public TPCANStatus Uninitialize(TPCANHandle Channel)
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
public TPCANStatus Reset(TPCANHandle Channel)
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
public TPCANStatus GetStatus(TPCANHandle Channel)
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
public TPCANStatus Write(TPCANHandle Channel, TPCANMsg MessageBuffer)
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
public TPCANStatus WriteFD(TPCANHandle Channel, TPCANMsgFD MessageBuffer)
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
public TPCANStatus FilterMessages(TPCANHandle Channel, int FromID, int ToID, TPCANMode Mode)
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, java.lang.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, java.lang.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
public TPCANStatus GetErrorText(TPCANStatus Error, short Language, java.lang.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)- 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
public TPCANStatus LookUpChannel(java.lang.StringBuffer Parameters, MutableTPCANHandle FoundChannel)
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
public TPCANStatus 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-Event- Parameters:
Channel
- The handle of a PCAN Channel- Returns:
- A TPCANStatus error code
-
ResetRcvEvent
public TPCANStatus ResetRcvEvent(TPCANHandle Channel)
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
-
-