1、 Swing.c
pxExecutingBuffer = pxExecutingBufferGet(0, (TickType_t)portMAX_DELAY);
// 执行缓存
typedef struct xEXECUTING_BUFFER
{
xListItem xBufferListItem; // 列表项目
uint8_t *pucExecutingBuffer; // 指向ucExecutingBuffers[x][0]
}xExecutingBufferDescriptor_t;
typedef struct _entity_block
{
stitch *pxStitch;
uint32_t nStitch;
uint32_t uEntityCnt;
uint32_t uStitchStart;
uint32_t falg; // BIT0:1主轴运动 0 主轴不运动
}entity_block;
pxBlock = (entity_block *)pxExecutingBuffer->pucExecutingBuffer;
相当于原先的pxExecutingBuffer是xExecutingBufferDescriptor_t结构体类型,将该结构体类型中的pucExecutingBuffer项强制转化为entity_block 类型,再赋给pxBlock 。这里的pxExecutingBuffer和pucExecutingBuffer都是指针。
uint8_t *pucExecutingBuffer;语句则是定义的八位的地址
2、Action_Dispatch.c
/*Action_Dispatch*/
// 命令结构体
typedef struct _Command_Block
{
uint8_t CmdData[64]; // 由于字节对齐原因,字符数组必须定义在前面
Command_List_t eCommandType;
}Command_Block_t;
// 剪线参数
typedef struct _Trim_CmdData
{
uint8_t flag; // 0 正常剪线 1 不剪线
}Trim_CmdData_t;
Trim_CmdData_t *pNewTrim = (Trim_CmdData_t *)pNewCommand->CmdData;
定义了Trim_CmdData_t类型的pNewTrim指针,指针指向的内容是(Trim_CmdData_t )pNewCommand->CmdData
pNewCommand是指针,CmdData是实体,(Trim_CmdData_t *)将CmdData强制转化为Trim_CmdData_t 类型