package models import ( "encoding/xml" "plcopenxmlbuilder/utils" "schema" ) type Resourse struct { XMLName xml.Name `xml:"resource"` Name string `xml:"name,attr"` Task []*Task `xml:"task"` GlobalVars *GlobalVars `xml:"globalVars,omitempty"` } func (r *Resourse) AddTasks(dev *schema.Device) error { for _, task := range dev.Tasks { if err := utils.CheckKindOfTask(task.KindOfTask); err != nil { return err } if err := utils.CheckIntervalUnit(task.IntervalUnit); err != nil { return err } t, err := r.AddTask(task.Name, task.KindOfTask, task.IntervalUnit, task.Interval, task.Priority) if err != nil { return err } t.AddPouInstances(task) } return nil } func (r *Resourse) AddTask(name, kindOfTask, intervalUnit string, interval, priority int) (*Task, error) { t := &Task{ Name: name, Priority: priority, } t.SetInterval(interval) err := t.AddAddData(kindOfTask, intervalUnit, interval) if err != nil { return nil, err } r.Task = append(r.Task, t) return t, nil }