Hello
I wish to realize one to schedule(program) allowing me to test the performances of the labjack U3.
I wish to send one any datum for the intermediary of a TEdit and I wish to post(show) him(it) in a TLabel.
I do not manage to get back the value in the TEdit and my compiler declare myself one error at the level of my declaration long array[32]; (unable to convert long* in long).
Here is my code :
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#define buffsize 5000
#include "Unit1.h"
#include <iostream>
#include "debug_console.h"
#include <stdio.h>
#include <stdlib.h>
#pragma link "libLabjackUD.lib"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
lngHandle = 0;
}
//---------------------------------------------------------------------------
//This is our simple error handling function that is called after every UD
//function call. This function displays the errorcode and string description
//of the error. It also has a line number input that can be used with the
//macro __LINE__ to display the line number in source code that called the
//error handler. It also has an iteration input is useful when processing
//results in a loop (getfirst/getnext).
void ErrorHandler( LJ_ERROR lngErrorcode, long lngLineNumber, long lngIteration =0 )
{
char err[255];
if( lngErrorcode != LJE_NOERROR )
{
ErrorToString( lngErrorcode, err );
WriteLn( String().sprintf("Error number = %d", lngErrorcode) );
WriteLn( String().sprintf("Error string = %s", err) );
WriteLn( String().sprintf("Source line number = %d", lngLineNumber) );
WriteLn( String().sprintf("Iteration = %d\n", lngIteration) );
// if(lngErrorcode > LJE_MIN_GROUP_ERROR)
// {
// //Quit if this is a group error.
// exit(0);
// }
}
}
void __fastcall TForm1::Button3Click(TObject *Sender)
{
try{
LJ_ERROR lngErrorcode;
long lngTemp = 0;
double dblTemp = 0;
//Open the first found LabJack U3.
lngErrorcode = OpenLabJack( LJ_dtU3, LJ_ctUSB, "1", 1, &lngHandle );
ErrorHandler(lngErrorcode, __LINE__);
// Configure the UART communication:
// TX and RX appear after all timers and counter.
// We wont have any timers/counters but we will have an offset
// of two, putting TX on FIO2 and RX on FIO3.
lngErrorcode = ePut(lngHandle, LJ_ioPUT_CONFIG, LJ_chTIMER_COUNTER_PIN_OFFSET, 2, 0);
ErrorHandler(lngErrorcode, __LINE__);
//Set data rate for 9600 bps communication.
lngErrorcode = ePut(lngHandle, LJ_ioPUT_CONFIG, LJ_chASYNCH_BAUDFACTOR, 65224, 0);
ErrorHandler(lngErrorcode, __LINE__);
//Enable UART.
lngErrorcode = ePut(lngHandle, LJ_ioASYNCH_COMMUNICATION, LJ_chASYNCH_ENABLE, 1, 0);
ErrorHandler(lngErrorcode, __LINE__);
if( lngErrorcode == LJE_NOERROR )
Button2->Enabled = true;
else
return;
lngGetNextIteration = 0; //Used by the error handling function.
while( lngErrorcode < LJE_MIN_GROUP_ERROR )
{
lngErrorcode = GetNextResult( lngHandle, &lngIOType, &lngChannel, &dblValue, &lngTemp, &dblTemp );
if( lngErrorcode != LJE_NO_MORE_DATA_AVAILABLE )
ErrorHandler( lngErrorcode, __LINE__, lngGetNextIteration++ );
}
WriteLn( "'Connect' terminé" );
//5
}
catch(...)
{
WriteLn( "Erreur dans 'Connect'" );
}
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
LJ_ERROR lngErrorcode;
double numBytes = 3;
long array[32];
lngErrorcode = eGet(lngHandle, LJ_ioASYNCH_COMMUNICATION, LJ_chASYNCH_TX, &numBytes, array);
ErrorHandler(lngErrorcode, __LINE__);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
LJ_ERROR lngErrorcode;
double numBytes = 3;
long array[32];
char var[200];
lngErrorcode = eGet(lngHandle, LJ_ioASYNCH_COMMUNICATION, LJ_chASYNCH_RX, &numBytes, array);
ErrorHandler(lngErrorcode, __LINE__);
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TForm1::EnableButton(TObject *Sender, char &Key)
{
Button1->Enabled = true;
}
//---------------------------------------------------------------------------
Thank for all

Asynchronous Serial Communication
Started by
JimmyFR
, Mar 18 2013 03:53 AM
1 reply to this topic
0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users