370 u16 asdu_num_value;
371 u8 asdu_security_tag;
372 u32 asdu_security_length;
373 u8 asdu_sequence_tag;
374 u32 asdu_sequence_length; 375 }; 376 377 378 /*
379 * SVPDU_ASDU_TAG_92 - asdu标识(9-2), 380 */
381 #define SVPDU_ASDU_TAG_92 0 x30 382 /*
383 * SVPDU_ASDU_XXX_TAG_92 - 默示9-2中SVID、DATSET、SMPCNT、CONFREV、REFRTM、SMPSYNCH、SMPRATE以及
384 * SMPDATA项的标识; 385 */
386 #define SVPDU_ASDU_SVID_TAG_92 0 x80
387 #define SVPDU_ASDU_DATSET_TAG_92 0 x81
388 #define SVPDU_ASDU_SMPCNT_TAG_92 0 x82
389 #define SVPDU_ASDU_CONFREV_TAG_92 0 x83
390 #define SVPDU_ASDU_REFRTM_TAG_92 0 x84
391 #define SVPDU_ASDU_SMPSYNCH_TAG_92 0 x85
392 #define SVPDU_ASDU_SMPRATE_TAG_92 0 x86
393 #define SVPDU_ASDU_SMPDATA_TAG_92 0 x87 394 395 /*
396 * svpdu_asdu_dat92 - IEC61850-9-2中的asdu具体信息;具体可以包含SVID、DATSET、SMPCNT、CONFREV、
397 * REFRTM、SMPSYNCH、SMPRATE以及SMPDATA项标识表记标帜、长度、值的具体信息;
398 * @asdu_tag: asdu标识表记标帜,详见宏定义值;
399 * @asdu_length: asdu总的长度信息;
400 * @svid_tag: svid标识表记标帜,值为0默示不包含该项信息;
401 * @svid_length: svid信息长度;
402 * @svid_value: svid信息值,体系中独一标识,该值为VisibleString类型;
403 * @datset_tag: datset标识表记标帜,值为0默示不包含该项信息;
404 * @datset_length: datset信息长度;
405 * @datset_value: datset信息值,来自MSVC或者USVC的值,为ObjectReference类型;
406 * @smpcnt_tag: smpcnt标识表记标帜,值为0默示不包含该项信息;
407 * @smpcnt_length: smpcnt信息长度;
408 * @smpcnt_value: smpcnt信息值;
409 * @confrev_tag: confrev标识表记标帜,值为0默示不包含该项信息;
410 * @confrev_length: confrev信息长度;
411 * @confrev_value: confrev信息值;
412 * @refrtm_tag: refrtm标识表记标帜,值为0默示不包含该项信息;
413 * @refrtm_length: refrtm信息长度;
414 * @refrtm_value: refrtm信息值;
415 * @smpsynch_tag: smpsynch标识表记标帜,值为0默示不包含该项信息;
416 * @smpsynch_length: smpsynch信息长度;
417 * @smpsynch_value: smpsynch信息值;
418 * @smprate_tag: smprate标识表记标帜,值为0默示不包含该项信息;
419 * @smprate_length: smprate信息长度;
420 * @smprate_value: smprate信息值;
421 * @smpdata_tag: smpdata标识表记标帜,值为0默示不包含该项信息;
422 * @smpdata_length: smpdata信息长度;
423 * @smpdata_portnum: 采样值的端口数;
424 * @smpdata_values: 采样值具体;
425 * @smpdata_qualitys: 采样质量具体,为NULL默示没有质量信息; 426 *
427 * 注:
428 * 遵守和谈上来说,一个asdu包不成同时包含两个雷同的项(即同时有两个svid或者smpdata项),在次若是存
429 * 在这种景象,第二个雷同项将不再解析;
430 * 须要重视的是,在此法度中默认tag值为0时默示不包含该项信息。 431 * 432 */
433 struct svpdu_asdu_dat92 {
434 u8 asdu_tag;
435 u32 asdu_length;
436 u8 svid_tag;
437 u32 svid_length;
438 u8 *svid_value;
439 u8 datset_tag;
440 u32 datset_length;
441 u8 *datset_value;
442 u8 smpcnt_tag;
443 u32 smpcnt_length;
444 u16 smpcnt_value;
445 u8 confrev_tag;
446 u32 confrev_length;
447 u32 confrev_value;
448 u8 refrtm_tag;
449 u32 refrtm_length;
450 u32 refrtm_value;
451 u8 smpsynch_tag;
452 u32 smpsynch_length;
453 u8 smpsynch_value;
454 u8 smprate_tag;
455 u32 smprate_length;
456 u16 smprate_value;
457 u8 smpdata_tag;
458 u32 smpdata_length;
459 u32 smpdata_portnum;
460 s32 *smpdata_values;
461 u32 *smpdata_qualitys;