EasyManuals Logo

CG Emotron VFX Series User Manual

CG Emotron VFX Series
268 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Page #78 background imageLoading...
Page #78 background image
74 Serial communication CG Drives & Automation, 01-5326-01r5
Programming example:
typedef struct
{
int m:11; // mantissa, -1024..1023
int e: 4; // exponent -8..7
unsigned int f: 1; // format, 1->special emoint format
} eint16;
//---------------------------------------------------------------------------
unsigned short int float_to_eint16(float value)
{
eint16 etmp;
int dec=0;
while (floor(value) != value && dec<16)
{
dec++; value*=10;
}
if (value>=0 && value<=32767 && dec==0)
*(short int *)&etmp=(short int)value;
else if (value>=-1000 && value<0 && dec==0)
{
etmp.e=0;
etmp.f=1;
etmp.m=(short int)value;
}
else
{
etmp.m=0;
etmp.f=1;
etmp.e=-dec;
if (value>=0)
etmp.m=1; // Set sign
else
etmp.m=-1; // Set sign
value=fabs(value);
while (value>1000)
{
etmp.e++; // increase exponent
value=value/10;
}
value+=0.5; // round
etmp.m=etmp.m*value; // make signed
}
Rreturn (*(unsigned short int *)&etmp);
}
//---------------------------------------------------------------------------
float eint16_to_float(unsigned short int value)
{
float f;
eint16 evalue;
evalue=*(eint16 *)&value;
if (evalue.f)
{
if (evalue.e>=0)
f=(int)evalue.m*pow10(evalue.e);
else
f=(int)evalue.m/pow10(abs(evalue.e));
}
else
f=value;
return f;
}
//---------------------------------------------------------------------------

Table of Contents

Questions and Answers:

Question and Answer IconNeed help?

Do you have a question about the CG Emotron VFX Series and is the answer not in the manual?

CG Emotron VFX Series Specifications

General IconGeneral
BrandCG
ModelEmotron VFX Series
CategoryController
LanguageEnglish

Related product manuals