{"id":152,"date":"2015-06-19T14:35:09","date_gmt":"2015-06-19T14:35:09","guid":{"rendered":"http:\/\/carleton.ca\/nmai\/?page_id=152"},"modified":"2026-02-10T10:24:56","modified_gmt":"2026-02-10T15:24:56","slug":"protocol","status":"publish","type":"page","link":"https:\/\/carleton.ca\/nmai\/research-projects\/magenta-2\/protocol\/","title":{"rendered":"Protocol"},"content":{"rendered":"\n<section class=\"w-screen px-6 cu-section cu-section--white ml-offset-center md:px-8 lg:px-14\">\n    <div class=\"space-y-6 cu-max-w-child-5xl  md:space-y-10 cu-prose-first-last\">\n\n            <div class=\"cu-textmedia flex flex-col lg:flex-row mx-auto gap-6 md:gap-10 my-6 md:my-12 first:mt-0 max-w-5xl\">\n        <div class=\"justify-start cu-textmedia-content cu-prose-first-last\" style=\"flex: 0 0 100%;\">\n            <header class=\"font-light prose-xl cu-pageheader md:prose-2xl cu-component-updated cu-prose-first-last\">\n                                    <h1 class=\"cu-prose-first-last font-semibold !mt-2 mb-4 md:mb-6 relative after:absolute after:h-px after:bottom-0 after:bg-cu-red after:left-px text-3xl md:text-4xl lg:text-5xl lg:leading-[3.5rem] pb-5 after:w-10 text-cu-black-700 not-prose\">\n                        Protocol\n                    <\/h1>\n                \n                                \n                            <\/header>\n\n                    <\/div>\n\n            <\/div>\n\n    <\/div>\n<\/section>\n\n<p>The ComManager of a Magenta&nbsp;Agent&nbsp;spends most of its time listening on its assigned port for messages from other Agents. Messages tell the receiving Agent to carry out one of a small set of possible actions. The return value of the command is then returned to the Agent which sent the message.The formats for each of these commands and the expected reply is presented below.<\/p>\n\n\n\n<h2 id=\"createclassnameparent-nodeobject-name\" class=\"wp-block-heading\">create*classname*parent-node*object-name<\/h2>\n\n\n\n<p>Creates an object in the ObjectManager?. All of the parameters have defaults: classname defaults to magenta.GdmoObject, parent-node defaults to root, object-name defaults to concatenation of classname and instancenumber (e.g. magenta.GdmoObject3?).&nbsp;The expected replies are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>create failure reason-string<\/li>\n\n\n\n<li>create success object-full-name<\/li>\n<\/ul>\n\n\n\n<h2 id=\"setobject-full-nameattributevalue\" class=\"wp-block-heading\">set*object-full-name*attribute*value<\/h2>\n\n\n\n<p>Set an attribute of a local object. None of the parameters have defaults.The expected replies are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>set failure reason-string<\/li>\n\n\n\n<li>set success<\/li>\n<\/ul>\n\n\n\n<h2 id=\"getobject-full-nameattribute\" class=\"wp-block-heading\">get*object-full-name*attribute<\/h2>\n\n\n\n<p>Get an attribute of a local object. All of the parameters have defaults: object-full-name defaults to root and attribute defaults to Name.The expected replies are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>get failure reason-string<\/li>\n\n\n\n<li>get success object-full-name::attribute=value<\/li>\n<\/ul>\n\n\n\n<h2 id=\"deleteobject-full-name\" class=\"wp-block-heading\">delete*object-full-name<\/h2>\n\n\n\n<p>Delete a local object and any objects beneath it in the tree. None of the parameters have defaults.The expected replies are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>delete failure reason-string<\/li>\n\n\n\n<li>delete success object-full-name (object that was deleted)<\/li>\n<\/ul>\n\n\n\n<h2 id=\"print\" class=\"wp-block-heading\">print<\/h2>\n\n\n\n<p>Print the contents of the ObjectManager?.The expected reply is an ordered listing of the contents of the ObjectManager?&nbsp;in the format:<\/p>\n\n\n\n<p>object1-full-name [class: classname name: node-name attribute1: attribute1-value attribute2: attribute2-value] :: object2-full-name&#8230;etc.<\/p>\n\n\n\n<p>for example:<\/p>\n\n\n\n<p>root [class: CLIManager name: root&nbsp;HostInfo: localhost:4444] :: root\/magenta.GdmoObject0?&nbsp;[class: magenta.GdmoObject&nbsp;name: magenta.GdmoObject0?] ::<\/p>\n\n\n\n<p class=\"has-text-align-center\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The ComManager of a Magenta&nbsp;Agent&nbsp;spends most of its time listening on its assigned port for messages from other Agents. Messages tell the receiving Agent to carry out one of a small set of possible actions. The return value of the command is then returned to the Agent which sent the message.The formats for each of [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":145,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_cu_dining_location_slug":"","footnotes":"","_links_to":"","_links_to_target":""},"cu_page_type":[],"class_list":["post-152","page","type-page","status-publish","hentry"],"acf":{"cu_post_thumbnail":false},"_links":{"self":[{"href":"https:\/\/carleton.ca\/nmai\/wp-json\/wp\/v2\/pages\/152","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/carleton.ca\/nmai\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/carleton.ca\/nmai\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/carleton.ca\/nmai\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/carleton.ca\/nmai\/wp-json\/wp\/v2\/comments?post=152"}],"version-history":[{"count":2,"href":"https:\/\/carleton.ca\/nmai\/wp-json\/wp\/v2\/pages\/152\/revisions"}],"predecessor-version":[{"id":158,"href":"https:\/\/carleton.ca\/nmai\/wp-json\/wp\/v2\/pages\/152\/revisions\/158"}],"up":[{"embeddable":true,"href":"https:\/\/carleton.ca\/nmai\/wp-json\/wp\/v2\/pages\/145"}],"wp:attachment":[{"href":"https:\/\/carleton.ca\/nmai\/wp-json\/wp\/v2\/media?parent=152"}],"wp:term":[{"taxonomy":"cu_page_type","embeddable":true,"href":"https:\/\/carleton.ca\/nmai\/wp-json\/wp\/v2\/cu_page_type?post=152"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}