SendConfiguration Method - intrepidcs API
C/C++ declare -
VB.NET declare - C# declare - Parameters - Return
Values - Remarks - C/C++ example
- VB.NET example - C# example
This method sends configuration information
to the hardware.
C/C++ Declare
int _stdcall icsneoSendConfiguration(int hObject, unsigned char *pData, int lNumBytes);
C# Declare
[DllImport("icsneo40.dll")]
public
static
extern Int32
icsneoSetFireSettings(Int32 hObject, ref
SFireSettings pSettings, Int32 iNumBytes, Int32 bSaveToEEPROM);
Visual Basic .NET Declare
Public
Declare
Function
icsneoSendConfiguration Lib
"icsneo40.dll" (ByVal
hObject As Int32,
ByRef pData
As
Byte,
ByVal lNumBytes
As Int32)
As
Int32
Parameters
hObject
[in] Specifies the driver object created by OpenNeoDevice.
pData
[in] This is an array configuration bytes. The format of
this array is defined in the Configuration Array
help topic. This data should be filled in with a call to GetConfiguration
before
calling SendConfiguration. The size of this array must always be 1024
bytes.
lNumBytes
[in] This must always be set to 1024.
Returns 1 if successful, 0 if an error
occurred. GetLastAPIError
must be called to obtain the specific error. The errors that can be generated by
this function are:
NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE = 75
This method will only update the configuration defined in the Configuration Array topic. It will also apply checking to the data so that a neoVI is not programmed to an illegal state. For example, setting the CAN controller to an illegal operating mode.
Examples
unsigned char
bConfigBytes[1024];
int
iNumConfigBytes = 1024;
if(m_bPortOpen)
{
lResult = icsneoGetConfiguration(hObject, bConfigBytes, &iNumConfigBytes);
if (lResult == 0)
MessageBox(hWnd,TEXT("Problem Reading Configuration"),TEXT("neoVI
Example"),0);
else
{
iOldCNF1=bConfigBytes[NEO_CFG_MPIC_HS_CAN_CNF1];
iOldCNF2=bConfigBytes[NEO_CFG_MPIC_HS_CAN_CNF2];
iOldCNF3=bConfigBytes[NEO_CFG_MPIC_HS_CAN_CNF3];
// 250 K for Value CAN
500k for neoVI (neoVI and valuecan use different CAN controller rates)
bConfigBytes[NEO_CFG_MPIC_HS_CAN_CNF1] = 0x03;
bConfigBytes[NEO_CFG_MPIC_HS_CAN_CNF2] = 0xB8;
bConfigBytes[NEO_CFG_MPIC_HS_CAN_CNF3] =
0x05;
lResult =
icsneoSendConfiguration(hObject, bConfigBytes, iNumConfigBytes);
if (lResult == 0)
MessageBox(hWnd,TEXT("Problem
Updating Configuration"),TEXT("neoVI Example"),0);
else
{
wsprintf(szOut,TEXT("Old Values: HSCAN CNF1 = %x HSCAN CNF2 = %x HSCAN CNF3
= %x \n\nNew Values HSCAN CNF1 = %x HSCAN CNF2 = %x HSCAN CNF3 = %x "),
iOldCNF1,
iOldCNF2,
iOldCNF3,
bConfigBytes[NEO_CFG_MPIC_HS_CAN_CNF1],
bConfigBytes[NEO_CFG_MPIC_HS_CAN_CNF2],
bConfigBytes[NEO_CFG_MPIC_HS_CAN_CNF3]);
MessageBox(hWnd,szOut,TEXT("neoVI Example"),0);
}
}
}
else
MessageBox(hWnd,TEXT("Port Not Open"),TEXT("neoVI
Example"),0);
'// make sure the read was successful
If Not
CBool(lResult) Then
MsgBox("Problem sending configuration")
lResult = icsneoClosePort(m_hObject, iNumberOfErrors)
Exit
Sub
Else
MsgBox("Configuration Successfull")
End If
byte[]
bConfigBytes= new byte[1024];
//Storage for Data bytes from device
int iNumBytes = 0; //Storage
for Number of Bytes
int lResult = 0; //Storage
for Result of Called Function
int Counter;
int lNumberOfErrors
= 0; //Storage for Number of Errors
Received
//Clear ListBox
lstConfigInformation.Items.Clear();
//---------------------READ CONFIGURATION -----------------------------------------------
//Call Get Configuration
lResult = icsNeoDll.icsneoGetConfiguration(m_hObject, ref
bConfigBytes[0],ref
iNumBytes);
//Fill Listbox with Data From Function
Call
for(Counter=0;
Counter<1024;Counter++)
{
lstConfigInformation.Items.Add("Byte Number-" +
Counter + " Byte Data-" + bConfigBytes[Counter]);
}
//Set HS CAN Baud Rate Information
bConfigBytes[Convert.ToInt32(icsConfigSetup.NEO_CFG_MPIC_HS_CAN_CNF1)] =
Convert.ToByte(ConvertFromHex(txtCNF1.Text));
bConfigBytes[Convert.ToInt32(icsConfigSetup.NEO_CFG_MPIC_HS_CAN_CNF2)] =
Convert.ToByte(ConvertFromHex(txtCNF2.Text));
bConfigBytes[Convert.ToInt32(icsConfigSetup.NEO_CFG_MPIC_HS_CAN_CNF3)] =
Convert.ToByte(ConvertFromHex(txtCNF3.Text));
//---------------------SEND CONFIGURATION -----------------------------------------------
//Call Sned configuration
lResult = icsNeoDll.icsneoSendConfiguration(m_hObject,
ref
bConfigBytes[0], iNumBytes);
// make sure the read was successful
if(lResult==0)
{
MessageBox.Show("Problem sending configuration");
lResult = icsNeoDll.icsneoClosePort(m_hObject, ref
lNumberOfErrors);
}
else
{
MessageBox.Show("Configuration Successfull");
}
IntrepidCS API Documentation - (C) Copyright 2000-2022 Intrepid Control Systems, Inc. (www.intrepidcs.com) |
Last Updated : Friday, June 07, 2019