新增结点

This commit is contained in:
boyce
2025-11-27 09:15:18 +08:00
parent eaf20c4e3a
commit 75660bdec0
3 changed files with 68 additions and 2 deletions

View File

@@ -69,6 +69,8 @@ func (bm *Blueprint) regSysNodes() {
bm.RegisterExecNode(NewExecNode[EqualSwitch]()) bm.RegisterExecNode(NewExecNode[EqualSwitch]())
bm.RegisterExecNode(NewExecNode[Probability]()) bm.RegisterExecNode(NewExecNode[Probability]())
bm.RegisterExecNode(NewExecNode[CreateTimer]()) bm.RegisterExecNode(NewExecNode[CreateTimer]())
bm.RegisterExecNode(NewExecNode[AppendIntReturn]())
bm.RegisterExecNode(NewExecNode[AppendStringReturn]())
} }

View File

@@ -142,6 +142,17 @@ func (gc *graphConfig) GetNodeByID(nodeID string) *nodeConfig {
return nil return nil
} }
func (gr *Graph) GetAndCreateReturnPort() IPort {
p, ok := gr.globalVariables[ReturnVarial]
if ok {
return p
}
p = NewPortArray()
gr.globalVariables[ReturnVarial] = p
return p
}
func (gr *Graph) Do(entranceID int64, args ...any) (Port_Array, error) { func (gr *Graph) Do(entranceID int64, args ...any) (Port_Array, error) {
if IsDebug { if IsDebug {
log.Debug("Graph Do", log.String("graphName", gr.graphFileName), log.Int64("graphID", gr.graphID), log.Int64("entranceID", entranceID)) log.Debug("Graph Do", log.String("graphName", gr.graphFileName), log.Int64("graphID", gr.graphID), log.Int64("entranceID", entranceID))

View File

@@ -681,7 +681,7 @@ func (em *CreateTimer) Exec() (int, error) {
array, ok := em.GetInPortArray(1) array, ok := em.GetInPortArray(1)
if !ok { if !ok {
return -1, fmt.Errorf("CreateTimer inParam 0 error") return -1, fmt.Errorf("CreateTimer inParam 1 error")
} }
var timerId uint64 var timerId uint64
@@ -718,7 +718,7 @@ func (em *CloseTimer) GetName() string {
func (em *CloseTimer) Exec() (int, error) { func (em *CloseTimer) Exec() (int, error) {
timerID, ok := em.GetInPortInt(1) timerID, ok := em.GetInPortInt(1)
if !ok { if !ok {
return -1, fmt.Errorf("CreateTimer inParam 0 error") return -1, fmt.Errorf("CreateTimer inParam 1 error")
} }
id := uint64(timerID) id := uint64(timerID)
@@ -729,3 +729,56 @@ func (em *CloseTimer) Exec() (int, error) {
return 0, nil return 0, nil
} }
// AppendIntReturn 追加返回结果(Int)
type AppendIntReturn struct {
BaseExecNode
}
func (em *AppendIntReturn) GetName() string {
return "AppendIntReturn"
}
func (em *AppendIntReturn) Exec() (int, error) {
val, ok := em.GetInPortInt(1)
if !ok {
return -1, fmt.Errorf("AppendIntReturn inParam 1 error")
}
returnPort := em.gr.GetAndCreateReturnPort()
if returnPort == nil {
return -1, fmt.Errorf("GetAndCreateReturnPort fail")
}
returnPort.AppendArrayValInt(val)
return -0, nil
}
// AppendStringReturn 追加返回结果(String)
type AppendStringReturn struct {
BaseExecNode
}
func (em *AppendStringReturn) GetName() string {
return "AppendStringReturn"
}
func (em *AppendStringReturn) Exec() (int, error) {
val, ok := em.GetInPortStr(1)
if !ok {
return -1, fmt.Errorf("AppendStringReturn inParam 1 error")
}
returnPort := em.gr.GetAndCreateReturnPort()
if returnPort == nil {
return -1, fmt.Errorf("GetAndCreateReturnPort fail")
}
returnPort.AppendArrayValStr(val)
return -0, nil
}