ApiCall Entity

API call · API 호출 · API-Aufruf
IRI (semanticId)
https://dualsoftdev.github.io/aas-semantics/entity/ApiCall/1/0

설명 / Description / Beschreibung

한국어
Call 과 ApiDef 의 런타임 바인딩 (실제 값/태그 연결).
English
Concrete binding of a Call to an ApiDef with values / tags at runtime.
Deutsch
Konkrete Bindung eines Calls an eine ApiDef mit Werten / Tags zur Laufzeit.

다이어그램 / Diagram

전체 구조 / Overview — 이 엔티티가 DS 안에서 위치

Project TokenSpec Recipe · #1 DsSystem ApiDef ApiDef TAG Flow Work Call ApiCall ★ Call₂ Work₂ Write Read Write Read DsSystem Work Call ApiCall ApiDef → DsSystem DsSystem Work Call ApiCall ApiDef → DsSystem ArrowWork ArrowCall Tag-Pair Bus ★ ApiCall

엔티티 상세 / Entity Detail — 내부 구조 · 동작

🔗 ApiCall — Call ↔ ApiDef 런타임 바인딩 apiDefId · originFlowId · InTag/OutTag(IOTag) + ValueSpec(DU) Caller (Call) Pickup.Call_1 parent: Work "Pickup" name: "Robot1.MOVE_TO_A" apiCalls[0]: this ApiCall callConditions: [AutoAux] apiDefId binding Guid 매칭 Callee (ApiDef) Robot1.MOVE_TO_A parent: Robot1 (Device) ActionType: Pulse TxGuid → M_Done RxGuid → M_Trigger PLC Tag Bindings — physical address pair InTag (RxGuid 측 — 호출자 → 디바이스) name: "M_Trigger" DataType: BOOL PLC Address: %M001 inputSpec: { Case: "Constant", Fields: [true] } ★ Active 시스템이 WRITE → Passive 시스템이 READ (1:1 페어) OutTag (TxGuid 측 — 디바이스 → 호출자) name: "M_Done" DataType: BOOL PLC Address: %M002 outputSpec: { Case: "UndefinedValue" } ★ 디바이스가 WRITE → Active 시스템이 READ (응답 신호) let apiCall = ApiCall ("MOVE_TO_A_call_1") apiCall.ApiDefId <- Some moveApi.Id // bind to ApiDef apiCall.OriginFlowId <- Some mainFlow.Id // 호출 컨텍스트 추적
상속 체인 / Inheritance: DsEntity

F# 타입 정의 / Type Definition

and ApiCall [<JsonConstructor>] internal (name) =
    inherit DsEntity(name)

    member val InTag        : IOTag option = None    // 호출 트리거 태그
    member val OutTag       : IOTag option = None    // 응답 태그
    member val ApiDefId     : Guid option  = None    // 바인딩된 ApiDef
    member val InputSpec    : ValueSpec    = UndefinedValue
    member val OutputSpec   : ValueSpec    = UndefinedValue
    member val OriginFlowId : Guid option  = None    // 호출하는 Flow Id

필드 / Fields

FieldTypeDefaultAAS fieldDescription
IdGuidGuid.NewGuid()Guid전역 고유 식별자 (자동 생성)
Namestring(생성자 인자)Name엔티티 이름
InTagIOTag optionNoneInTag호출 트리거 태그 (호출자 → 디바이스)
OutTagIOTag optionNoneOutTag응답 태그 (디바이스 → 호출자)
ApiDefIdGuid optionNoneApiDefId바인딩된 ApiDef Id
InputSpecValueSpec DUUndefinedValueInputSpec입력 값 스펙 (상수/태그 참조/표현식)
OutputSpecValueSpec DUUndefinedValueOutputSpec출력 값 스펙
OriginFlowIdGuid optionNoneOriginFlowId호출자 Flow Id (역참조)

관계 / Relationships

예제 (F#) / Example

let apiCall = ApiCall("MOVE_TO_A_call_1")
apiCall.ApiDefId     <- Some moveApi.Id
apiCall.OriginFlowId <- Some mainFlow.Id

let inTag = IOTag("M_Trigger", "M001", "이동 시작 신호")
inTag.DataType <- IOTagDataType.BOOL
apiCall.InTag <- Some inTag

let outTag = IOTag("M_Done", "M002", "이동 완료 신호")
outTag.DataType <- IOTagDataType.BOOL
apiCall.OutTag <- Some outTag

moveCall.ApiCalls.Add(apiCall)

AAS 매핑 / AAS Mapping

ApiCall 은 별도 ApiCalls SML 안 SMC 로 저장 (Call.ApiCalls 는 Skip 마킹). ApiDefId 로 후처리 시 ApiDef 와 결합.

원본 코드 / Source files

AAS ConceptDescription 메타

idShort: ApiCall
dataType: STRING