Skip to content

Commit f7ea4a7

Browse files
committed
Fix CANopenNodeExporter_V4 - arrays - dataElementSizeof
- For domain should be 0 - robincornelius#251 - For strings and similar should be sizeof(char[n]) - CANopenNode/CANopenNode#293
1 parent 6c02323 commit f7ea4a7

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

libEDSsharp/CanOpenNodeExporter_V4.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,10 @@ private int Prepare_arr(ODentry od, string indexH, string varName, string group)
256256
dataPtr = $"&{odname}_{group}.x{varName}[0]{dataElem.cTypeArray0}";
257257
}
258258

259+
// sizeof data element inside the array
260+
string dataElementSizeof = dataElem.cType == "not specified" && dataElem.length == 0
261+
? "0" : $"sizeof({dataElem.cType}{dataElem.cTypeArray})";
262+
259263
// objects
260264
ODObjs_t.Add($"OD_obj_array_t o_{varName};");
261265
ODObjs.Add($" .o_{varName} = {{");
@@ -264,7 +268,7 @@ private int Prepare_arr(ODentry od, string indexH, string varName, string group)
264268
ODObjs.Add($" .attribute0 = {attrElem0},");
265269
ODObjs.Add($" .attribute = {attrElem},");
266270
ODObjs.Add($" .dataElementLength = {dataElem.length},");
267-
ODObjs.Add($" .dataElementSizeof = sizeof({dataElem.cType})");
271+
ODObjs.Add($" .dataElementSizeof = {dataElementSizeof}");
268272
ODObjs.Add($" }},");
269273

270274
return subEntriesCount;

0 commit comments

Comments
 (0)