190 lines
5.7 KiB
C
Executable File
190 lines
5.7 KiB
C
Executable File
|
|
#ifndef _PP_PROJ_H_
|
|
#define _PP_PROJ_H_
|
|
//***********************************************************************************
|
|
// C header for accessing PMAC Global, CSGlobal, Ptr vars
|
|
// _PPScriptMode_ for Pmac Script like access global & csglobal
|
|
// global Mypvar - access with "Mypvar"
|
|
// global Myparray(32) - access with "Myparray(i)"
|
|
// csglobal Myqvar - access with "Myqvar(i)" where "i" is Coord #
|
|
// csglobal Myqarray(16) - access with "Myqvar(i,j)" where "j" is index
|
|
// _EnumMode_ for Pmac enum data type checking on Set & Get global functions
|
|
// Example
|
|
// global Mypvar
|
|
// csglobal Myqvar
|
|
// "SetGlobalVar(Myqvar, data)" will give a compile error because its a csglobal var.
|
|
// "SetCSGlobalVar(Mypvar, data)" will give a compile error because its a global var.
|
|
//************************************************************************************
|
|
|
|
#ifdef _PPScriptMode_
|
|
enum globalP {_globalP_=-1};
|
|
enum globalParray {_globalParray_=-1};
|
|
enum csglobalQ {_csglobalQ_=-1};
|
|
enum csglobalQarray {_csglobalQarray_=-1};
|
|
|
|
enum ptrM {_ptrM_=-1};
|
|
enum ptrMarray {_ptrMarray_=-1};
|
|
void SetEnumGlobalVar(enum globalP var, double data)
|
|
{
|
|
pshm->P[var] = data;
|
|
}
|
|
|
|
double GetEnumGlobalVar(enum globalP var)
|
|
{
|
|
return pshm->P[var];
|
|
}
|
|
|
|
void SetEnumGlobalArrayVar(enum globalParray var, unsigned index, double data)
|
|
{
|
|
pshm->P[(var + index)%MAX_P] = data;
|
|
}
|
|
|
|
double GetEnumGlobalArrayVar(enum globalParray var, unsigned index)
|
|
{
|
|
return pshm->P[(var + index)%MAX_P];
|
|
}
|
|
|
|
void SetEnumCSGlobalVar(enum csglobalQ var, unsigned cs, double data)
|
|
{
|
|
pshm->Coord[cs % MAX_COORDS].Q[var] = data;
|
|
}
|
|
|
|
double GetEnumCSGlobalVar(enum csglobalQ var, unsigned cs)
|
|
{
|
|
return pshm->Coord[cs % MAX_COORDS].Q[var];
|
|
}
|
|
|
|
void SetEnumCSGlobalArrayVar(enum csglobalQarray var, unsigned index, unsigned cs, double data)
|
|
{
|
|
pshm->Coord[cs % MAX_COORDS].Q[(var + index)%MAX_Q] = data;
|
|
}
|
|
|
|
double GetEnumCSGlobalArrayVar(enum csglobalQarray var, unsigned index, unsigned cs)
|
|
{
|
|
return pshm->Coord[cs % MAX_COORDS].Q[(var + index)%MAX_Q];
|
|
}
|
|
|
|
void SetEnumPtrVar(enum ptrM var, double data)
|
|
{
|
|
im_write(pshm->Mdef + var, data, &pshm->Ldata);
|
|
}
|
|
|
|
double GetEnumPtrVar(enum ptrM var)
|
|
{
|
|
return im_read(pshm->Mdef + var, &pshm->Ldata);
|
|
}
|
|
|
|
void SetEnumPtrArrayVar(enum ptrMarray var, unsigned index, double data)
|
|
{
|
|
im_write(pshm->Mdef + ((var + index)%MAX_M), data, &pshm->Ldata);
|
|
}
|
|
|
|
double GetEnumPtrArrayVar(enum ptrMarray var, unsigned index)
|
|
{
|
|
return im_read(pshm->Mdef + ((var + index)%MAX_M), &pshm->Ldata);
|
|
}
|
|
|
|
#define SetGlobalVar(i, x) SetEnumGlobalVar(i, x)
|
|
#define SetGlobalArrayVar(i, j, x) SetEnumGlobalArrayVar(i, j, x)
|
|
#define GetGlobalVar(i) GetEnumGlobalVar(i)
|
|
#define GetGlobalArrayVar(i, j) GetEnumGlobalArrayVar(i, j)
|
|
|
|
#define SetCSGlobalVar(i, j, x) SetEnumCSGlobalVar(i, j, x)
|
|
#define SetCSGlobalArrayVar(i, j, k, x) SetEnumCSGlobalArrayVar(i, j, k, x)
|
|
#define GetCSGlobalVar(i, j) GetEnumCSGlobalVar(i, j)
|
|
#define GetCSGlobalArrayVar(i, j, k) GetEnumCSGlobalArrayVar(i, j, k)
|
|
|
|
#define SetPtrVar(i, x) SetEnumPtrVar(i, x)
|
|
#define SetPtrArrayVar(i, j, x) SetEnumPtrArrayVar(i, j, x)
|
|
#define GetPtrVar(i) GetEnumPtrVar(i)
|
|
#define GetPtrArrayVar(i, j) GetEnumPtrArrayVar(i, j)
|
|
// end of #ifdef _PPScriptMode_
|
|
#else
|
|
#ifdef _EnumMode_
|
|
enum globalP {_globalP_=-1};
|
|
enum globalParray {_globalParray_=-1};
|
|
enum csglobalQ {_csglobalQ_=-1};
|
|
enum csglobalQarray {_csglobalQarray_=-1};
|
|
enum ptrM {_ptrM_=-1};
|
|
enum ptrMarray {_ptrMarray_=-1};
|
|
void SetEnumGlobalVar(enum globalP var, double data)
|
|
{
|
|
pshm->P[var] = data;
|
|
}
|
|
|
|
double GetEnumGlobalVar(enum globalP var)
|
|
{
|
|
return pshm->P[var];
|
|
}
|
|
|
|
void SetEnumGlobalArrayVar(enum globalParray var, unsigned index, double data)
|
|
{
|
|
pshm->P[(var + index)%MAX_P] = data;
|
|
}
|
|
|
|
double GetEnumGlobalArrayVar(enum globalParray var, unsigned index)
|
|
{
|
|
return pshm->P[(var + index)%MAX_P];
|
|
}
|
|
|
|
void SetEnumCSGlobalVar(enum csglobalQ var, unsigned cs, double data)
|
|
{
|
|
pshm->Coord[cs % MAX_COORDS].Q[var] = data;
|
|
}
|
|
|
|
double GetEnumCSGlobalVar(enum csglobalQ var, unsigned cs)
|
|
{
|
|
return pshm->Coord[cs % MAX_COORDS].Q[var];
|
|
}
|
|
|
|
void SetEnumCSGlobalArrayVar(enum csglobalQarray var, unsigned index, unsigned cs, double data)
|
|
{
|
|
pshm->Coord[cs % MAX_COORDS].Q[(var + index)%MAX_Q] = data;
|
|
}
|
|
|
|
double GetEnumCSGlobalArrayVar(enum csglobalQarray var, unsigned index, unsigned cs)
|
|
{
|
|
return pshm->Coord[cs % MAX_COORDS].Q[(var + index)%MAX_Q];
|
|
}
|
|
|
|
void SetEnumPtrVar(enum ptrM var, double data)
|
|
{
|
|
im_write(pshm->Mdef + var, data, &pshm->Ldata);
|
|
}
|
|
|
|
double GetEnumPtrVar(enum ptrM var)
|
|
{
|
|
return im_read(pshm->Mdef + var, &pshm->Ldata);
|
|
}
|
|
|
|
void SetEnumPtrArrayVar(enum ptrMarray var, unsigned index, double data)
|
|
{
|
|
im_write(pshm->Mdef + ((var + index)%MAX_M), data, &pshm->Ldata);
|
|
}
|
|
|
|
double GetEnumPtrArrayVar(enum ptrMarray var, unsigned index)
|
|
{
|
|
return im_read(pshm->Mdef + ((var + index)%MAX_M), &pshm->Ldata);
|
|
}
|
|
|
|
#define SetGlobalVar(i, x) SetEnumGlobalVar(i, x)
|
|
#define SetGlobalArrayVar(i, j, x) SetEnumGlobalArrayVar(i, j, x)
|
|
#define GetGlobalVar(i) GetEnumGlobalVar(i)
|
|
#define GetGlobalArrayVar(i, j) GetEnumGlobalArrayVar(i, j)
|
|
|
|
#define SetCSGlobalVar(i, j, x) SetEnumCSGlobalVar(i, j, x)
|
|
#define SetCSGlobalArrayVar(i, j, k, x) SetEnumCSGlobalArrayVar(i, j, k, x)
|
|
#define GetCSGlobalVar(i, j) GetEnumCSGlobalVar(i, j)
|
|
#define GetCSGlobalArrayVar(i, j, k) GetEnumCSGlobalArrayVar(i, j, k)
|
|
|
|
#define SetPtrVar(i, x) SetEnumPtrVar(i, x)
|
|
#define SetPtrArrayVar(i, j, x) SetEnumPtrArrayVar(i, j, x)
|
|
#define GetPtrVar(i) GetEnumPtrVar(i)
|
|
#define GetPtrArrayVar(i, j) GetEnumPtrArrayVar(i, j)
|
|
// end of #ifdef _EnumMode_
|
|
#else
|
|
// ***** Standard default mode *****
|
|
#endif
|
|
#endif
|
|
#endif //_PP_PROJ_H_
|