scl.go 47 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518
  1. package node_attr
  2. import (
  3. "scd_check_tools/logger"
  4. "errors"
  5. "fmt"
  6. "github.com/astaxie/beego/orm"
  7. )
  8. type BaseNode struct {
  9. Lineno int64 `xml:"lineno,attr" json:"-"`
  10. NodeId int64 `xml:"nodeid,attr" json:"-"`
  11. }
  12. func (c *BaseNode) ToMap(node any) map[string]interface{} {
  13. result := map[string]interface{}{}
  14. switch node.(type) {
  15. case *SCL:
  16. break
  17. case *NIED:
  18. obj := node.(*NIED)
  19. result = map[string]interface{}{
  20. "desc": obj.Desc,
  21. "name": obj.Name,
  22. "manufacturer": obj.Manufacturer,
  23. "config_version": obj.ConfigVersion,
  24. "type": obj.Type,
  25. "lineno": obj.Lineno,
  26. "node_id": obj.NodeId,
  27. }
  28. break
  29. case *NFCDA:
  30. obj := node.(*NFCDA)
  31. result = map[string]interface{}{
  32. "daname": obj.DaName,
  33. "doname": obj.DoName,
  34. "fc": obj.Fc,
  35. "ldinst": obj.LdInst,
  36. "lnclass": obj.LnClass,
  37. "lninst": obj.LnInst,
  38. "prefix": obj.Prefix,
  39. "lineno": obj.Lineno,
  40. "node_id": obj.NodeId,
  41. }
  42. break
  43. case *NExtRef:
  44. obj := node.(*NExtRef)
  45. result = map[string]interface{}{
  46. "daname": obj.DaName,
  47. "doname": obj.DoName,
  48. "ldinst": obj.LdInst,
  49. "lnclass": obj.LnClass,
  50. "lninst": obj.LnInst,
  51. "prefix": obj.Prefix,
  52. "iedname": obj.IedName,
  53. "intaddr": obj.IntAddr,
  54. "lineno": obj.Lineno,
  55. "node_id": obj.NodeId,
  56. }
  57. break
  58. default:
  59. logger.Logger.Error(errors.New("未处理的节点类型!"))
  60. break
  61. }
  62. return result
  63. }
  64. type SCL struct {
  65. BaseNode //`xml:"-"`
  66. Private []*NPrivate `xml:"Private"`
  67. Header *NHeader `xml:"Header"`
  68. Substation *NSubstation `xml:"Substation"`
  69. Communication *NCommunication `xml:"Communication"`
  70. IED []*NIED `xml:"IED"`
  71. DataTypeTemplates *NDataTypeTemplates `xml:"DataTypeTemplates"`
  72. }
  73. type NPrivate struct {
  74. BaseNode //`xml:"-"`
  75. Voltage []*NVoltage `xml:"http://www.iec.ch/61850/2003/SCL Voltage"`
  76. Any []*NAny `xml:",any"`
  77. InnerText string `xml:",chardata"`
  78. Type string `xml:"type,attr"` // 读取type属性
  79. Who string `xml:"who,attr"` // 读取type属性
  80. When string `xml:"when,attr"` // 读取type属性
  81. ScanRate string `xml:"http://www.iec.ch/61850/2003/sznari ScanRate,attr"` // 读取type属性
  82. Desc string `xml:"http://www.Private.org/ecim desc,attr"`
  83. Name string `xml:"http://www.Private.org/ecim name,attr"`
  84. }
  85. type NAny struct {
  86. BaseNode //`xml:"-"`
  87. Any []*NAny `xml:",any"`
  88. }
  89. type NVoltage struct {
  90. BaseNode //`xml:"-"`
  91. Bay []*NBay `xml:"http://www.iec.ch/61850/2003/SCL Bay"`
  92. Any []*NAny `xml:",any"`
  93. Name string `xml:"name,attr"`
  94. Multiplier string `xml:"multiplier,attr"`
  95. Unit string `xml:"unit,attr"`
  96. InnerText string `xml:",chardata"`
  97. }
  98. type NBay struct {
  99. BaseNode //`xml:"-"`
  100. Private *NPrivate `xml:"Private"`
  101. PowerTransformer []*NPowerTransformer `xml:"PowerTransformer"`
  102. ConductingEquipment []*NConductingEquipment `xml:"ConductingEquipment"`
  103. ConnectivityNode []*NConnectivityNode `xmml:"ConnectivityNode"`
  104. IED []*NBayIED `xml:"http://www.iec.ch/61850/2003/SCL IED"`
  105. Name string `xml:"name,attr"`
  106. Any []*NAny `xml:",any"`
  107. }
  108. type NBayIED struct {
  109. BaseNode //`xml:"-"`
  110. Name string `xml:"name,attr"`
  111. Desc string `xml:"desc,attr"`
  112. }
  113. type NPowerTransformer struct {
  114. BaseNode //`xml:"-"`
  115. Name string `xml:"name,attr"`
  116. Desc string `xml:"desc,attr"`
  117. Type string `xml:"type,attr"`
  118. Virtual string `xml:"virtual,attr"`
  119. LNode []*NLNode `xml:"LNode"`
  120. TransformerWinding []*NTransformerWinding `xml:"TransformerWinding"`
  121. }
  122. type NTransformerWinding struct {
  123. BaseNode //`xml:"-"`
  124. Private *NPrivate `xml:"Private"`
  125. LNode []*NLNode `xml:"LNode"`
  126. Terminal []*NTerminal `xml:"Terminal"`
  127. Name string `xml:"name,attr"`
  128. Desc string `xml:"desc,attr"`
  129. Type string `xml:"type,attr"`
  130. Virtual string `xml:"virtual,attr"`
  131. }
  132. type NConductingEquipment struct {
  133. BaseNode //`xml:"-"`
  134. Name string `xml:"name,attr"`
  135. Desc string `xml:"desc,attr"`
  136. Type string `xml:"type,attr"`
  137. Virtual string `xml:"virtual,attr"`
  138. Private *NPrivate `xml:"Private"`
  139. LNode []*NLNode `xml:"LNode"`
  140. Terminal []*NTerminal `xml:"Terminal"`
  141. }
  142. type NConnectivityNode struct {
  143. BaseNode //`xml:"-"`
  144. Name string `xml:"name,attr"`
  145. PathName string `xml:"pathName,attr"`
  146. }
  147. type NLNode struct {
  148. BaseNode //`xml:"-"`
  149. IedName string `xml:"iedName,attr"`
  150. Desc string `xml:"desc,attr"`
  151. LdInst string `xml:"ldInst,attr"`
  152. LnClass string `xml:"lnClass,attr"`
  153. LnInst string `xml:"lnInst,attr"`
  154. LnType string `xml:"lnType,attr"`
  155. Prefix string `xml:"prefix,attr"`
  156. }
  157. type NTerminal struct {
  158. BaseNode //`xml:"-"`
  159. Name string `xml:"name,attr"`
  160. Desc string `xml:"desc,attr"`
  161. BayName string `xml:"bayName,attr"`
  162. CNodeName string `xml:"cNodeName,attr"`
  163. ConnectivityNode string `xml:"connectivityNode,attr"`
  164. SubstationName string `xml:"substationName,attr"`
  165. VoltageLevelName string `xml:"voltageLevelName,attr"`
  166. }
  167. type SznariP struct {
  168. BaseNode //`xml:"-"`
  169. Type string `xml:"type,attr"`
  170. }
  171. type NHeader struct {
  172. BaseNode //`xml:"-"`
  173. History *NHistory `xml:"History"`
  174. Id string `xml:"id,attr"` // 读取type属性
  175. NameStructure string `xml:"nameStructure,attr"` // 读取type属性
  176. ToolID string `xml:"toolID,attr"` // 读取type属性
  177. Version string `xml:"version,attr"` // 读取type属性
  178. Revision string `xml:"revision,attr"` // 读取type属性
  179. }
  180. type NHistory struct {
  181. BaseNode //`xml:"-"`
  182. Hitem []*NHitem `xml:"Hitem"`
  183. }
  184. type NHitem struct {
  185. BaseNode //`xml:"-"`
  186. Revision string `xml:"revision,attr"`
  187. Version string `xml:"version,attr"`
  188. What string `xml:"what,attr"`
  189. When string `xml:"when,attr"`
  190. Who string `xml:"who,attr"`
  191. Why string `xml:"why,attr"`
  192. }
  193. type NSubstation struct {
  194. BaseNode //`xml:"-"`
  195. Desc string `xml:"desc,attr"` // 读取type属性
  196. Name string `xml:"name,attr"` // 读取type属性
  197. Private []*NPrivate `xml:"Private"`
  198. VoltageLevel []*NVoltageLevel `xml:"VoltageLevel"`
  199. Any []*NAny `xml:",any"`
  200. }
  201. type NVoltageLevel struct {
  202. BaseNode //`xml:"-"`
  203. Desc string `xml:"desc,attr"` // 读取type属性
  204. Name string `xml:"name,attr"` // 读取type属性
  205. Voltage *NVoltage `xml:"Voltage"`
  206. Bay []*NBay `xml:"Bay"`
  207. Any []*NAny `xml:",any"`
  208. }
  209. type NCommunication struct {
  210. BaseNode //`xml:"-"`
  211. SubNetwork []*NSubNetwork `xml:"SubNetwork"` // 读取节点
  212. }
  213. type NSubNetwork struct {
  214. BaseNode //`xml:"-"`
  215. BitRate *NBitRate `xml:"BitRate"`
  216. ConnectedAP []*NConnectedAP `xml:"ConnectedAP"`
  217. Desc string `xml:"desc,attr"` // 读取节点
  218. Name string `xml:"name,attr"` // 读取节点
  219. Type string `xml:"type,attr"` // 读取节点
  220. }
  221. type NBitRate struct {
  222. BaseNode //`xml:"-"`
  223. InnerText string `xml:",chardata"`
  224. Multiplier string `xml:"multiplier,attr"`
  225. Unit string `xml:"unit,attr"`
  226. }
  227. type NConnectedAP struct {
  228. BaseNode //`xml:"-"`
  229. Private []*NPrivate `xml:"Private"`
  230. ApName string `xml:"apName,attr"`
  231. IedName string `xml:"iedName,attr"`
  232. Desc string `xml:"desc,attr"`
  233. Address *NAddress `xml:"Address"`
  234. GSE []*NGSE `xml:"GSE"`
  235. SMV []*NSMV `xml:"SMV"`
  236. PhysConn []*NPhysConn `xml:"PhysConn"`
  237. }
  238. type NPhysConn struct {
  239. BaseNode //`xml:"-"`
  240. Type string `xml:"type,attr"`
  241. P []*NP `xml:"P"`
  242. }
  243. type NGSE struct {
  244. BaseNode //`xml:"-"`
  245. CbName string `xml:"cbName,attr"`
  246. LdInst string `xml:"ldInst,attr"`
  247. Address *NAddress `xml:"Address"`
  248. MaxTime *NMaxTime `xml:"MaxTime"`
  249. MinTime *NMinTime `xml:"MinTime"`
  250. }
  251. type NSMV struct {
  252. BaseNode //`xml:"-"`
  253. CbName string `xml:"cbName,attr"`
  254. LdInst string `xml:"ldInst,attr"`
  255. Address *NAddress `xml:"Address"`
  256. MaxTime *NMaxTime `xml:"MaxTime"`
  257. MinTime *NMinTime `xml:"MinTime"`
  258. }
  259. type NMinTime struct {
  260. BaseNode //`xml:"-"`
  261. InnerText string `xml:",chardata"`
  262. Multiplier string `xml:"multiplier,attr"`
  263. Unit string `xml:"unit,attr"`
  264. }
  265. type NMaxTime struct {
  266. BaseNode //`xml:"-"`
  267. InnerText string `xml:",chardata"`
  268. Multiplier string `xml:"multiplier,attr"`
  269. Unit string `xml:"unit,attr"`
  270. }
  271. type NAddress struct {
  272. BaseNode //`xml:"-"`
  273. P []*NP `xml:"P"`
  274. }
  275. type NP struct {
  276. BaseNode //`xml:"-"`
  277. InnerText string `xml:",chardata"`
  278. Type string `xml:"type,attr"`
  279. }
  280. type NIED struct {
  281. BaseNode //`xml:"-"`
  282. Priavate []*NPrivate `xml:"Private"`
  283. Services *NServices `ml:"Services"`
  284. AccessPoint []*NAccessPoint `xml"AccessPoint"`
  285. ConfigVersion string `xml:"configVersion,attr"` // 读取type属性
  286. Manufacturer string `xml:"manufacturer,attr"`
  287. Desc string `xml:"desc,attr"` // 读取type属性
  288. Type string `xml:"type,attr"` // 读取type属性
  289. Name string `xml:"name,attr"` // 读取type属性
  290. }
  291. type NServices struct {
  292. BaseNode //`xml:"-"`
  293. DynAssociation *NDynAssociation `xml:"DynAssociation"`
  294. SettingGroups *NSettingGroups `xml:"SettingGroups"`
  295. GetDirectory *NGetDirectory `xml:"GetDirectory"`
  296. GetDataObjectDefinition *NGetDataObjectDefinition `xml:"GetDataObjectDefinition"`
  297. DataObjectDirectory *NDataObjectDirectory `xml:"DataObjectDirectory"`
  298. GetDataSetValue *NGetDataSetValue `xml:"GetDataSetValue"`
  299. SetDataSetValue *NSetDataSetValue `xml:"SetDataSetValue"`
  300. DataSetDirectory *NDataSetDirectory `xml:"DataSetDirectory"`
  301. ConfDataSet *NConfDataSet `xml:"ConfDataSet"`
  302. DynDataSet *NDynDataSet `xml:"DynDataSet"`
  303. ReadWrite *NReadWrite `xml:"ReadWrite"`
  304. TimerActivatedControl *NTimerActivatedControl `xml:"TimerActivatedControl"`
  305. ConfReportControl *NConfReportControl `xml:"ConfReportControl"`
  306. GetCBValues *NGetCBValues `xml:"GetCBValues"`
  307. ConfLogControl *NConfLogControl `xml:"ConfLogControl"`
  308. ReportSettings *NReportSettings `xml:"ReportSettings"`
  309. LogSettings *NLogSettings `xml:"LogSettings"`
  310. GSESettings *NGSESettings `xml:"GSESettings"`
  311. SMVSettings *NSMVSettings `xml:"SMVSettings"`
  312. GSEDir *NGSEDir `xml:"GSEDir"`
  313. GOOSE *NGOOSE `xml:"GOOSE"`
  314. GSSE *NGSSE `xml:"GSSE"`
  315. SMV *NSMV2 `xml:"SMV"`
  316. FileHandling *NFileHandling `xml:"FileHandling"`
  317. ConfLNs *NConfLNs `xml:"ConfLNs"`
  318. ClientServices *NClientServices `xml:"ClientServices"`
  319. ConfLdName *NConfLdName `xml:"ConfLdName"`
  320. }
  321. type NConfLdName struct {
  322. BaseNode //`xml:"-"`
  323. }
  324. type NClientServices struct {
  325. BaseNode //`xml:"-"`
  326. Goose string `xml:"goose,attr"`
  327. Gsse string `xml:"gsse,attr"`
  328. BufReport string `xml:"bufReport,attr"`
  329. UnbufReport string `xml:"unbufReport,attr"`
  330. ReadLog string `xml:"readLog,attr"`
  331. Sv string `xml:"sv,attr"`
  332. Fccb string `xml:"fccb,attr"`
  333. }
  334. type NSMV2 struct {
  335. BaseNode //`xml:"-"`
  336. Max string `xml:"max,attr"`
  337. }
  338. type NGSSE struct {
  339. BaseNode //`xml:"-"`
  340. Max string `xml:"max,attr"`
  341. }
  342. type NGSEDir struct {
  343. BaseNode //`xml:"-"`
  344. }
  345. type NTimerActivatedControl struct {
  346. BaseNode //`xml:"-"`
  347. }
  348. type NDynDataSet struct {
  349. BaseNode //`xml:"-"`
  350. Max string `xml:"max,attr"`
  351. MaxAttributes string `xml:"maxAttributes,attr"`
  352. }
  353. type NDynAssociation struct {
  354. BaseNode //`xml:"-"`
  355. Max string `xml:"max,attr"`
  356. }
  357. type NSettingGroups struct {
  358. BaseNode //`xml:"-"`
  359. SGEdit *NSGEdit `xml:"SGEdit"`
  360. ConfSG *NConfSG `sml:"ConfSG"`
  361. }
  362. type NSGEdit struct {
  363. BaseNode //`xml:"-"`
  364. }
  365. type NConfSG struct {
  366. BaseNode //`xml:"-"`
  367. InnerText string `xml:",chardata"`
  368. }
  369. type NGetDirectory struct {
  370. BaseNode //`xml:"-"`
  371. }
  372. type NGetDataObjectDefinition struct {
  373. BaseNode //`xml:"-"`
  374. }
  375. type NDataObjectDirectory struct {
  376. BaseNode //`xml:"-"`
  377. }
  378. type NGetDataSetValue struct {
  379. BaseNode //`xml:"-"`
  380. }
  381. type NSetDataSetValue struct {
  382. BaseNode //`xml:"-"`
  383. }
  384. type NDataSetDirectory struct {
  385. BaseNode //`xml:"-"`
  386. }
  387. type NConfDataSet struct {
  388. BaseNode //`xml:"-"`
  389. Max string `xml:"max,attr"`
  390. MaxAttributes string `xml:"maxAttributes,attr"`
  391. Modify string `xml:"modify,attr"`
  392. Fccb string `xml:"fccb,attr"`
  393. }
  394. type NReadWrite struct {
  395. BaseNode //`xml:"-"`
  396. }
  397. type NConfReportControl struct {
  398. BaseNode //`xml:"-"`
  399. Max string `xml:"max,attr"`
  400. BufMode string `xml:"bufMode,attr"`
  401. BufConf string `xml:"bufConf,attr"`
  402. }
  403. type NGetCBValues struct {
  404. BaseNode //`xml:"-"`
  405. }
  406. type NConfLogControl struct {
  407. BaseNode //`xml:"-"`
  408. Max string `xml:"max,attr"`
  409. }
  410. type NReportSettings struct {
  411. BaseNode //`xml:"-"`
  412. BufTime string `xml:"bufTime,attr"`
  413. CbName string `xml:"cbName,attr"`
  414. DatSet string `xml:"datSet,attr"`
  415. IntgPd string `xml:"intgPd,attr"`
  416. OptFields string `xml:"optFields,attr"`
  417. RptID string `xml:"rptID,attr"`
  418. TrgOps string `xml:"trgOps,attr"`
  419. }
  420. type NLogSettings struct {
  421. BaseNode //`xml:"-"`
  422. CbName string `xml:"cbName,attr"`
  423. DatSet string `xml:"datSet,attr"`
  424. IntgPd string `xml:"intgPd,attr"`
  425. LogEna string `xml:"logEna,attr"`
  426. TrgOps string `xml:"trgOps,attr"`
  427. }
  428. type NGSESettings struct {
  429. BaseNode //`xml:"-"`
  430. AppID string `xml:"appID,attr"`
  431. CbName string `xml:"cbName,attr"`
  432. DatSet string `xml:"datSet,attr"`
  433. DataLabel string `xml:"dataLabel,attr"`
  434. }
  435. type NSMVSettings struct {
  436. BaseNode //`xml:"-"`
  437. SmpRateObj *NSmpRate `xml:"SmpRate"`
  438. CbName string `xml:"cbName,attr"`
  439. DatSet string `xml:"datSet,attr"`
  440. OptFields string `xml:"optFields,attr"`
  441. SmpRate string `xml:"smpRate,attr"`
  442. SvID string `xml:"svID,attr"`
  443. }
  444. type NSmpRate struct {
  445. BaseNode //`xml:"-"`
  446. InnerText string `xml:",chardata"`
  447. }
  448. type NFileHandling struct {
  449. BaseNode //`xml:"-"`
  450. }
  451. type NConfLNs struct {
  452. BaseNode //`xml:"-"`
  453. FixLnInst string `xml:"fixLnInst,attr"`
  454. FixPrefix string `xml:"fixPrefix,attr"`
  455. }
  456. type NGOOSE struct {
  457. BaseNode //`xml:"-"`
  458. Max string `xml:"max,attr"`
  459. }
  460. type NAccessPoint struct {
  461. BaseNode //`xml:"-"`
  462. Priavate *NPrivate `xml:"Private"`
  463. Server *NServer `xml:"Server"`
  464. GOOSESecurity []*NGOOSESecurity `xml:"GOOSESecurity"`
  465. SMVSecurity []*NSMVSecurity `xml:"SMVSecurity"`
  466. Any []*NAny `xml:",any"`
  467. Clock string `xml:"clock,attr"`
  468. Name string `xml:"name,attr"`
  469. Desc string `xml:"desc,attr"`
  470. Router string `xml:"router,attr"`
  471. }
  472. type NGOOSESecurity struct {
  473. BaseNode //`xml:"-"`
  474. Subject *NSubject `xml:"Subject"`
  475. IssuerName *NIssuerName `xml:"IssuerName"`
  476. name string `xml:"name,attr"`
  477. Desc string `xml:"desc,attr"`
  478. XferNumber string `xml:"xferNumber,attr"`
  479. SerialNumber string `xml:"serialNumber,attr"`
  480. }
  481. type NSMVSecurity struct {
  482. BaseNode //`xml:"-"`
  483. Subject *NSubject `xml:"Subject"`
  484. IssuerName *NIssuerName `xml:"IssuerName"`
  485. name string `xml:"name,attr"`
  486. Desc string `xml:"desc,attr"`
  487. XferNumber string `xml:"xferNumber,attr"`
  488. SerialNumber string `xml:"serialNumber,attr"`
  489. }
  490. type NSubject struct {
  491. BaseNode //`xml:"-"`
  492. CommonName string `xml:"commonName,attr"`
  493. IdHierarchy string `xml:"idHierarchy,attr"`
  494. }
  495. type NIssuerName struct {
  496. BaseNode //`xml:"-"`
  497. CommonName string `xml:"commonName,attr"`
  498. IdHierarchy string `xml:"idHierarchy,attr"`
  499. }
  500. type NServer struct {
  501. BaseNode //`xml:"-"`
  502. Private []*NPrivate `xml:"Private"`
  503. Authentication *NAuthentication `xml:"Authentication"`
  504. LDevice []*NLDevice `xml:"LDevice"`
  505. Timeout string `xml:"timeout,attr"`
  506. }
  507. type NAuthentication struct {
  508. BaseNode //`xml:"-"`
  509. None string `xml:"none,attr"`
  510. }
  511. type NLDevice struct {
  512. BaseNode //`xml:"-"`
  513. Desc string `xml:"desc,attr"`
  514. Inst string `xml:"inst,attr"`
  515. LN0 *NLN0 `xml:"LN0"`
  516. LN []*NLN `xml:"LN"`
  517. }
  518. type NLN0 struct {
  519. BaseNode //`xml:"-"`
  520. Any []*NAny `xml:",any"`
  521. DataSet []*NDataSet `xml:"DataSet"`
  522. ReportControl []*NReportControl `xml:"ReportControl"`
  523. LogControl []*NLogControl `xml:"LogControl"`
  524. DOI []*NDOI `xml:"DOI"`
  525. Inputs *NInputs `xml:"Inputs"`
  526. Log []*NLog `xml:"log"`
  527. GSEControl []*NGSEControl `xml:"GSEControl"`
  528. SampledValueControl []*NSampledValueControl `xml:"SampledValueControl"`
  529. SettingControl *NSettingControl `xml:"SettingControl"`
  530. SCLControl *NSCLControl `xml:"SCLControl"`
  531. Desc string `xml:"desc,attr"`
  532. Inst string `xml:"inst,attr"`
  533. LnClass string `xml:"lnClass,attr"`
  534. LnType string `xml:"lnType,attr"`
  535. Prefix string `xml:"prefix,attr"`
  536. }
  537. type NSCLControl struct {
  538. BaseNode //`xml:"-"`
  539. Desc string `xml:"desc,attr"`
  540. }
  541. type NSettingControl struct {
  542. BaseNode //`xml:"-"`
  543. ActSG string `xml:"actSG,attr"`
  544. NumOfSGs string `xml:"numOfSGs,attr"`
  545. }
  546. type NReportControl struct {
  547. BaseNode //`xml:"-"`
  548. Private []*NPrivate `xml:"Private"`
  549. TrgOps *NTrgOps `xml:"TrgOps"`
  550. OptFields *NOptFields `xml:"OptFields"`
  551. RptEnabled *NRptEnabled `xml:"RptEnabled"`
  552. BufTime string `xml:"bufTime,attr"`
  553. Buffered string `xml:"buffered,attr"`
  554. ConfRev string `xml:"confRev,attr"`
  555. DatSet string `xml:"datSet,attr"`
  556. IntgPd string `xml:"intgPd,attr"`
  557. Name string `xml:"name,attr"`
  558. Desc string `xml:"desc,attr"`
  559. RptID string `xml:"rptID,attr"`
  560. }
  561. type NLogControl struct {
  562. BaseNode //`xml:"-"`
  563. TrgOps *NTrgOps `xml:"TrgOps"`
  564. DatSet string `xml:"datSet,attr"`
  565. Desc string `xml:"desc,attr"`
  566. IntgPd string `xml:"intgPd,attr"`
  567. LogEna string `xml:"logEna,attr"`
  568. LogName string `xml:"logName,attr"`
  569. Name string `xml:"name,attr"`
  570. ReasonCode string `xml:"reasonCode,attr"`
  571. }
  572. type NTrgOps struct {
  573. BaseNode //`xml:"-"`
  574. Dchg string `xml:"dchg,attr"`
  575. Dupd string `xml:"dupd,attr"`
  576. Period string `xml:"period,attr"`
  577. Qchg string `xml:"qchg,attr"`
  578. }
  579. type NOptFields struct {
  580. BaseNode //`xml:"-"`
  581. ConfigRef string `xml:"configRef,attr"`
  582. DataRef string `xml:"dataRef,attr"`
  583. DataSet string `xml:"dataSet,attr"`
  584. EntryID string `xml:"entryID,attr"`
  585. ReasonCode string `xml:"reasonCode,attr"`
  586. SeqNum string `xml:"seqNum,attr"`
  587. TimeStamp string `xml:"timeStamp,attr"`
  588. }
  589. type NRptEnabled struct {
  590. BaseNode //`xml:"-"`
  591. ClientLN []*NClientLN `xml:"ClientLN"`
  592. Max string `xml:"max,attr"`
  593. }
  594. type NClientLN struct {
  595. BaseNode //`xml:"-"`
  596. IedName string `xml:"iedName,attr"`
  597. LdInst string `xml:"ldInst,attr"`
  598. LnClass string `xml:"lnClass,attr"`
  599. LnInst string `xml:"lnInst,attr"`
  600. Prefix string `xml:"prefix,attr"`
  601. Desc string `xml:"desc,attr"`
  602. }
  603. type NLog struct {
  604. BaseNode //`xml:"-"`
  605. Name string `xml:"name,attr"`
  606. }
  607. type NLN struct {
  608. BaseNode //`xml:"-"`
  609. Any []*NAny `xml:",any"`
  610. DataSet []*NDataSet `xml:"DataSet"`
  611. ReportControl []*NReportControl `xml:"ReportControl"`
  612. LogControl []*NLogControl `xml:"LogControl"`
  613. SettingControl *NSettingControl `xml:"SettingControl"`
  614. DOI []*NDOI `xml:"DOI"`
  615. Inputs *NInputs `xml:"Inputs"`
  616. Log []*NLog `xml:"log"`
  617. Desc string `xml:"desc,attr"`
  618. Inst string `xml:"inst,attr"`
  619. LnClass string `xml:"lnClass,attr"`
  620. LnType string `xml:"lnType,attr"`
  621. Prefix string `xml:"prefix,attr"`
  622. }
  623. type NDataSet struct {
  624. BaseNode //`xml:"-"`
  625. FCDA []*NFCDA `xml:"FCDA"`
  626. FCCB []*NFCCB `xml:"FCCB"`
  627. Desc string `xml:"desc,attr"`
  628. Name string `xml:"name,attr"`
  629. }
  630. type NFCDA struct {
  631. BaseNode //`xml:"-"`
  632. DaName string `xml:"daName,attr"`
  633. DoName string `xml:"doName,attr"`
  634. Fc string `xml:"fc,attr"`
  635. LdInst string `xml:"ldInst,attr"`
  636. LnClass string `xml:"lnClass,attr"`
  637. LnInst string `xml:"lnInst,attr"`
  638. Prefix string `xml:"prefix,attr"`
  639. Ix string `xml:"ix,attr"`
  640. }
  641. type NFCCB struct {
  642. BaseNode //`xml:"-"`
  643. DaName string `xml:"daName,attr"`
  644. DoName string `xml:"doName,attr"`
  645. Fc string `xml:"fc,attr"`
  646. LdInst string `xml:"ldInst,attr"`
  647. LnClass string `xml:"lnClass,attr"`
  648. LnInst string `xml:"lnInst,attr"`
  649. Prefix string `xml:"prefix,attr"`
  650. mustUnderstand string `xml:"mustUnderstand,attr"`
  651. }
  652. type NGSEControl struct {
  653. BaseNode //`xml:"-"`
  654. Private *NPrivate `xml:"Private"`
  655. IEDName []*NIEDName `xml:"IEDName`
  656. AppID string `xml:"appID,attr"`
  657. ConfRev string `xml:"confRev,attr"`
  658. DatSet string `xml:"datSet,attr"`
  659. Name string `xml:"name,attr"`
  660. Type string `xml:"type,attr"`
  661. }
  662. type NSampledValueControl struct {
  663. BaseNode //`xml:"-"`
  664. Private []*NPrivate `xml:"Private"`
  665. IEDName []*NIEDName `xml:"IEDName`
  666. SmvOpts NSmvOpts `xml:"SmvOpts"`
  667. ConfRev string `xml:"confRev,attr"`
  668. DatSet string `xml:"datSet,attr"`
  669. Desc string `xml:"desc,attr"`
  670. Multicast string `xml:"multicast,attr"`
  671. Name string `xml:"name,attr"`
  672. NofASDU string `xml:"nofASDU,attr"`
  673. SmpRate string `xml:"smpRate,attr"`
  674. SmvID string `xml:"smvID,attr"`
  675. }
  676. type NIEDName struct {
  677. BaseNode //`xml:"-"`
  678. InnerText string `xml:",chardata"`
  679. }
  680. type NSmvOpts struct {
  681. BaseNode //`xml:"-"`
  682. DataRef string `xml:"dataRef,attr"`
  683. RefreshTime string `xml:"refreshTime,attr"`
  684. SampleRate string `xml:"sampleRate,attr"`
  685. SampleSynchronized string `xml:"sampleSynchronized,attr"`
  686. Security string `xml:"security,attr"`
  687. }
  688. type NInputs struct {
  689. BaseNode //`xml:"-"`
  690. ExtRef []*NExtRef `xml:"ExtRef"`
  691. }
  692. type NExtRef struct {
  693. BaseNode //`xml:"-"`
  694. DaName string `xml:"daName,attr"`
  695. DoName string `xml:"doName,attr"`
  696. IedName string `xml:"iedName,attr"`
  697. IntAddr string `xml:"intAddr,attr"`
  698. LdInst string `xml:"ldInst,attr"`
  699. LnClass string `xml:"lnClass,attr"`
  700. LnInst string `xml:"lnInst,attr"`
  701. Prefix string `xml:"prefix,attr"`
  702. }
  703. type NDOI struct {
  704. BaseNode //`xml:"-"`
  705. SDI []*NSDI `xml:"SDI"`
  706. DAI []*NDAI `xml:"DAI"`
  707. Desc string `xml:"desc,attr"`
  708. Name string `xml:"name,attr"`
  709. }
  710. type NSDI struct {
  711. BaseNode //`xml:"-"`
  712. SDI []*NSDI `xml:"SDI"`
  713. DAI []*NDAI `xml:"DAI"`
  714. Name string `xml:"name,attr"`
  715. Desc string `xml:"desc,attr"`
  716. }
  717. type NDAI struct {
  718. BaseNode //`xml:"-"`
  719. InnerText string `xml:",chardata"`
  720. SAddr string `xml:"sAddr,attr"`
  721. Desc string `xml:"desc,attr"`
  722. Name string `xml:"name,attr"`
  723. Val *NVal `xml:"Val"`
  724. }
  725. type NVal struct {
  726. BaseNode //`xml:"-"`
  727. InnerText string `xml:",chardata"`
  728. }
  729. type NDataTypeTemplates struct {
  730. BaseNode //`xml:"-"`
  731. LNodeType []*NLNodeType `xml:"LNodeType"`
  732. DOType []*NDOType `xml:"DOType"`
  733. DAType []*NDAType `xml:"DAType"`
  734. EnumType []*NEnumType `xml:"EnumType"`
  735. }
  736. type NLNodeType struct {
  737. BaseNode //`xml:"-"`
  738. DO []*NDO `xml:"DO"`
  739. Id string `xml:"id,attr"`
  740. LnClass string `xml:"lnClass,attr"`
  741. Desc string `xml:"desc,attr"`
  742. }
  743. type NDO struct {
  744. BaseNode //`xml:"-"`
  745. Desc string `xml:"desc,attr"`
  746. Name string `xml:"name,attr"`
  747. Type string `xml:"type,attr"`
  748. //Ext_eOption string `xml:"ext:eOption,attr"`
  749. }
  750. type NDOType struct {
  751. BaseNode //`xml:"-"`
  752. Id string `xml:"id,attr"`
  753. Cdc string `xml:"cdc,attr"`
  754. SDO []*NSDO `xml:"SDO"`
  755. DA []*NDA `xml:"DA"`
  756. }
  757. type NSDO struct {
  758. BaseNode //`xml:"-"`
  759. Name string `xml:"name,attr"`
  760. Type string `xml:"type,attr"`
  761. }
  762. type NDA struct {
  763. BaseNode //`xml:"-"`
  764. BType string `xml:"bType,attr"`
  765. Type string `xml:"type,attr"`
  766. Dchg string `xml:"dchg,attr"`
  767. Qchg string `xml:"qchg,attr"`
  768. Fc string `xml:"fc,attr"`
  769. Name string `xml:"name,attr"`
  770. Count string `xml:"count,attr"`
  771. Dupd string `xml:"dupd,attr"`
  772. ValKind string `xml:"valKind,attr"`
  773. Val *NVal `xml:"Val"`
  774. }
  775. type NDAType struct {
  776. BaseNode //`xml:"-"`
  777. Id string `xml:"id,attr"`
  778. BDA []*NBDA `xml:"BDA"`
  779. }
  780. type NBDA struct {
  781. BaseNode //`xml:"-"`
  782. Val *NVal `xml:"Val"`
  783. BType string `xml:"bType,attr"`
  784. Name string `xml:"name,attr"`
  785. Type string `xml:"type,attr"`
  786. Count string `xml:"count,attr"`
  787. ValKind string `xml:"valKind,attr"`
  788. }
  789. type NEnumType struct {
  790. BaseNode //`xml:"-"`
  791. Id string `xml:"id,attr"`
  792. EnumVal []*NEnumVal `xml:"EnumVal"`
  793. }
  794. type NEnumVal struct {
  795. BaseNode //`xml:"-"`
  796. InnerText string `xml:",chardata"`
  797. Ord string `xml:"ord,attr"`
  798. }
  799. //scl根节点属性管理
  800. type T_scd_scl_attrs struct {
  801. BaseModel `orm:"-"`
  802. AttrXmlns string `json:"xmlns"`
  803. AttrXmlnsXsi string `json:"xsi"`
  804. AttrXsiSchemaLocation string `json:"schemaLocation"`
  805. AttrXmlnsExt string `json:"ext"`
  806. }
  807. type T_scd_header_attrs struct {
  808. BaseModel `orm:"_"`
  809. AttrId string `json:"id"`
  810. AttrVersion string `json:"version"`
  811. AttrReversion string `json:"revision"`
  812. AttrToolid string `json:"toolID"`
  813. AttrNamestructure string `json:"nameStructure"`
  814. }
  815. type T_scd_hitem_attrs struct {
  816. BaseModel `orm:"_"`
  817. AttrVersion string `json:"version"`
  818. AttrReversion string `json:"revision"`
  819. AttrWhen string `json:"when"`
  820. AttrWho string `json:"who"`
  821. AttrWhat string `json:"what"`
  822. AttrWhy string `json:"why"`
  823. }
  824. type T_scd_substation_attrs struct {
  825. BaseModel `orm:"_"`
  826. AttrName string `json:"name"`
  827. AttrDesc string `json:"desc"`
  828. }
  829. type T_scd_private_attrs struct {
  830. BaseModel `orm:"_"`
  831. AttrType string `json:"type"`
  832. }
  833. type T_scd_communication_attrs struct {
  834. BaseModel `orm:"_"`
  835. AttrDesc string `json:"desc"`
  836. }
  837. type T_scd_voltage_attrs struct {
  838. BaseModel `orm:"_"`
  839. AttrName string `json:"name"`
  840. }
  841. type T_scd_bay_attrs struct {
  842. BaseModel `orm:"_"`
  843. AttrName string `json:"name"`
  844. }
  845. type T_scd_subnetwork_attrs struct {
  846. BaseModel `orm:"_"`
  847. AttrDesc string `json:"desc"`
  848. AttrName string `json:"name"`
  849. AttrType string `json:"type"`
  850. }
  851. type T_scd_bitrate_attrs struct {
  852. BaseModel `orm:"_"`
  853. AttrUnit string `json:"unit"`
  854. AttrMultiplier string `json:"multiplier"`
  855. }
  856. type T_scd_connectedap_attrs struct {
  857. BaseModel `orm:"_"`
  858. AttrIedName string `json:"iedName"`
  859. AttrApName string `json:"apName"`
  860. AttrDesc string `json:"desc"`
  861. }
  862. type T_scd_p_attrs struct {
  863. BaseModel `orm:"_"`
  864. AttrType string `json:"type"`
  865. }
  866. type T_scd_physconn_attrs struct {
  867. BaseModel `orm:"_"`
  868. AttrType string `json:"type"`
  869. }
  870. type T_scd_gse_attrs struct {
  871. BaseModel `orm:"_"`
  872. AttrDesc string `json:"desc"`
  873. AttrLdInst string `json:"ldInst"`
  874. AttrCbName string `json:"cbName"`
  875. }
  876. type T_scd_connectedap_smv_attrs struct {
  877. BaseModel `orm:"_"`
  878. AttrDesc string `json:"desc"`
  879. AttrLdInst string `json:"ldInst"`
  880. AttrCbName string `json:"cbName"`
  881. }
  882. type T_scd_mintime_attrs struct {
  883. BaseModel `orm:"_"`
  884. AttrUnit string `json:"unit"`
  885. AttrMultiplier string `json:"multiplier"`
  886. }
  887. type T_scd_maxtime_attrs struct {
  888. BaseModel `orm:"_"`
  889. AttrUnit string `json:"unit"`
  890. AttrMultiplier string `json:"multiplier"`
  891. }
  892. type T_scd_ied_attrs struct {
  893. BaseModel `orm:"_"`
  894. AttrDesc string `json:"desc"`
  895. AttrType string `json:"type"`
  896. AttrName string `json:"name"`
  897. AttrManufacturer string `json:"manufacturer"`
  898. AttrConfigVersion string `json:"configVersion"`
  899. AttrOriginalSclVersion string `json:"originalSclVersion"`
  900. AttrOriginalSclRevision string `json:"originalSclRevision"`
  901. AttrEngRight string `json:"engRight"`
  902. AttrOwner string `json:"owner"`
  903. }
  904. type T_scd_dynassociation_attrs struct {
  905. BaseModel `orm:"_"`
  906. AttrMax string `json:"max"`
  907. }
  908. type T_scd_confdataset_attrs struct {
  909. BaseModel `orm:"_"`
  910. AttrMax string `json:"max"`
  911. AttrMaxAttributes string `json:"maxAttributes"`
  912. AttrModify string `json:"modify"`
  913. AttrFccb string `json:"fccb"`
  914. }
  915. type T_scd_dyndataset_attrs struct {
  916. BaseModel `orm:"_"`
  917. AttrMax string `json:"max"`
  918. AttrMaxAttributes string `json:"maxAttributes"`
  919. }
  920. type T_scd_confreportcontrol_attrs struct {
  921. BaseModel `orm:"_"`
  922. AttrMax string `json:"max"`
  923. AttrBufMode string `json:"bufMode"`
  924. AttrBufConf string `json:"bufConf"`
  925. }
  926. type T_scd_conflogcontrol_attrs struct {
  927. BaseModel `orm:"_"`
  928. AttrMax string `json:"max"`
  929. }
  930. type T_scd_reportsettings_attrs struct {
  931. BaseModel `orm:"_"`
  932. AttrCbName string `json:"cbName"`
  933. AttrDatSet string `json:"datSet"`
  934. AttrRptId string `json:"rptID"`
  935. AttrOptFields string `json:"optFields"`
  936. AttrBufTime string `json:"bufTime"`
  937. AttrTrgOps string `json:"trgOps"`
  938. AttrIntgPd string `json:"intgPd"`
  939. }
  940. type T_scd_logsettings_attrs struct {
  941. BaseModel `orm:"_"`
  942. AttrCbName string `json:"cbName"`
  943. AttrDatSet string `json:"datSet"`
  944. AttrLogEna string `json:"logEna"`
  945. AttrTrgOps string `json:"trgOps"`
  946. AttrIntgPd string `json:"intgPd"`
  947. }
  948. type T_scd_gsesettings_attrs struct {
  949. BaseModel `orm:"_"`
  950. AttrCbName string `json:"cbName"`
  951. AttrDatSet string `json:"datSet"`
  952. AttrAppId string `json:"appID"`
  953. AttrDataLabel string `json:"dataLabel"`
  954. }
  955. type T_scd_smvsettings_attrs struct {
  956. BaseModel `orm:"_"`
  957. AttrCbName string `json:"cbName"`
  958. AttrDatSet string `json:"datSet"`
  959. AttrSvId string `json:"svID"`
  960. AttrOptFields string `json:"optFields"`
  961. AttrSmpRate string `json:"smpRate"`
  962. }
  963. type T_scd_goose_attrs struct {
  964. BaseModel `orm:"_"`
  965. AttrMax string `json:"max"`
  966. }
  967. type T_scd_gsse_attrs struct {
  968. BaseModel `orm:"_"`
  969. AttrMax string `json:"max"`
  970. }
  971. type T_scd_smv_attrs struct {
  972. BaseModel `orm:"_"`
  973. AttrMax string `json:"max"`
  974. }
  975. type T_scd_conflns_attrs struct {
  976. BaseModel `orm:"_"`
  977. AttrFixPrefix string `json:"fixPrefix"`
  978. AttrFixLnInst string `json:"fixLnInst"`
  979. }
  980. type T_scd_clientservices_attrs struct {
  981. BaseModel `orm:"_"`
  982. AttrGoose string `json:"goose"`
  983. AttrGsse string `json:"gsse"`
  984. AttrBufReport string `json:"bufReport"`
  985. AttrUnbufReport string `json:"unbufReport"`
  986. AttrReadLog string `json:"readLog"`
  987. AttrSv string `json:"sv"`
  988. AttrFccb string `json:"fccb"`
  989. }
  990. type T_scd_accesspoint_attrs struct {
  991. BaseModel `orm:"_"`
  992. AttrName string `json:"name"`
  993. AttrDesc string `json:"desc"`
  994. AttrRouter string `json:"router"`
  995. AttrClock string `json:"clock"`
  996. }
  997. type T_scd_server_attrs struct {
  998. BaseModel `orm:"_"`
  999. AttrName string `json:"name"`
  1000. AttrTimeout string `json:"timeout"`
  1001. }
  1002. type T_scd_authentication_attrs struct {
  1003. BaseModel `orm:"_"`
  1004. AttrNone string `json:"none"`
  1005. AttrPassword string `json:"password"`
  1006. AttrWeak string `json:"weak"`
  1007. AttrStrong string `json:"strong"`
  1008. AttrCertificate string `json:"certificate"`
  1009. }
  1010. type T_scd_ldevice_attrs struct {
  1011. BaseModel `orm:"_"`
  1012. AttrInst string `json:"inst"`
  1013. AttrDesc string `json:"desc"`
  1014. AttrLdName string `json:"ldName"`
  1015. }
  1016. type T_scd_ln0_attrs struct {
  1017. BaseModel `orm:"_"`
  1018. AttrInst string `json:"inst"`
  1019. AttrDesc string `json:"desc"`
  1020. AttrLnType string `json:"lnType"`
  1021. AttrLnClass string `json:"lnClass"`
  1022. }
  1023. type T_scd_dataset_attrs struct {
  1024. BaseModel `orm:"_"`
  1025. AttrName string `json:"name"`
  1026. AttrDesc string `json:"desc"`
  1027. }
  1028. type T_scd_fcda_attrs struct {
  1029. BaseModel `orm:"_"`
  1030. AttrLdInst string `json:"ldInst"`
  1031. AttrPrefix string `json:"prefix"`
  1032. AttrLnClass string `json:"lnClass"`
  1033. AttrLnInst string `json:"lnInst"`
  1034. AttrDoName string `json:"doName"`
  1035. AttrDaName string `json:"daName"`
  1036. AttrFc string `json:"fc"`
  1037. AttrIx string `json:"ix"`
  1038. }
  1039. type T_scd_fccb_attrs struct {
  1040. BaseModel `orm:"_"`
  1041. AttrLdInst string `json:"ldInst"`
  1042. AttrPrefix string `json:"prefix"`
  1043. AttrLnClass string `json:"lnClass"`
  1044. AttrLnInst string `json:"lnInst"`
  1045. AttrCbName string `json:"cbName"`
  1046. AttrDaName string `json:"daName"`
  1047. AttrFc string `json:"fc"`
  1048. AttrMustUnderstand string `json:"mustUnderstand"`
  1049. }
  1050. type T_scd_reportcontrol_attrs struct {
  1051. BaseModel `orm:"_"`
  1052. AttrName string `json:"name"`
  1053. AttrDesc string `json:"desc"`
  1054. AttrDatSet string `json:"datSet"`
  1055. AttrIntgPd string `json:"intgPd"`
  1056. AttrRptId string `json:"rptID"`
  1057. AttrConfRev string `json:"confRev"`
  1058. AttrBuffered string `json:"buffered"`
  1059. AttrBufTime string `json:"bufTime"`
  1060. AttrIndexed string `json:"indexed"`
  1061. }
  1062. type T_scd_trgops_attrs struct {
  1063. BaseModel `orm:"_"`
  1064. AttrDchg string `json:"dchg"`
  1065. AttrQchg string `json:"qchg"`
  1066. AttrDupd string `json:"dupd"`
  1067. AttrPeriod string `json:"period"`
  1068. AttrGi string `json:"gi"`
  1069. AttrIncludeAll string `json:"includeAll"`
  1070. }
  1071. type T_scd_optfields_attrs struct {
  1072. BaseModel `orm:"_"`
  1073. AttrSeqNum string `json:"seqNum"`
  1074. AttrTimeStamp string `json:"timeStamp"`
  1075. AttrDataSet string `json:"dataSet"`
  1076. AttrReasonCode string `json:"reasonCode"`
  1077. AttrDataRef string `json:"dataRef"`
  1078. AttrEntryID string `json:"entryID"`
  1079. AttrConfigRef string `json:"configRef"`
  1080. AttrBufOvfl string `json:"bufOvfl"`
  1081. }
  1082. type T_scd_rptenabled_attrs struct {
  1083. BaseModel `orm:"_"`
  1084. AttrMax string `json:"max"`
  1085. AttrDesc string `json:"desc"`
  1086. }
  1087. type T_scd_clientln_attrs struct {
  1088. BaseModel `orm:"_"`
  1089. AttrLdInst string `json:"ldInst"`
  1090. AttrPrefix string `json:"prefix"`
  1091. AttrLnClass string `json:"lnClass"`
  1092. AttrLnInst string `json:"lnInst"`
  1093. AttrDesc string `json:"desc"`
  1094. AttrIedName string `json:"iedName"`
  1095. }
  1096. type T_scd_logcontrol_attrs struct {
  1097. BaseModel `orm:"_"`
  1098. AttrLdInst string `json:"ldInst"`
  1099. AttrPrefix string `json:"prefix"`
  1100. AttrLnClass string `json:"lnClass"`
  1101. AttrLnInst string `json:"lnInst"`
  1102. AttrDesc string `json:"desc"`
  1103. AttrName string `json:"name"`
  1104. AttrDatSet string `json:"datSet"`
  1105. AttrIntgPd string `json:"intgPd"`
  1106. AttrLogName string `json:"logName"`
  1107. AttrLogEna string `json:"logEna"`
  1108. AttrReasonCode string `json:"reasonCode"`
  1109. }
  1110. type T_scd_doi_attrs struct {
  1111. BaseModel `orm:"_"`
  1112. AttrDesc string `json:"desc"`
  1113. AttrName string `json:"name"`
  1114. AttrIx string `json:"ix"`
  1115. AttrAccessControl string `json:"accessControl"`
  1116. }
  1117. type T_scd_sdi_attrs struct {
  1118. BaseModel `orm:"_"`
  1119. AttrDesc string `json:"desc"`
  1120. AttrName string `json:"name"`
  1121. AttrIx string `json:"ix"`
  1122. }
  1123. type T_scd_dai_attrs struct {
  1124. BaseModel `orm:"_"`
  1125. AttrDesc string `json:"desc"`
  1126. AttrName string `json:"name"`
  1127. AttrIx string `json:"ix"`
  1128. AttrSaddr string `json:"sAddr"`
  1129. AttrValKind string `json:"valKind"`
  1130. }
  1131. type T_scd_val_attrs struct {
  1132. BaseModel `orm:"_"`
  1133. AttrSgroup string `json:"sGroup"`
  1134. }
  1135. type T_scd_inputs_attrs struct {
  1136. BaseModel `orm:"_"`
  1137. AttrDesc string `json:"desc"`
  1138. }
  1139. type T_scd_extref_attrs struct {
  1140. BaseModel `orm:"_"`
  1141. AttrLdInst string `json:"ldInst"`
  1142. AttrPrefix string `json:"prefix"`
  1143. AttrLnClass string `json:"lnClass"`
  1144. AttrLnInst string `json:"lnInst"`
  1145. AttrDoName string `json:"doName"`
  1146. AttrDaName string `json:"daName"`
  1147. AttrIedName string `json:"iedName"`
  1148. AttrDesc string `json:"desc"`
  1149. AttrIntAddr string `json:"intAddr"`
  1150. }
  1151. type T_scd_log_attrs struct {
  1152. BaseModel `orm:"_"`
  1153. AttrName string `json:"name"`
  1154. }
  1155. type T_scd_gsecontrol_attrs struct {
  1156. BaseModel `orm:"_"`
  1157. AttrName string `json:"name"`
  1158. AttrDesc string `json:"desc"`
  1159. AttrDatSet string `json:"datSet"`
  1160. AttrConfRev string `json:"confRev"`
  1161. AttrType string `json:"type"`
  1162. AttrAppid string `json:"appID"`
  1163. }
  1164. type T_scd_sampledvaluecontrol_attrs struct {
  1165. BaseModel `orm:"_"`
  1166. AttrName string `json:"name"`
  1167. AttrDesc string `json:"desc"`
  1168. AttrDatSet string `json:"datSet"`
  1169. AttrConfRev string `json:"confRev"`
  1170. AttrSmvId string `json:"smvID"`
  1171. AttrMulticast string `json:"multicast"`
  1172. AttrSmpRate string `json:"smpRate"`
  1173. AttrNofAsdu string `json:"nofASDU"`
  1174. }
  1175. type T_scd_smvopts_attrs struct {
  1176. BaseModel `orm:"_"`
  1177. AttrRefreshTime string `json:"refreshTime"`
  1178. AttrSampleSynchronized string `json:"sampleSynchronized"`
  1179. AttrSampleRate string `json:"sampleRate"`
  1180. AttrDataRef string `json:"dataRef"`
  1181. AttrSecurity string `json:"security"`
  1182. }
  1183. type T_scd_settingcontrol_attrs struct {
  1184. BaseModel `orm:"_"`
  1185. AttrNumOfSgs string `json:"numOfSGs"`
  1186. AttrDesc string `json:"desc"`
  1187. AttrActSg string `json:"actSG"`
  1188. }
  1189. type T_scd_sclcontrol_attrs struct {
  1190. BaseModel `orm:"_"`
  1191. AttrDesc string `json:"desc"`
  1192. }
  1193. type T_scd_ln_attrs struct {
  1194. BaseModel `orm:"_"`
  1195. AttrDesc string `json:"desc"`
  1196. AttrLnType string `json:"lnType"`
  1197. AttrLnClass string `json:"lnClass"`
  1198. AttrInst string `json:"inst"`
  1199. AttrPrefix string `json:"prefix"`
  1200. JoinStr string
  1201. }
  1202. type T_scd_association_attrs struct {
  1203. BaseModel `orm:"_"`
  1204. AttrLdInst string `json:"ldInst"`
  1205. AttrPrefix string `json:"prefix"`
  1206. AttrLnClass string `json:"lnClass"`
  1207. AttrLnInst string `json:"lnInst"`
  1208. AttrKind string `json:"kind"`
  1209. AttrIedName string `json:"iedName"`
  1210. AttrDesc string `json:"desc"`
  1211. AttrAssociationId string `json:"associationID"`
  1212. }
  1213. type T_scd_serverat_attrs struct {
  1214. BaseModel `orm:"_"`
  1215. AttrApName string `json:"apName"`
  1216. AttrDesc string `json:"desc"`
  1217. }
  1218. type T_scd_goosesecurity_attrs struct {
  1219. BaseModel `orm:"_"`
  1220. AttrName string `json:"name"`
  1221. AttrDesc string `json:"desc"`
  1222. AttrXferNumber string `json:"xferNumber"`
  1223. AttrSerialNumber string `json:"serialNumber"`
  1224. }
  1225. type T_scd_sunject_attrs struct {
  1226. BaseModel `orm:"_"`
  1227. AttrCommonName string `json:"commonName"`
  1228. AttrIdHierarchy string `json:"idHierarchy"`
  1229. }
  1230. type T_scd_issuername_attrs struct {
  1231. BaseModel `orm:"_"`
  1232. AttrCommonName string `json:"commonName"`
  1233. AttrIdHierarchy string `json:"idHierarchy"`
  1234. }
  1235. type T_scd_smvsecurity_attrs struct {
  1236. BaseModel `orm:"_"`
  1237. AttrName string `json:"name"`
  1238. AttrDesc string `json:"desc"`
  1239. AttrXferNumber string `json:"xferNumber"`
  1240. AttrSerialNumber string `json:"serialNumber"`
  1241. }
  1242. type T_scd_lnodetype_attrs struct {
  1243. BaseModel `orm:"_"`
  1244. AttrId string `json:"id"`
  1245. AttrDesc string `json:"desc"`
  1246. AttrIedType string `json:"iedType"`
  1247. AttrLnClass string `json:"lnClass"`
  1248. }
  1249. type T_scd_do_attrs struct {
  1250. BaseModel `orm:"_"`
  1251. AttrName string `json:"name"`
  1252. AttrDesc string `json:"desc"`
  1253. AttrType string `json:"type"`
  1254. AttrAccessControl string `json:"accessControl"`
  1255. AttrTransient string `json:"transient"`
  1256. }
  1257. type T_scd_dotype_attrs struct {
  1258. BaseModel `orm:"_"`
  1259. AttrId string `json:"id"`
  1260. AttrDesc string `json:"desc"`
  1261. AttrIedType string `json:"iedType"`
  1262. AttrCdc string `json:"cdc"`
  1263. }
  1264. type T_scd_sdo_attrs struct {
  1265. BaseModel `orm:"_"`
  1266. AttrName string `json:"name"`
  1267. AttrDesc string `json:"desc"`
  1268. AttrType string `json:"type"`
  1269. }
  1270. type T_scd_da_attrs struct {
  1271. BaseModel `orm:"_"`
  1272. AttrName string `json:"name"`
  1273. AttrDesc string `json:"desc"`
  1274. AttrType string `json:"type"`
  1275. AttrBtype string `json:"bType"`
  1276. AttrSaddr string `json:"sAddr"`
  1277. AttrValKind string `json:"valKind"`
  1278. AttrCount string `json:"count"`
  1279. AttrDchg string `json:"dchg"`
  1280. AttrQchg string `json:"qchg"`
  1281. AttrDupd string `json:"dupd"`
  1282. AttrFc string `json:"fc"`
  1283. }
  1284. type T_scd_datype_attrs struct {
  1285. BaseModel `orm:"_"`
  1286. AttrId string `json:"id"`
  1287. AttrDesc string `json:"fesc"`
  1288. AttrIedType string `json:"iedType"`
  1289. }
  1290. type T_scd_bda_attrs struct {
  1291. BaseModel `orm:"_"`
  1292. AttrName string `json:"name"`
  1293. AttrDesc string `json:"desc"`
  1294. AttrType string `json:"type"`
  1295. AttrBtype string `json:"bType"`
  1296. AttrSaddr string `json:"sAddr"`
  1297. AttrValKind string `json:"valKind"`
  1298. AttrCount string `json:"count"`
  1299. }
  1300. type T_scd_enumtype_attrs struct {
  1301. BaseModel `orm:"_"`
  1302. AttrId string `json:"id"`
  1303. AttrDesc string `json:"desc"`
  1304. }
  1305. type T_scd_enumval_attrs struct {
  1306. BaseModel `orm:"_"`
  1307. AttrOrd string `json:"ord"`
  1308. AttrDesc string `json:"desc"`
  1309. }
  1310. //**************CCD XML模型定义****************
  1311. type CcdIed struct {
  1312. BaseNode //`xml:"-"`
  1313. GOOSEPUB *CcdGOOSEPUB
  1314. GOOSESUB *CcdGOOSESUB
  1315. SVPUB *CcdSVPUB
  1316. SVSUB *CcdSVSUB
  1317. CRC *CcdCrc
  1318. ConfigVersion string `xml:"configVersion,attr"` // 读取type属性
  1319. Manufacturer string `xml:"manufacturer,attr"`
  1320. Desc string `xml:"desc,attr"` // 读取type属性
  1321. Type string `xml:"type,attr"` // 读取type属性
  1322. Name string `xml:"name,attr"` // 读取type属性
  1323. }
  1324. type CcdGOOSEPUB struct {
  1325. BaseNode //`xml:"-"`
  1326. GOCBref []*CcdGOCBref
  1327. }
  1328. type CcdGOOSESUB struct {
  1329. BaseNode //`xml:"-"`
  1330. GOCBref []*CcdGOCBref
  1331. }
  1332. type CcdSVPUB struct {
  1333. BaseNode //`xml:"-"`
  1334. SMVCBref []*CcdSMVCBref
  1335. }
  1336. type CcdSVSUB struct {
  1337. BaseNode //`xml:"-"`
  1338. SMVCBref []*CcdSMVCBref
  1339. }
  1340. type CcdGOCBref struct {
  1341. BaseNode //`xml:"-"`
  1342. Name string `xml:"name,attr"`
  1343. GSEControl *CcdGSEControl
  1344. ConnectedAP *NConnectedAP
  1345. DataSet *CcdDataSet
  1346. }
  1347. type CcdSMVCBref struct {
  1348. BaseNode //`xml:"-"`
  1349. Name string `xml:"name,attr"`
  1350. SampledValueControl *NSampledValueControl
  1351. ConnectedAP *NConnectedAP
  1352. DataSet *CcdDataSet
  1353. }
  1354. type CcdGSEControl struct {
  1355. BaseNode //`xml:"-"`
  1356. AppID string `xml:"appID,attr"`
  1357. ConfRev string `xml:"confRev,attr"`
  1358. DatSet string `xml:"datSet,attr"`
  1359. Name string `xml:"name,attr"`
  1360. Type string `xml:"type,attr"`
  1361. }
  1362. type CcdDataSet struct {
  1363. BaseNode //`xml:"-"`
  1364. FCDA []*CcdFCDA
  1365. Name string `xml:"name,attr"`
  1366. }
  1367. type CcdFCDA struct {
  1368. BaseNode //`xml:"-"`
  1369. DOI *CcdDOI
  1370. DAI *CcdDAI
  1371. IntAddr []*CcdIntAddr
  1372. BType string `xml:"bType,attr"`
  1373. DaName string `xml:"daName,attr"`
  1374. Desc string `xml:"desc,attr"`
  1375. DoName string `xml:"doName,attr"`
  1376. Fc string `xml:"fc,attr"`
  1377. LdInst string `xml:"ldInst,attr"`
  1378. LnClass string `xml:"lnClass,attr"`
  1379. LnInst string `xml:"lnInst,attr"`
  1380. Prefix string `xml:"prefix,attr"`
  1381. }
  1382. type CcdIntAddr struct {
  1383. BaseNode //`xml:"-"`
  1384. DAI *CcdDAI
  1385. DOI *CcdDOI
  1386. Desc string `xml:"desc,attr"`
  1387. Name string `xml:"name,attr"`
  1388. }
  1389. type CcdDOI struct {
  1390. DAI *CcdDAI
  1391. }
  1392. type CcdDAI struct {
  1393. BaseNode //`xml:"-"`
  1394. Name string `xml:"name,attr"`
  1395. SAddr string `xml:"sAddr,attr"`
  1396. Val *NVal `xml:"Val"`
  1397. }
  1398. type CcdCrc struct {
  1399. BaseNode //`xml:"-"`
  1400. Id string `xml:"id,attr"`
  1401. Timestamp string `xml:"timestamp,attr"`
  1402. }
  1403. func init() {
  1404. fmt.Println("注册数据模型定义....")
  1405. orm.RegisterModel(new(T_scd_hitem_attrs))
  1406. orm.RegisterModel(new(T_scd_header_attrs))
  1407. orm.RegisterModel(new(T_scd_scl_attrs))
  1408. orm.RegisterModel(new(T_scd_private_attrs))
  1409. orm.RegisterModel(new(T_scd_substation_attrs))
  1410. orm.RegisterModel(new(T_scd_logsettings_attrs))
  1411. orm.RegisterModel(new(T_scd_reportsettings_attrs))
  1412. orm.RegisterModel(new(T_scd_conflogcontrol_attrs))
  1413. orm.RegisterModel(new(T_scd_confreportcontrol_attrs))
  1414. orm.RegisterModel(new(T_scd_dyndataset_attrs))
  1415. orm.RegisterModel(new(T_scd_confdataset_attrs))
  1416. orm.RegisterModel(new(T_scd_dynassociation_attrs))
  1417. orm.RegisterModel(new(T_scd_ied_attrs))
  1418. orm.RegisterModel(new(T_scd_maxtime_attrs))
  1419. orm.RegisterModel(new(T_scd_mintime_attrs))
  1420. orm.RegisterModel(new(T_scd_connectedap_smv_attrs))
  1421. orm.RegisterModel(new(T_scd_gse_attrs))
  1422. orm.RegisterModel(new(T_scd_physconn_attrs))
  1423. orm.RegisterModel(new(T_scd_p_attrs))
  1424. orm.RegisterModel(new(T_scd_connectedap_attrs))
  1425. orm.RegisterModel(new(T_scd_bitrate_attrs))
  1426. orm.RegisterModel(new(T_scd_subnetwork_attrs))
  1427. orm.RegisterModel(new(T_scd_communication_attrs))
  1428. orm.RegisterModel(new(T_scd_logcontrol_attrs))
  1429. orm.RegisterModel(new(T_scd_clientln_attrs))
  1430. orm.RegisterModel(new(T_scd_rptenabled_attrs))
  1431. orm.RegisterModel(new(T_scd_optfields_attrs))
  1432. orm.RegisterModel(new(T_scd_trgops_attrs))
  1433. orm.RegisterModel(new(T_scd_reportcontrol_attrs))
  1434. orm.RegisterModel(new(T_scd_fccb_attrs))
  1435. orm.RegisterModel(new(T_scd_fcda_attrs))
  1436. orm.RegisterModel(new(T_scd_dataset_attrs))
  1437. orm.RegisterModel(new(T_scd_ln0_attrs))
  1438. orm.RegisterModel(new(T_scd_ldevice_attrs))
  1439. orm.RegisterModel(new(T_scd_authentication_attrs))
  1440. orm.RegisterModel(new(T_scd_server_attrs))
  1441. orm.RegisterModel(new(T_scd_accesspoint_attrs))
  1442. orm.RegisterModel(new(T_scd_clientservices_attrs))
  1443. orm.RegisterModel(new(T_scd_conflns_attrs))
  1444. orm.RegisterModel(new(T_scd_smv_attrs))
  1445. orm.RegisterModel(new(T_scd_gsse_attrs))
  1446. orm.RegisterModel(new(T_scd_goose_attrs))
  1447. orm.RegisterModel(new(T_scd_smvsettings_attrs))
  1448. orm.RegisterModel(new(T_scd_gsesettings_attrs))
  1449. orm.RegisterModel(new(T_scd_val_attrs))
  1450. orm.RegisterModel(new(T_scd_dai_attrs))
  1451. orm.RegisterModel(new(T_scd_sdi_attrs))
  1452. orm.RegisterModel(new(T_scd_doi_attrs))
  1453. orm.RegisterModel(new(T_scd_sclcontrol_attrs))
  1454. orm.RegisterModel(new(T_scd_settingcontrol_attrs))
  1455. orm.RegisterModel(new(T_scd_smvopts_attrs))
  1456. orm.RegisterModel(new(T_scd_sampledvaluecontrol_attrs))
  1457. orm.RegisterModel(new(T_scd_gsecontrol_attrs))
  1458. orm.RegisterModel(new(T_scd_log_attrs))
  1459. orm.RegisterModel(new(T_scd_extref_attrs))
  1460. orm.RegisterModel(new(T_scd_inputs_attrs))
  1461. orm.RegisterModel(new(T_scd_enumval_attrs))
  1462. orm.RegisterModel(new(T_scd_enumtype_attrs))
  1463. orm.RegisterModel(new(T_scd_bda_attrs))
  1464. orm.RegisterModel(new(T_scd_datype_attrs))
  1465. orm.RegisterModel(new(T_scd_da_attrs))
  1466. orm.RegisterModel(new(T_scd_sdo_attrs))
  1467. orm.RegisterModel(new(T_scd_dotype_attrs))
  1468. orm.RegisterModel(new(T_scd_do_attrs))
  1469. orm.RegisterModel(new(T_scd_lnodetype_attrs))
  1470. orm.RegisterModel(new(T_scd_smvsecurity_attrs))
  1471. orm.RegisterModel(new(T_scd_issuername_attrs))
  1472. orm.RegisterModel(new(T_scd_sunject_attrs))
  1473. orm.RegisterModel(new(T_scd_goosesecurity_attrs))
  1474. orm.RegisterModel(new(T_scd_association_attrs))
  1475. orm.RegisterModel(new(T_scd_ln_attrs))
  1476. fmt.Println("完成注册数据模型定义")
  1477. }