@@ -150,12 +150,14 @@ public static CanOpenDevice MapToProtobuffer(EDSsharp source)
150
150
. ForMember ( dest => dest . Type , opt => opt . MapFrom ( src => src . objecttype ) )
151
151
. ForMember ( dest => dest . CountLabel , opt => opt . MapFrom ( src => src . Label ) ) ;
152
152
cfg . CreateMap < ObjectType , OdObject . Types . ObjectType > ( ) . ConvertUsing < ODTypeResolver > ( ) ;
153
+ cfg . CreateMap < EDSsharp . AccessType , OdSubObject . Types . AccessSDO > ( ) . ConvertUsing < ODSDOAccessTypeResolver > ( ) ;
154
+ cfg . CreateMap < EDSsharp . AccessType , OdSubObject . Types . AccessPDO > ( ) . ConvertUsing < ODPDOAccessTypeResolver > ( ) ;
153
155
cfg . CreateMap < ODentry , OdSubObject > ( )
154
156
. ForMember ( dest => dest . Name , opt => opt . MapFrom ( src => src . parameter_name ) )
155
157
. ForMember ( dest => dest . Alias , opt => opt . Ignore ( ) )
156
158
. ForMember ( dest => dest . Type , opt => opt . MapFrom ( src => src . datatype ) )
157
- . ForMember ( dest => dest . Sdo , opt => opt . MapFrom ( src => src . AccessSDO ( ) ) )
158
- . ForMember ( dest => dest . Pdo , opt => opt . MapFrom ( src => src . AccessPDO ( ) ) )
159
+ . ForMember ( dest => dest . Sdo , opt => opt . MapFrom ( src => src . accesstype ) )
160
+ . ForMember ( dest => dest . Pdo , opt => opt . MapFrom ( src => src . accesstype ) )
159
161
. ForMember ( dest => dest . Srdo , opt => opt . Ignore ( ) )
160
162
. ForMember ( dest => dest . StringLengthMin , opt => opt . MapFrom ( src => src . Lengthofstring ) ) ;
161
163
} ) ;
@@ -166,7 +168,6 @@ public static CanOpenDevice MapToProtobuffer(EDSsharp source)
166
168
}
167
169
}
168
170
169
-
170
171
/// <summary>
171
172
/// Helper class to convert EDS date and time into datetime used in the protobuffer timestand (datetime)
172
173
/// </summary>
@@ -233,16 +234,16 @@ public Timestamp Resolve(FileInfo source, CanOpen_FileInfo destination, Timestam
233
234
}
234
235
235
236
/// <summary>
236
- /// Helper class to convert Enum types
237
+ /// Helper class to convert object type enum
237
238
/// </summary>
238
239
/// Checkout AutoMapper.Extensions.EnumMapping when .net framework is gone
239
240
public class ODTypeResolver : ITypeConverter < ObjectType , OdObject . Types . ObjectType >
240
241
{
241
242
/// <summary>
242
- /// Resolver to convert eds date and time into protobuffer timestamp (datetime)
243
+ /// Resolver to convert object types
243
244
/// </summary>
244
- /// <param name="source">source EDS fileinfo object</param>
245
- /// <param name="destination">protobuffer fileinfo object</param>
245
+ /// <param name="source">EDS object type object</param>
246
+ /// <param name="destination">protobuffer object type </param>
246
247
/// <param name="member">result object</param>
247
248
/// <param name="context">resolve context</param>
248
249
/// <returns>result </returns>
@@ -264,7 +265,68 @@ public OdObject.Types.ObjectType Convert(ObjectType source, OdObject.Types.Objec
264
265
default :
265
266
return OdObject . Types . ObjectType . Unspecified ;
266
267
}
267
-
268
268
}
269
269
}
270
- }
270
+ /// <summary>
271
+ /// Helper class to convert Enum types
272
+ /// </summary>
273
+ /// Checkout AutoMapper.Extensions.EnumMapping when .net framework is gone
274
+ public class ODSDOAccessTypeResolver : ITypeConverter < EDSsharp . AccessType , OdSubObject . Types . AccessSDO >
275
+ {
276
+ /// <summary>
277
+ /// Resolver to convert eds access into SDO access type
278
+ /// </summary>
279
+ /// <param name="source">EDS accesstype</param>
280
+ /// <param name="destination">protobuffer sdo access type</param>
281
+ /// <param name="member">result object</param>
282
+ /// <param name="context">resolve context</param>
283
+ /// <returns>result </returns>
284
+ public OdSubObject . Types . AccessSDO Convert ( EDSsharp . AccessType source , OdSubObject . Types . AccessSDO destination , ResolutionContext context )
285
+ {
286
+ switch ( source )
287
+ {
288
+ case EDSsharp . AccessType . rw :
289
+ case EDSsharp . AccessType . rwr :
290
+ case EDSsharp . AccessType . rww :
291
+ return OdSubObject . Types . AccessSDO . Rw ;
292
+ case EDSsharp . AccessType . ro :
293
+ case EDSsharp . AccessType . @const :
294
+ return OdSubObject . Types . AccessSDO . Ro ;
295
+ case EDSsharp . AccessType . wo :
296
+ return OdSubObject . Types . AccessSDO . Wo ;
297
+ case EDSsharp . AccessType . UNKNOWN :
298
+ default :
299
+ return OdSubObject . Types . AccessSDO . No ;
300
+ }
301
+ }
302
+ }
303
+ public class ODPDOAccessTypeResolver : ITypeConverter < EDSsharp . AccessType , OdSubObject . Types . AccessPDO >
304
+ {
305
+ /// <summary>
306
+ /// Resolver to convert eds access into PDO access type
307
+ /// </summary>
308
+ /// <param name="source">EDS accesstype</param>
309
+ /// <param name="destination">protobuffer pdo access type</param>
310
+ /// <param name="member">result object</param>
311
+ /// <param name="context">resolve context</param>
312
+ /// <returns>result </returns>
313
+ public OdSubObject . Types . AccessPDO Convert ( EDSsharp . AccessType source , OdSubObject . Types . AccessPDO destination , ResolutionContext context )
314
+ {
315
+ switch ( source )
316
+ {
317
+ case EDSsharp . AccessType . rw :
318
+ return OdSubObject . Types . AccessPDO . Tr ;
319
+ case EDSsharp . AccessType . rwr :
320
+ return OdSubObject . Types . AccessPDO . T ;
321
+ case EDSsharp . AccessType . rww :
322
+ case EDSsharp . AccessType . @const :
323
+ return OdSubObject . Types . AccessPDO . R ;
324
+ case EDSsharp . AccessType . ro :
325
+ case EDSsharp . AccessType . wo :
326
+ case EDSsharp . AccessType . UNKNOWN :
327
+ default :
328
+ return OdSubObject . Types . AccessPDO . No ;
329
+ }
330
+ }
331
+ }
332
+ }
0 commit comments