usr_servo code generation
This commit is contained in:
189
python/usr_code/pp_proj.h
Executable file
189
python/usr_code/pp_proj.h
Executable file
@@ -0,0 +1,189 @@
|
||||
|
||||
#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_
|
||||
Reference in New Issue
Block a user