public string toCPkgFunctionDefinitionString() { string tempText = toCPkgFunctionPrototypeString(); tempText = tempText.Replace("XPLAT_DLL_API", ""); string startText = tempText.Substring(0, tempText.IndexOf("packStructPtr);\n") + ("packStructPtr)").Length); string endText = tempText.Substring(tempText.IndexOf("packStructPtr);\n") + ("packStructPtr);\n").Length); endText = endText.Substring(0, endText.Length - 2); // Package Function Definition startText += "\n{\n"; startText += "\t// Initialize pointer to start of packet area in output buffer\n\txplatAPI_Data->outPackBuffPtr = xplatAPI_Data->outputPacket;\n\t// Package bytes and increment pointer\n"; int PacketOffset = 0; XPlatAutoGEN packXPlatAutoGEN = new XPlatAutoGEN(4); XPlatAutoGEN unpackXPlatAutoGEN = new XPlatAutoGEN(4); foreach (imsSerialParamData SPD in PacketSPDs) { if (LinkedCommSystem.SystemIsBigEndian) { packXPlatAutoGEN.AddLineTokens(SPD.toCPackFuncDefString(ref PacketOffset, "BIG")); } else { packXPlatAutoGEN.AddLineTokens(SPD.toCPackFuncDefString(ref PacketOffset, "little")); } } packXPlatAutoGEN.AlignColumnsInputTokens(); startText += packXPlatAutoGEN.ReturnOutputLines() + "}\n"; // Unpack Function Definition endText += "\n{\n"; endText += "\t// Initialize pointer to start of packet area in input buffer\n\txplatAPI_Data->inPackBuffPtr = xplatAPI_Data->inputPacket;\n\t// UnPack bytes and increment pointer\n"; endText += "\tswitch(xplatAPI_Data->inputBuffer[HDRPCKOFFSETINDEX])\n\t{\n"; PacketOffset = 0; foreach (imsSerialParamData SPD in PacketSPDs) { if (LinkedCommSystem.SystemIsBigEndian) { unpackXPlatAutoGEN.AddLineTokens(SPD.toCUnPackFuncDefString(ref PacketOffset, "BIG")); } else { unpackXPlatAutoGEN.AddLineTokens(SPD.toCUnPackFuncDefString(ref PacketOffset, "little")); } } unpackXPlatAutoGEN.AlignColumnsInputTokens(); endText += unpackXPlatAutoGEN.ReturnOutputLines() + "\n\t\tdefault:break;\n\t}\n}\n"; return(startText + endText); }