@@ -2,6 +2,7 @@ package tests
22
33import (
44 "fmt"
5+
56 "github.com/wendy512/go-iecp5/asdu"
67 "github.com/wendy512/iec104/client"
78)
@@ -19,7 +20,7 @@ func (c *clientCall) OnInterrogation(packet *asdu.ASDU) error {
1920// OnCounterInterrogation 总计数器回复
2021func (c * clientCall ) OnCounterInterrogation (packet * asdu.ASDU ) error {
2122 addr , value := packet .GetCounterInterrogationCmd ()
22- fmt .Printf ("counter interrogation reply, addr: %d, request: 0x%02X, rreeze : 0x%02X\n " ,
23+ fmt .Printf ("counter interrogation reply, addr: %d, request: 0x%02X, freeze : 0x%02X\n " ,
2324 addr , value .Request , value .Freeze )
2425 return nil
2526}
@@ -95,81 +96,81 @@ func (c *clientCall) OnASDU(packet *asdu.ASDU) error {
9596func (c * clientCall ) onSinglePoint (packet * asdu.ASDU ) {
9697 // [M_SP_NA_1], [M_SP_TA_1] or [M_SP_TB_1] 获取单点信息信息体集合
9798 for _ , p := range packet .GetSinglePoint () {
98- fmt .Printf ("single point, ioa: %d, value: %v\n " , p .Ioa , p .Value )
99+ fmt .Printf ("single point, ioa: %d, value: %v, qds: %d, time: %v \n " , p .Ioa , p .Value , p . Qds , p . Time . Format ( "2006-01-02 15:04:05.000" ) )
99100 }
100101}
101102
102103func (c * clientCall ) onDoublePoint (packet * asdu.ASDU ) {
103104 // [M_DP_NA_1], [M_DP_TA_1] or [M_DP_TB_1] 获得双点信息体集合
104105 for _ , p := range packet .GetDoublePoint () {
105- fmt .Printf ("double point, ioa: %d, value: %v\n " , p .Ioa , p .Value )
106+ fmt .Printf ("double point, ioa: %d, value: %v, qds: %d, time: %v \n " , p .Ioa , p .Value , p . Qds , p . Time . Format ( "2006-01-02 15:04:05.000" ) )
106107 }
107108}
108109
109110func (c * clientCall ) onMeasuredValueScaled (packet * asdu.ASDU ) {
110111 // [M_ME_NB_1], [M_ME_TB_1] or [M_ME_TE_1] 获得测量值,标度化值信息体集合
111112 for _ , p := range packet .GetMeasuredValueScaled () {
112- fmt .Printf ("measured value scaled, ioa: %d, value: %v\n " , p .Ioa , p .Value )
113+ fmt .Printf ("measured value scaled, ioa: %d, value: %v, qds: %d, time: %v \n " , p .Ioa , p .Value , p . Qds , p . Time . Format ( "2006-01-02 15:04:05.000" ) )
113114 }
114115}
115116
116117func (c * clientCall ) onMeasuredValueNormal (packet * asdu.ASDU ) {
117118 // [M_ME_NA_1], [M_ME_TA_1],[ M_ME_TD_1] or [M_ME_ND_1] 获得测量值,规一化值信息体集合
118119 for _ , p := range packet .GetMeasuredValueNormal () {
119- fmt .Printf ("measured value normal, ioa: %d, value: %v\n " , p .Ioa , p .Value )
120+ fmt .Printf ("measured value normal, ioa: %d, value: %v, qds: %d, time: %v \n " , p .Ioa , p .Value , p . Qds , p . Time . Format ( "2006-01-02 15:04:05.000" ) )
120121 }
121122}
122123
123124func (c * clientCall ) onStepPosition (packet * asdu.ASDU ) {
124125 // [M_ST_NA_1], [M_ST_TA_1] or [M_ST_TB_1] 获得步位置信息体集合
125126 for _ , p := range packet .GetStepPosition () {
126127 // state:false: 设备未在瞬变状态 true: 设备处于瞬变状态
127- fmt .Printf ("step position, ioa: %d, state: %t, value: %d\n " , p .Ioa , p .Value .HasTransient , p .Value .Val )
128+ fmt .Printf ("step position, ioa: %d, state: %t, value: %d, qds: %d, time: %v \n " , p .Ioa , p .Value .HasTransient , p .Value .Val , p . Qds , p . Time . Format ( "2006-01-02 15:04:05.000" ) )
128129 }
129130}
130131
131132func (c * clientCall ) onBitString32 (packet * asdu.ASDU ) {
132- // [M_ME_NC_1 ], [M_ME_TC_1 ] or [M_ME_TF_1].获得测量值,短浮点数信息体集合
133- for _ , p := range packet .GetMeasuredValueFloat () {
134- fmt .Printf ("bigtstring32 , ioa: %d, value: %v\n " , p .Ioa , p .Value )
133+ // [M_BO_NA_1 ], [M_BO_TA_1 ] or [M_BO_TB_1].获得比特位串信息体集合
134+ for _ , p := range packet .GetBitString32 () {
135+ fmt .Printf ("bit string 32 , ioa: %d, value: %v, qds: %d, time: %v \n " , p .Ioa , p .Value , p . Qds , p . Time . Format ( "2006-01-02 15:04:05.000" ) )
135136 }
136137}
137138
138139func (c * clientCall ) onMeasuredValueFloat (packet * asdu.ASDU ) {
139140 // [M_ME_NC_1], [M_ME_TC_1] or [M_ME_TF_1].获得测量值,短浮点数信息体集合
140141 for _ , p := range packet .GetMeasuredValueFloat () {
141- fmt .Printf ("measured value float, ioa: %d, value: %v\n " , p .Ioa , p .Value )
142+ fmt .Printf ("measured value float, ioa: %d, value: %v, qds: %d, time: %v \n " , p .Ioa , p .Value , p . Qds , p . Time . Format ( "2006-01-02 15:04:05.000" ) )
142143 }
143144}
144145
145146func (c * clientCall ) onIntegratedTotals (packet * asdu.ASDU ) {
146147 // [M_IT_NA_1], [M_IT_TA_1] or [M_IT_TB_1]. 获得累计量信息体集合
147148 for _ , p := range packet .GetIntegratedTotals () {
148- fmt .Printf ("integrated totals, ioa: %d, count: %d, SQ: 0x%02X, CY: %t, CA: %t, IV: %t\n " ,
149- p .Ioa , p .Value .CounterReading , p .Value .SeqNumber , p .Value .HasCarry , p .Value .IsAdjusted , p .Value .IsInvalid )
149+ fmt .Printf ("integrated totals, ioa: %d, count: %d, SQ: 0x%02X, CY: %t, CA: %t, IV: %t, time: %v \n " ,
150+ p .Ioa , p .Value .CounterReading , p .Value .SeqNumber , p .Value .HasCarry , p .Value .IsAdjusted , p .Value .IsInvalid , p . Time . Format ( "2006-01-02 15:04:05.000" ) )
150151 }
151152}
152153
153154func (c * clientCall ) onEventOfProtectionEquipment (packet * asdu.ASDU ) {
154155 // [M_EP_TA_1] [M_EP_TD_1] 获取继电器保护设备事件信息体
155156 for _ , p := range packet .GetEventOfProtectionEquipment () {
156- fmt .Printf ("event of protection equipment, ioa: %d, event: %d, qdp: %d, mesc : %d, time: %d \n " ,
157- p .Ioa , p .Event , p .Qdp , p .Msec , p .Time .UnixMilli ( ))
157+ fmt .Printf ("event of protection equipment, ioa: %d, event: %d, qdp: %d, msec : %d, time: %v \n " ,
158+ p .Ioa , p .Event , p .Qdp , p .Msec , p .Time .Format ( "2006-01-02 15:04:05.000" ))
158159 }
159160}
160161
161162func (c * clientCall ) onPackedStartEventsOfProtectionEquipment (packet * asdu.ASDU ) {
162163 // [M_EP_TB_1] [M_EP_TE_1] 获取继电器保护设备事件信息体
163164 p := packet .GetPackedStartEventsOfProtectionEquipment ()
164- fmt .Printf ("packed start events of protection equipment, ioa: %d, event: %d, qdp: %d, mesc : %d, time: %d \n " ,
165- p .Ioa , p .Event , p .Qdp , p .Msec , p .Time .UnixMilli ( ))
165+ fmt .Printf ("packed start events of protection equipment, ioa: %d, event: %d, qdp: %d, msec : %d, time: %v \n " ,
166+ p .Ioa , p .Event , p .Qdp , p .Msec , p .Time .Format ( "2006-01-02 15:04:05.000" ))
166167}
167168
168169func (c * clientCall ) onPackedOutputCircuitInfo (packet * asdu.ASDU ) {
169170 // [M_EP_TC_1] [M_EP_TF_1] 获取继电器保护设备成组输出电路信息信息体
170171 p := packet .GetPackedOutputCircuitInfo ()
171- fmt .Printf ("packed Output circuit, ioa: %d, qci: %d, qdp: %d, mesc : %d, time: %d \n " ,
172- p .Ioa , p .Oci , p .Qdp , p .Msec , p .Time .UnixMilli ( ))
172+ fmt .Printf ("packed output circuit, ioa: %d, qci: %d, qdp: %d, msec : %d, time: %v \n " ,
173+ p .Ioa , p .Oci , p .Qdp , p .Msec , p .Time .Format ( "2006-01-02 15:04:05.000" ))
173174}
174175
175176func (c * clientCall ) onPackedSinglePointWithSCD (packet * asdu.ASDU ) {
0 commit comments