本文整理汇总了C++中EEPROMClass::length方法的典型用法代码示例。如果您正苦于以下问题:C++ EEPROMClass::length方法的具体用法?C++ EEPROMClass::length怎么用?C++ EEPROMClass::length使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类EEPROMClass
的用法示例。
在下文中一共展示了EEPROMClass::length方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: sizeof
// write the plan to the EEPROM
unsigned char R5EEPROM::writeData(Instinct::CmdPlanner *pPlan, const unsigned int uiDataLen, unsigned char *pData)
{
Instinct::PlanNode sPlanNode;
Instinct::instinctID bPlanElements[INSTINCT_NODE_TYPES];
Instinct::instinctID bElemCount = pPlan->planSize(); // total number of elements;
unsigned int nPlanMemoryUsage = pPlan->planUsage(NULL); // total space used in RAM
// calculate how much EEPROM we will use and return false if not enough
unsigned int nEEPROMUsage = nPlanMemoryUsage + (bElemCount * sizeof(sPlanNode.bNodeType)) + uiDataLen;
if (EEPROM.length() < (nEEPROMUsage + sizeof(EEPROMStorageType)))
return false;
Instinct::instinctID bMaxElementID = pPlan->maxElementID();
EEPROMStorageType *pEEPROM = 0;
// first we store the number of Node structures we are going to write out
pPlan->planSize(bPlanElements); // get the array of element counts from the plan
setBytesAtOffset(bPlanElements, sizeof(bPlanElements), (int)&pEEPROM->bPlanElements);
setIntAtOffset(pPlan->getPlanID(), (int)&pEEPROM->nPlanID);
int nAddr = (int)&pEEPROM->bPlan;
// read each element from the plan into a buffer and then write it to EEPROM
for ( Instinct::instinctID i = 0; i < bMaxElementID; i++)
{
if (pPlan->getNode(&sPlanNode, i+1))
{
int nSize = pPlan->sizeFromNodeType(sPlanNode.bNodeType);
if (!nSize) // some bad thing has happened
return false;
nSize += sizeof(sPlanNode.bNodeType);
nAddr += setBytesAtOffset((unsigned char *)&sPlanNode, nSize, nAddr);
}
}
if (pData && uiDataLen)
{
// store the binary data at the end
setBytesAtOffset(pData, uiDataLen, nAddr);
setIntAtOffset(uiDataLen, (int)&pEEPROM->uiDataLen);
}
return true;