From 1f4a51b3271677faeb84732c695097e473923512 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Sat, 18 Dec 2021 00:26:00 +0100 Subject: [PATCH] More work on the protocols --- protocols/schema-bundle.bin | 19 ++++++++++--- protocols/schemas/telephony.prs | 9 +++++- protocols/schemas/ui.prs | 50 +++++++++++++++++++++++++++++++++ 3 files changed, 73 insertions(+), 5 deletions(-) create mode 100644 protocols/schemas/ui.prs diff --git a/protocols/schema-bundle.bin b/protocols/schema-bundle.bin index 1ebfcb7..401cf40 100644 --- a/protocols/schema-bundle.bin +++ b/protocols/schema-bundle.bin @@ -1,8 +1,19 @@ -´³bundle·µ³hayes„´³schema·³version‘³ definitions·³Result´³rec´³lit³result„´³tupleµ´³named³text´³atom³String„„´³named³tag´³refµ„³ MaybeString„„´³named³fields´³refµ„³ MaybeStrings„„„„„³ MaybeString´³orµµ±present´³atom³String„„µ±absent´³lit€„„„„³ MaybeStrings´³orµµ±present´³seqof´³atom³String„„„µ±absent´³lit€„„„„³ ModemPresent´³rec´³lit³modem„´³tupleµ´³lit³hayes„´³named³ -devicePath´³atom³String„„´³named³ dataspace´³embedded´³refµ„³InternalProtocol„„„„„„³ CommandResult´³rec´³lit³command-result„´³tupleµ´³named³ commandText´³atom³String„„´³named³results´³seqof´³refµ„³Result„„„´³named³ finalResult´³atom³String„„„„„³ExecuteCommand´³rec´³lit³execute-command„´³tupleµ´³named³ commandText´³atom³String„„´³named³replyTo´³refµ„³CommandContinuation„„„„„³InternalProtocol³any³CommandContinuation´³orµµ± replyWanted´³embedded´³refµ„³ CommandResult„„„µ± fireAndForget´³lit€„„„„³UnsolicitedResultCode´³rec´³lit³ unsolicited„´³tupleµ´³named³result´³refµ„³Result„„„„„„³ embeddedType€„„µ³ telephony„´³schema·³version‘³ definitions·³CallType´³orµµ±voice´³lit³voice„„µ±data´³lit³data„„µ±fax´³lit³fax„„„„³ CallState´³orµµ±hold´³lit³hold„„µ±original´³lit³original„„µ±connect´³lit³connect„„µ±incoming´³lit³incoming„„µ±waiting´³lit³waiting„„µ±end´³lit³end„„µ±alerting´³lit³alerting„„„„³ +´³bundle·µ³ui„´³schema·³version‘³ definitions·³Fill´³orµµ±fixed´³atom³Double„„µ±fill´³rec´³lit³fill„´³tupleµ´³named³weight´³atom³ SignedInteger„„´³named³rank´³atom³ SignedInteger„„„„„„„„³Click´³rec´³lit³click„´³tupleµ´³named³widget´³refµ„³WidgetId„„„„„³Color´³rec´³lit³rgba„´³tupleµ´³named³red´³atom³Double„„´³named³green´³atom³Double„„´³named³blue´³atom³Double„„´³named³alpha´³atom³Double„„„„„³State´³rec´³lit³state„´³tupleµ´³named³widget´³refµ„³WidgetId„„´³named³key³any„´³named³value³any„„„„³Touch´³rec´³lit³touch„´³tupleµ´³named³widget´³refµ„³WidgetId„„´³named³touchId³any„„„„³Sizing´³rec´³lit³sizing„´³tupleµ´³named³ideal´³atom³Double„„´³named³stretch´³refµ„³Fill„„´³named³shrink´³refµ„³Fill„„„„„³BoxSize´³rec´³lit³box-size„´³tupleµ´³named³ +horizontal´³refµ„³Sizing„„´³named³vertical´³refµ„³Sizing„„„„„³LeafType´³lit³box„³Ordering´³orµµ±double´³atom³Double„„µ±string´³atom³String„„„„³WidgetId³any³ +ShowWidget´³rec´³lit³show„´³tupleµ´³named³ positions´³refµ„³WidgetSelector„„´³named³widget´³refµ„³ +WidgetTree„„´³named³order´³refµ„³Ordering„„´³named³client´³embedded´³refµ„³WidgetClientProtocol„„„„„„³ +WidgetTree´³orµµ±node´³rec´³lit³node„´³tupleµ´³named³ orientation´³refµ„³ Orientation„„´³named³ +attributes´³refµ„³WidgetAttributes„„´³named³children´³seqof´³refµ„³ +WidgetTree„„„„„„„µ±leaf´³rec´³lit³leaf„´³tupleµ´³named³type´³refµ„³LeafType„„´³named³ +attributes´³refµ„³WidgetAttributes„„„„„„„„³ Orientation´³orµµ±vertical´³lit³vertical„„µ± +horizontal´³lit³ +horizontal„„„„³WidgetInstance´³rec´³lit³widget-instance„´³tupleµ´³named³server´³embedded³any„„„„„³WidgetSelector´³orµµ±attributeEquals´³rec´³lit³=„´³tupleµ´³named³key´³atom³Symbol„„´³named³value³any„„„„„µ±and´³rec´³lit³and„´³tupleµ´³named³ selectors´³seqof´³refµ„³WidgetSelector„„„„„„„„„³WidgetAttributes´³dictof´³atom³Symbol„³any„³WidgetClientProtocol´³refµ„³WidgetInstance„„³ embeddedType€„„µ³hayes„´³schema·³version‘³ definitions·³Result´³rec´³lit³result„´³tupleµ´³named³text´³atom³String„„´³named³tag´³refµ„³ MaybeString„„´³named³fields´³refµ„³ MaybeStrings„„„„„³ MaybeString´³orµµ±present´³atom³String„„µ±absent´³lit€„„„„³ MaybeStrings´³orµµ±present´³seqof´³atom³String„„„µ±absent´³lit€„„„„³ ModemPresent´³rec´³lit³modem„´³tupleµ´³lit³hayes„´³named³ +devicePath´³atom³String„„´³named³ dataspace´³embedded´³refµ„³InternalProtocol„„„„„„³ CommandResult´³rec´³lit³command-result„´³tupleµ´³named³ commandText´³atom³String„„´³named³results´³seqof´³refµ„³Result„„„´³named³ finalResult´³atom³String„„„„„³ExecuteCommand´³rec´³lit³execute-command„´³tupleµ´³named³ commandText´³atom³String„„´³named³replyTo´³refµ„³CommandContinuation„„„„„³InternalProtocol³any³CommandContinuation´³orµµ± replyWanted´³embedded´³refµ„³ CommandResult„„„µ± fireAndForget´³lit€„„„„³UnsolicitedResultCode´³rec´³lit³ unsolicited„´³tupleµ´³named³result´³refµ„³Result„„„„„„³ embeddedType€„„µ³ telephony„´³schema·³version‘³ definitions·³CallId´³atom³ SignedInteger„³CallType´³orµµ±voice´³lit³voice„„µ±data´³lit³data„„µ±fax´³lit³fax„„„„³ CallState´³orµµ±hold´³lit³hold„„µ±original´³lit³original„„µ±connect´³lit³connect„„µ±incoming´³lit³incoming„„µ±waiting´³lit³waiting„„µ±end´³lit³end„„µ±alerting´³lit³alerting„„„„³ PlaceCall´³rec´³lit³ +place-call„´³tupleµ´³named³ +devicePath´³atom³String„„´³named³peer´³atom³String„„„„„³ ActiveCall´³rec´³lit³ -call-state„´³tupleµ´³named³callId´³atom³ SignedInteger„„´³named³ direction´³refµ„³ CallDirection„„´³named³type´³refµ„³CallType„„´³named³peer´³atom³String„„´³named³peerNumberType´³refµ„³ +call-state„´³tupleµ´³named³callId´³refµ„³CallId„„´³named³ direction´³refµ„³ CallDirection„„´³named³type´³refµ„³CallType„„´³named³peer´³atom³String„„´³named³peerNumberType´³refµ„³ NumberType„„´³named³state´³refµ„³ CallState„„„„„³ AnswerCall´³rec´³lit³ answer-call„´³tupleµ´³named³callId´³atom³ SignedInteger„„„„„³ NumberType´³orµµ±unknown´³lit³unknown„„µ± international´³lit³ international„„µ±national´³lit³national„„„„³ ModemPresent´³rec´³lit³modem„´³tupleµ´³named³type´³atom³Symbol„„´³named³ -devicePath´³atom³String„„´³named³ dataspace´³embedded³any„„„„„³ ReleaseCause´³orµµ±unassignedNumber´³lit³unassignedNumber„„µ±normal´³lit³normal„„µ±busy´³lit³busy„„µ±noUserResponding´³lit³noUserResponding„„µ± callRejected´³lit³ callRejected„„µ±destinationOutOfOrder´³lit³destinationOutOfOrder„„µ±normalUnspecified´³lit³normalUnspecified„„µ±incompatibleDestination´³lit³incompatibleDestination„„„„³ CallDirection´³orµµ±mo´³lit³mo„„µ±mt´³lit³mt„„„„³CallIdSelector´³orµµ± specificCall´³atom³ SignedInteger„„µ±allCalls´³lit³all„„„„³DisconnectCall´³rec´³lit³disconnect-call„´³tupleµ´³named³callId´³refµ„³CallIdSelector„„´³named³cause´³refµ„³ ReleaseCause„„„„„„³ embeddedType€„„µ³usersAndGroups„´³schema·³version‘³ definitions·³Spec´³orµµ± userAccount´³lit³user„„µ± systemAccount´³lit³system„„µ±id´³atom³ SignedInteger„„„„³Group´³rec´³lit³grent„´³tupleµ´³dict·³gid´³named³gid´³atom³ SignedInteger„„³name´³named³name´³atom³String„„„„„„„³Account´³rec´³lit³pwent„´³tupleµ´³dict·³gid´³named³gid´³atom³ SignedInteger„„³uid´³named³uid´³atom³ SignedInteger„„³home´³named³home´³atom³String„„³info´³named³info´³atom³String„„³name´³named³name´³atom³String„„³shell´³named³shell´³atom³String„„„„„„„³ EnsureGroup´³rec´³lit³ ensure-group„´³tupleµ´³named³name´³atom³String„„´³named³spec´³refµ„³Spec„„„„„³ GroupMember´³rec´³lit³ group-member„´³tupleµ´³named³uid´³atom³ SignedInteger„„´³named³gid´³atom³ SignedInteger„„„„„³ EnsureAccount´³rec´³lit³ensure-account„´³tupleµ´³named³name´³atom³String„„´³named³spec´³refµ„³Spec„„„„„„³ embeddedType€„„„„ \ No newline at end of file +devicePath´³atom³String„„´³named³ dataspace´³embedded³any„„„„„³ ReleaseCause´³orµµ±unassignedNumber´³lit³unassignedNumber„„µ±normal´³lit³normal„„µ±busy´³lit³busy„„µ±noUserResponding´³lit³noUserResponding„„µ± callRejected´³lit³ callRejected„„µ±destinationOutOfOrder´³lit³destinationOutOfOrder„„µ±normalUnspecified´³lit³normalUnspecified„„µ±incompatibleDestination´³lit³incompatibleDestination„„„„³ CallDirection´³orµµ±mo´³lit³mo„„µ±mt´³lit³mt„„„„³CallIdSelector´³orµµ± specificCall´³atom³ SignedInteger„„µ±allCalls´³lit³all„„„„³CallInProgress´³rec´³lit³call-in-progress„´³tupleµ„„„³DisconnectCall´³rec´³lit³disconnect-call„´³tupleµ´³named³callId´³refµ„³CallIdSelector„„´³named³cause´³refµ„³ ReleaseCause„„„„„„³ embeddedType€„„µ³usersAndGroups„´³schema·³version‘³ definitions·³Spec´³orµµ± userAccount´³lit³user„„µ± systemAccount´³lit³system„„µ±id´³atom³ SignedInteger„„„„³Group´³rec´³lit³grent„´³tupleµ´³dict·³gid´³named³gid´³atom³ SignedInteger„„³name´³named³name´³atom³String„„„„„„„³Account´³rec´³lit³pwent„´³tupleµ´³dict·³gid´³named³gid´³atom³ SignedInteger„„³uid´³named³uid´³atom³ SignedInteger„„³home´³named³home´³atom³String„„³info´³named³info´³atom³String„„³name´³named³name´³atom³String„„³shell´³named³shell´³atom³String„„„„„„„³ EnsureGroup´³rec´³lit³ ensure-group„´³tupleµ´³named³name´³atom³String„„´³named³spec´³refµ„³Spec„„„„„³ GroupMember´³rec´³lit³ group-member„´³tupleµ´³named³uid´³atom³ SignedInteger„„´³named³gid´³atom³ SignedInteger„„„„„³ EnsureAccount´³rec´³lit³ensure-account„´³tupleµ´³named³name´³atom³String„„´³named³spec´³refµ„³Spec„„„„„„³ embeddedType€„„„„ \ No newline at end of file diff --git a/protocols/schemas/telephony.prs b/protocols/schemas/telephony.prs index b15715c..c841472 100644 --- a/protocols/schemas/telephony.prs +++ b/protocols/schemas/telephony.prs @@ -4,7 +4,8 @@ version 1 . ModemPresent = . ; Assertion. Describes an ongoing call. -ActiveCall = . +ActiveCall = . +CallId = int . CallDirection = =mo / =mt . CallType = =voice / =data / =fax . NumberType = =unknown / =international / =national . @@ -26,3 +27,9 @@ ReleaseCause = / =normalUnspecified / =incompatibleDestination . + +; Message. Starts an outgoing call. Assumes `international` NumberType. +PlaceCall = . + +; Assertion. Some call is active. +CallInProgress = . diff --git a/protocols/schemas/ui.prs b/protocols/schemas/ui.prs new file mode 100644 index 0000000..8788b76 --- /dev/null +++ b/protocols/schemas/ui.prs @@ -0,0 +1,50 @@ +version 1 . + +; Data types + +WidgetTree = +/ +/ +. + +Orientation = =vertical / =horizontal . +WidgetAttributes = { symbol: any ...:... } . +LeafType = +/ =box +. + +WidgetSelector = +/ @attributeEquals <= @key symbol @value any> +/ +. + +Fill = @fixed double / . +Sizing = . +BoxSize = . + +; Commonly set under key `id` in WidgetAttributes. +WidgetId = any . + +Color = . + +WidgetClientProtocol = WidgetInstance . + +; Assertion +ShowWidget = . +Ordering = @double double / @string string . + +; Assertion +WidgetInstance = . + +; Assertion +Touch = . + +; Message +Click = . + +; Assertion +State = .