{"id":2064,"date":"2023-11-25T07:25:05","date_gmt":"2023-11-25T07:25:05","guid":{"rendered":"https:\/\/simulide.com\/p\/?page_id=2064"},"modified":"2024-03-11T01:10:08","modified_gmt":"2024-03-11T01:10:08","slug":"scripted","status":"publish","type":"page","link":"https:\/\/simulide.com\/p\/scripted\/","title":{"rendered":"Scripted"},"content":{"rendered":"<style>.kb-row-layout-id2064_d2e989-db > .kt-row-column-wrap{align-content:start;}:where(.kb-row-layout-id2064_d2e989-db > .kt-row-column-wrap) > .wp-block-kadence-column{justify-content:start;}.kb-row-layout-id2064_d2e989-db > .kt-row-column-wrap{column-gap:var(--global-kb-gap-none, 0rem );row-gap:var(--global-kb-gap-none, 0rem );padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;grid-template-columns:minmax(0, calc(20% - ((var(--global-kb-gap-none, 0rem ) * 1 )\/2)))minmax(0, calc(80% - ((var(--global-kb-gap-none, 0rem ) * 1 )\/2)));}.kb-row-layout-id2064_d2e989-db > .kt-row-layout-overlay{opacity:0.30;background-color:var(--global-palette9, #ffffff);}@media all and (max-width: 1024px){.kb-row-layout-id2064_d2e989-db > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr) minmax(0, 2fr);}}@media all and (max-width: 767px){.kb-row-layout-id2064_d2e989-db > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr);}}<\/style><div class=\"kb-row-layout-wrap kb-row-layout-id2064_d2e989-db alignnone kt-row-has-bg wp-block-kadence-rowlayout\"><div class=\"kt-row-layout-overlay kt-row-overlay-normal\"><\/div><div class=\"kt-row-column-wrap kt-has-2-columns kt-row-layout-right-golden kt-tab-layout-inherit kt-mobile-layout-row kt-row-valign-top\">\n<style>#wrapper.site{overflow:clip;}.kadence-column2064_16febe-49{--kb-section-setting-offset:50px;}.kadence-column2064_16febe-49 > .kt-inside-inner-col,.kadence-column2064_16febe-49 > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column2064_16febe-49 > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column2064_16febe-49 > .kt-inside-inner-col{flex-direction:column;}.kadence-column2064_16febe-49 > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column2064_16febe-49 > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column2064_16febe-49{position:relative;}@media all and (max-width: 1024px){.kadence-column2064_16febe-49 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column2064_16febe-49 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column2064_16febe-49 kb-section-is-sticky\"><div class=\"kt-inside-inner-col\">\n<p class=\"has-medium-font-size\"><a href=\"https:\/\/simulide.com\/p\/simulidekb\/\" data-type=\"link\" data-id=\"https:\/\/simulide.live\/p\/simulidekb\/\"><strong>Index<\/strong><\/a><\/p>\n\n\n<style>.kt-accordion-id534_f8b077-cf .kt-accordion-inner-wrap{column-gap:var(--global-kb-gap-md, 2rem);row-gap:0px;}.kt-accordion-id534_f8b077-cf .kt-accordion-panel-inner{border-top:0px solid transparent;border-right:0px solid transparent;border-bottom:0px solid transparent;border-left:0px solid transparent;background:#ffffff;padding-top:0px;padding-right:0px;padding-bottom:var(--global-kb-spacing-xxs, 0.5rem);padding-left:0px;}.kt-accordion-id534_f8b077-cf > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header{border-top:0px solid #f2f2f2;border-right:0px solid #f2f2f2;border-bottom:0px solid #f2f2f2;border-left:0px solid #f2f2f2;border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;background:#ffffff;font-size:var(--global-kb-font-size-sm, 0.9rem);font-weight:600;color:#444444;padding-top:6px;padding-right:30px;padding-bottom:0px;padding-left:0px;}.kt-accordion-id534_f8b077-cf:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id534_f8b077-cf:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap .kt-blocks-accordion-icon-trigger:before{background:#444444;}.kt-accordion-id534_f8b077-cf:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-icon-trigger{background:#444444;}.kt-accordion-id534_f8b077-cf:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id534_f8b077-cf:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-icon-trigger:before{background:#ffffff;}.kt-accordion-id534_f8b077-cf > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header:hover, \n\t\t\t\tbody:not(.hide-focus-outline) .kt-accordion-id534_f8b077-cf .kt-blocks-accordion-header:focus-visible{color:#444444;background:#ffffff;border-top-color:#eeeeee;border-top-style:solid;border-right-color:#eeeeee;border-right-style:solid;border-bottom-color:#eeeeee;border-bottom-style:solid;border-left-color:#eeeeee;border-left-style:solid;}.kt-accordion-id534_f8b077-cf:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id534_f8b077-cf:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:before, body:not(.hide-focus-outline) .kt-accordion-id534_f8b077-cf:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-blocks-accordion--visible .kt-blocks-accordion-icon-trigger:after, body:not(.hide-focus-outline) .kt-accordion-id534_f8b077-cf:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger:before{background:#444444;}.kt-accordion-id534_f8b077-cf:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger, body:not(.hide-focus-outline) .kt-accordion-id534_f8b077-cf:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger{background:#444444;}.kt-accordion-id534_f8b077-cf:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id534_f8b077-cf:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:before, body:not(.hide-focus-outline) .kt-accordion-id534_f8b077-cf:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger:after, body:not(.hide-focus-outline) .kt-accordion-id534_f8b077-cf:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger:before{background:#ffffff;}.kt-accordion-id534_f8b077-cf .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible,\n\t\t\t\t.kt-accordion-id534_f8b077-cf > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active{color:#333333;background:#ffffff;border-top-color:#0e9cd1;border-top-style:solid;border-right-color:#0e9cd1;border-right-style:solid;border-bottom-color:#0e9cd1;border-bottom-style:solid;border-left-color:#0e9cd1;border-left-style:solid;}.kt-accordion-id534_f8b077-cf:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id534_f8b077-cf:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:before{background:#333333;}.kt-accordion-id534_f8b077-cf:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger{background:#333333;}.kt-accordion-id534_f8b077-cf:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id534_f8b077-cf:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:before{background:#ffffff;}@media all and (max-width: 1024px){.kt-accordion-id534_f8b077-cf .kt-accordion-panel-inner{border-top:0px solid transparent;border-right:0px solid transparent;border-bottom:0px solid transparent;border-left:0px solid transparent;}}@media all and (max-width: 1024px){.kt-accordion-id534_f8b077-cf > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header{border-top:0px solid #f2f2f2;border-right:0px solid #f2f2f2;border-bottom:0px solid #f2f2f2;border-left:0px solid #f2f2f2;}}@media all and (max-width: 1024px){.kt-accordion-id534_f8b077-cf > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header:hover, \n\t\t\t\tbody:not(.hide-focus-outline) .kt-accordion-id534_f8b077-cf .kt-blocks-accordion-header:focus-visible{border-top-color:#eeeeee;border-top-style:solid;border-right-color:#eeeeee;border-right-style:solid;border-bottom-color:#eeeeee;border-bottom-style:solid;border-left-color:#eeeeee;border-left-style:solid;}}@media all and (max-width: 1024px){.kt-accordion-id534_f8b077-cf .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible,\n\t\t\t\t.kt-accordion-id534_f8b077-cf > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active{border-top-color:#0e9cd1;border-top-style:solid;border-right-color:#0e9cd1;border-right-style:solid;border-bottom-color:#0e9cd1;border-bottom-style:solid;border-left-color:#0e9cd1;border-left-style:solid;}}@media all and (max-width: 767px){.kt-accordion-id534_f8b077-cf .kt-accordion-inner-wrap{display:block;}.kt-accordion-id534_f8b077-cf .kt-accordion-inner-wrap .kt-accordion-pane:not(:first-child){margin-top:0px;}.kt-accordion-id534_f8b077-cf .kt-accordion-panel-inner{border-top:0px solid transparent;border-right:0px solid transparent;border-bottom:0px solid transparent;border-left:0px solid transparent;}.kt-accordion-id534_f8b077-cf > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header{border-top:0px solid #f2f2f2;border-right:0px solid #f2f2f2;border-bottom:0px solid #f2f2f2;border-left:0px solid #f2f2f2;}.kt-accordion-id534_f8b077-cf > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header:hover, \n\t\t\t\tbody:not(.hide-focus-outline) .kt-accordion-id534_f8b077-cf .kt-blocks-accordion-header:focus-visible{border-top-color:#eeeeee;border-top-style:solid;border-right-color:#eeeeee;border-right-style:solid;border-bottom-color:#eeeeee;border-bottom-style:solid;border-left-color:#eeeeee;border-left-style:solid;}.kt-accordion-id534_f8b077-cf .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible,\n\t\t\t\t.kt-accordion-id534_f8b077-cf > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active{border-top-color:#0e9cd1;border-top-style:solid;border-right-color:#0e9cd1;border-right-style:solid;border-bottom-color:#0e9cd1;border-bottom-style:solid;border-left-color:#0e9cd1;border-left-style:solid;}}<\/style>\n<div class=\"wp-block-kadence-accordion alignnone\"><div class=\"kt-accordion-wrap kt-accordion-id534_f8b077-cf kt-accordion-has-7-panes kt-active-pane-1 kt-accordion-block kt-pane-header-alignment-left kt-accodion-icon-style-arrow kt-accodion-icon-side-left\" style=\"max-width:none\"><div class=\"kt-accordion-inner-wrap\" data-allow-multiple-open=\"true\" data-start-open=\"1\">\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-2 kt-pane534_97206f-18\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\">Application<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\">\n<ul style=\"margin-right:0;margin-left:0;font-size:14px\" class=\"wp-block-list\">\n<li style=\"font-style:normal;font-weight:400\"><a href=\"https:\/\/simulide.com\/p\/basic-use\/\" data-type=\"link\" data-id=\"https:\/\/simulide.live\/p\/circuit-tool-bar\/\">Basic use.<\/a><\/li>\n\n\n\n<li style=\"font-style:normal;font-weight:400\"><a href=\"https:\/\/simulide.com\/p\/settings\/\" data-type=\"link\" data-id=\"https:\/\/simulide.live\/p\/circuit-canvas\/\">Settings.<\/a><\/li>\n\n\n\n<li style=\"font-style:normal;font-weight:400\"><a href=\"https:\/\/simulide.com\/p\/message-panel\/\">Message panels.<\/a><\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-3 kt-pane534_2578b0-9d\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\">Circuit<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\">\n<ul style=\"font-size:14px\" class=\"wp-block-list\">\n<li style=\"font-style:normal;font-weight:400\"><a href=\"https:\/\/simulide.com\/p\/circuit-tool-bar\/\" data-type=\"link\" data-id=\"https:\/\/simulide.live\/p\/circuit-tool-bar\/\">Circuit tool bar.<\/a><\/li>\n\n\n\n<li style=\"font-style:normal;font-weight:400\"><a href=\"https:\/\/simulide.com\/p\/circuit-canvas\/\" data-type=\"link\" data-id=\"https:\/\/simulide.live\/p\/circuit-canvas\/\">Circuit canvas.<\/a><\/li>\n\n\n\n<li style=\"font-style:normal;font-weight:400\"><a href=\"https:\/\/simulide.com\/p\/circuit-animation\/\">Circuit animation.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/simulide.com\/p\/info-panel\/\">Info panel.<\/a><\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-5 kt-pane534_8fa430-37\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\">Components<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\">\n<ul style=\"font-size:14px\" class=\"wp-block-list\">\n<li style=\"font-style:normal;font-weight:400\"><a href=\"https:\/\/simulide.com\/p\/component\/\">Components.<\/a><\/li>\n\n\n\n<li style=\"font-style:normal;font-weight:400\"><a href=\"https:\/\/simulide.com\/p\/component-list\" data-type=\"link\" data-id=\"https:\/\/simulide.live\/p\/component-list\">Component list.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/simulide.com\/p\/logic-components\/\">Logic Components.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/simulide.com\/p\/mcus\/\">Microcontrollers.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/simulide.com\/p\/scripted\/\">Scripted.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/simulide.com\/p\/linking-components\/\">Linking Components<\/a>.<\/li>\n\n\n\n<li><a href=\"https:\/\/simulide.com\/p\/custom-components\/\">Custom Components.<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/simulide.com\/p\/subcircuits\/\">Subcircuits<\/a><\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-4 kt-pane534_59e65b-35\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\">Editor\/Compiler<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\">\n<ul style=\"font-size:14px\" class=\"wp-block-list\">\n<li style=\"font-style:normal;font-weight:400\"><a href=\"https:\/\/simulide.com\/p\/code-editor\/\" data-type=\"link\" data-id=\"https:\/\/simulide.live\/p\/code-editor\/\">Code Editor.<\/a><\/li>\n\n\n\n<li style=\"font-style:normal;font-weight:400\"><a href=\"https:\/\/simulide.com\/p\/compiler\/\" data-type=\"link\" data-id=\"https:\/\/simulide.live\/p\/compiler\/\">Compiler.<\/a><\/li>\n\n\n\n<li style=\"font-style:normal;font-weight:400\"><a href=\"https:\/\/simulide.com\/p\/debugger\/\" data-type=\"link\" data-id=\"https:\/\/simulide.live\/p\/debugger\/\">Debugger.<\/a><\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-6 kt-pane534_d28897-c1\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\">Files<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\">\n<ul style=\"font-size:14px\" class=\"wp-block-list\">\n<li style=\"font-style:normal;font-weight:400\"><a href=\"https:\/\/simulide.com\/p\/file-explorer\/\" data-type=\"link\" data-id=\"https:\/\/simulide.live\/p\/file-explorer\/\">File explorer.<\/a><\/li>\n\n\n\n<li style=\"font-style:normal;font-weight:400\"><a href=\"https:\/\/simulide.com\/p\/file-organization\/\">File organization.<\/a><\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-7 kt-pane534_ce48b7-34\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\">Development<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\">\n<ul style=\"font-size:14px\" class=\"wp-block-list\">\n<li style=\"font-style:normal;font-weight:400\"><a href=\"https:\/\/simulide.com\/p\/source-code\/\" data-type=\"link\" data-id=\"https:\/\/simulide.live\/p\/source-code\/\">Source code.<\/a><\/li>\n\n\n\n<li style=\"font-style:normal;font-weight:400\"><a href=\"https:\/\/simulide.com\/p\/dependencies\/\" data-type=\"link\" data-id=\"https:\/\/simulide.live\/p\/dependencies\/\">Dependencies.<\/a><\/li>\n<\/ul>\n<\/div><\/div><\/div>\n<\/div><\/div><\/div>\n<\/div><\/div>\n\n\n<style>.kadence-column2064_871f2a-3f > .kt-inside-inner-col{display:flex;}.kadence-column2064_871f2a-3f > .kt-inside-inner-col,.kadence-column2064_871f2a-3f > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column2064_871f2a-3f > .kt-inside-inner-col{row-gap:20px;column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column2064_871f2a-3f > .kt-inside-inner-col{flex-direction:column;}.kadence-column2064_871f2a-3f > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column2064_871f2a-3f > .kt-inside-inner-col{background-color:var(--global-palette9, #ffffff);}.kadence-column2064_871f2a-3f > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column2064_871f2a-3f{position:relative;}@media all and (max-width: 1024px){.kadence-column2064_871f2a-3f > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column2064_871f2a-3f > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column2064_871f2a-3f\"><div class=\"kt-inside-inner-col\"><style>.wp-block-kadence-advancedheading.kt-adv-heading2064_9b4fe3-83, .wp-block-kadence-advancedheading.kt-adv-heading2064_9b4fe3-83[data-kb-block=\"kb-adv-heading2064_9b4fe3-83\"]{text-align:center;font-style:normal;background-color:#f0f0d2;text-shadow:-1.2px 1.2px 1.1px rgba(0,0,0,0.3);border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:5px;}.wp-block-kadence-advancedheading.kt-adv-heading2064_9b4fe3-83 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading2064_9b4fe3-83[data-kb-block=\"kb-adv-heading2064_9b4fe3-83\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading2064_9b4fe3-83 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading2064_9b4fe3-83[data-kb-block=\"kb-adv-heading2064_9b4fe3-83\"] img.kb-inline-image{width:150px;vertical-align:baseline;}@media all and (max-width: 1024px){.wp-block-kadence-advancedheading.kt-adv-heading2064_9b4fe3-83, .wp-block-kadence-advancedheading.kt-adv-heading2064_9b4fe3-83[data-kb-block=\"kb-adv-heading2064_9b4fe3-83\"]{text-shadow:-1.2px 1.2px 1.1px rgba(0,0,0,0.3);}}@media all and (max-width: 767px){.wp-block-kadence-advancedheading.kt-adv-heading2064_9b4fe3-83, .wp-block-kadence-advancedheading.kt-adv-heading2064_9b4fe3-83[data-kb-block=\"kb-adv-heading2064_9b4fe3-83\"]{text-shadow:-1.2px 1.2px 1.1px rgba(0,0,0,0.3);}}<\/style>\n<h1 class=\"kt-adv-heading2064_9b4fe3-83 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading2064_9b4fe3-83\">SimulIDE Knowledge Base<br>&#8211; SCRIPTED COMPONENTS &#8211;<\/h1>\n\n\n<div class=\"external-markdown\"><p>(This feature is not available in version 1.0.0)<br><\/p>\n<p>Scripted components are a type of <a href=\"\/p\/modular\">Modular<\/a> Components, with an extra file containing a script to define the behaviour of the device.<br><\/p>\n<p>Creating an Scripted component involves these steps:<\/p>\n<ol type=\"1\">\n<li><a href=\"\/p\/package\/#creating-package-file\">Creating Package File.<\/a><\/li>\n<li>Creating <a href=\"\/p\/definition-file\">Definition file<\/a>.<\/li>\n<li><a href=\"#creating-script-file.\">Creating Script file.<\/a><\/li>\n<li><a href=\"#creating-component-folder\">Creating component folder<\/a> with all files.<\/li>\n<li><a href=\"\/p\/modular\/#add-to-component-list\">Add to component list.<\/a><\/li>\n<\/ol>\n<hr \/>\n<h1 id=\"creating-definition-file.\">Creating <a href=\"\/p\/definition-file\">Definition file<\/a>.<\/h1>\n<p>This are xml files describing which kind of component it is and the parts or modules it contains.<br><\/p>\n<h2 id=\"root-element\">Root element:<\/h2>\n<p>The principal characteristics are defined in the root element.<br> <strong>The tag name can be anything you want<\/strong>, typical names are: \u201cmcu\u201d for microcontrollers or \u201ciou\u201d meaning Input\/Output Unit.<br> Possible fields in the root element are the same for all <a href=\"\/p\/modular\">Modular<\/a> Components<\/p>\n<div class=\"sourceCode\" id=\"cb1\"><pre class=\"sourceCode xml\"><code class=\"sourceCode xml\"><span id=\"cb1-1\"><a href=\"#cb1-1\" aria-hidden=\"true\"><\/a>    <span class=\"kw\">&lt;iou<\/span><span class=\"ot\"> name=<\/span><span class=\"st\">&quot;comp_name&quot;<\/span><span class=\"ot\"> core=<\/span><span class=\"st\">&quot;scripted&quot;<\/span><span class=\"ot\"> script=<\/span><span class=\"st\">&quot;file.as&quot;<\/span> <span class=\"kw\">&gt;<\/span><\/span>\n<span id=\"cb1-2\"><a href=\"#cb1-2\" aria-hidden=\"true\"><\/a>    <span class=\"kw\">&lt;\/iou&gt;<\/span><\/span><\/code><\/pre><\/div>\n<p>We can see that <strong>core<\/strong> is set to <em>\u201cscripted\u201d<\/em> , so this is an Scripted component, and the <strong>script<\/strong> is in <em>\u201cfile.as\u201d<\/em> .<br><\/p>\n<p>These are some modules and features you can add to a Scripted Component:<\/p>\n<h2 id=\"properties\">Properties:<\/h2>\n<p>You can add properties to configure some settings in your component.<br><\/p>\n<div class=\"sourceCode\" id=\"cb2\"><pre class=\"sourceCode xml\"><code class=\"sourceCode xml\"><span id=\"cb2-1\"><a href=\"#cb2-1\" aria-hidden=\"true\"><\/a>    <span class=\"kw\">&lt;iou<\/span><span class=\"ot\"> name=<\/span><span class=\"st\">&quot;comp_name&quot;<\/span><span class=\"ot\"> core=<\/span><span class=\"st\">&quot;scripted&quot;<\/span><span class=\"ot\"> script=<\/span><span class=\"st\">&quot;file.as&quot;<\/span> <span class=\"kw\">&gt;<\/span><\/span>\n<span id=\"cb2-2\"><a href=\"#cb2-2\" aria-hidden=\"true\"><\/a><\/span>\n<span id=\"cb2-3\"><a href=\"#cb2-3\" aria-hidden=\"true\"><\/a>      <span class=\"kw\">&lt;propertygroup<\/span><span class=\"ot\"> name=<\/span><span class=\"st\">&quot;group name&quot;<\/span><span class=\"kw\">&gt;<\/span><\/span>\n<span id=\"cb2-4\"><a href=\"#cb2-4\" aria-hidden=\"true\"><\/a>        <span class=\"kw\">&lt;property<\/span><span class=\"ot\"> name=<\/span><span class=\"st\">&quot;Prop1&quot;<\/span><span class=\"ot\"> type=<\/span><span class=\"st\">&quot;double&quot;<\/span> <span class=\"kw\">\/&gt;<\/span><\/span>\n<span id=\"cb2-5\"><a href=\"#cb2-5\" aria-hidden=\"true\"><\/a>        <span class=\"kw\">&lt;property<\/span><span class=\"ot\"> name=<\/span><span class=\"st\">&quot;Prop2&quot;<\/span><span class=\"ot\"> type=<\/span><span class=\"st\">&quot;uint&quot;<\/span>   <span class=\"kw\">\/&gt;<\/span><\/span>\n<span id=\"cb2-6\"><a href=\"#cb2-6\" aria-hidden=\"true\"><\/a>      <span class=\"kw\">&lt;\/propertygroup&gt;<\/span><\/span>\n<span id=\"cb2-7\"><a href=\"#cb2-7\" aria-hidden=\"true\"><\/a><\/span>\n<span id=\"cb2-8\"><a href=\"#cb2-8\" aria-hidden=\"true\"><\/a>    <span class=\"kw\">&lt;\/iou&gt;<\/span><\/span><\/code><\/pre><\/div>\n<p>We can see that there is a property group with 2 properties.<br> The property group has a field <strong>name<\/strong>, this is the name shown in the property dialog.<br><\/p>\n<p>Each property has 2 fields:<\/p>\n<ul>\n<li><strong>name:<\/strong> property name.<\/li>\n<li><strong>type:<\/strong> data type ( bool, double, int, uint, string ).<\/li>\n<\/ul>\n<p><strong>The script must implement property getters and setters:<\/strong><\/p>\n<div class=\"sourceCode\" id=\"cb3\"><pre class=\"sourceCode c\"><code class=\"sourceCode c\"><span id=\"cb3-1\"><a href=\"#cb3-1\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> setProp1( <span class=\"dt\">double<\/span> val )<\/span>\n<span id=\"cb3-2\"><a href=\"#cb3-2\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">double<\/span> getProp1()<\/span>\n<span id=\"cb3-3\"><a href=\"#cb3-3\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> setProp2( uint val )<\/span>\n<span id=\"cb3-4\"><a href=\"#cb3-4\" aria-hidden=\"true\"><\/a>    uint getProp2()<\/span><\/code><\/pre><\/div>\n<p>These getters and setters are called from the <a href=\"\/p\/-properties-dialog\"> Properties dialog<\/a> in the GUI.<br> Typically the script has a variable to hold the property value.<\/p>\n<p>When the setter is called, the script can apply any constrains to the value (like maximum or minimum value) and store it in that variable.<\/p>\n<p>When the getter is called, the script typically returns the value of that variable. <br><\/p>\n<hr \/>\n<h2 id=\"io-ports\">IO Ports:<\/h2>\n<h3 id=\"definition-file\">Definition file:<\/h3>\n<div class=\"sourceCode\" id=\"cb4\"><pre class=\"sourceCode xml\"><code class=\"sourceCode xml\"><span id=\"cb4-1\"><a href=\"#cb4-1\" aria-hidden=\"true\"><\/a>    <span class=\"kw\">&lt;iou<\/span><span class=\"ot\"> name=<\/span><span class=\"st\">&quot;comp_name&quot;<\/span><span class=\"ot\"> core=<\/span><span class=\"st\">&quot;scripted&quot;<\/span><span class=\"ot\"> script=<\/span><span class=\"st\">&quot;file.as&quot;<\/span> <span class=\"kw\">&gt;<\/span><\/span>\n<span id=\"cb4-2\"><a href=\"#cb4-2\" aria-hidden=\"true\"><\/a><\/span>\n<span id=\"cb4-3\"><a href=\"#cb4-3\" aria-hidden=\"true\"><\/a>      <span class=\"kw\">&lt;ioport<\/span><span class=\"ot\"> name=<\/span><span class=\"st\">&quot;PORTA&quot;<\/span><span class=\"ot\"> pins=<\/span><span class=\"st\">&quot;A,B,C,D,E,F&quot;<\/span> <span class=\"kw\">\/&gt;<\/span><\/span>\n<span id=\"cb4-4\"><a href=\"#cb4-4\" aria-hidden=\"true\"><\/a><\/span>\n<span id=\"cb4-5\"><a href=\"#cb4-5\" aria-hidden=\"true\"><\/a>    <span class=\"kw\">&lt;\/iou&gt;<\/span><\/span><\/code><\/pre><\/div>\n<p>Each port has 2 fields:<\/p>\n<ul>\n<li><strong>name:<\/strong>\u00a0property name.<\/li>\n<li><strong>pins:<\/strong>\u00a0list of pin names separated by commas.<\/li>\n<\/ul>\n<p><br><\/p>\n<hr \/>\n<h2 id=\"communications\">Communications:<\/h2>\n<p>You can add some modules for communications.<br><\/p>\n<h3 id=\"uart\">UART:<\/h3>\n<div class=\"sourceCode\" id=\"cb5\"><pre class=\"sourceCode xml\"><code class=\"sourceCode xml\"><span id=\"cb5-1\"><a href=\"#cb5-1\" aria-hidden=\"true\"><\/a>    <span class=\"kw\">&lt;iou<\/span><span class=\"ot\"> name=<\/span><span class=\"st\">&quot;comp_name&quot;<\/span><span class=\"ot\"> core=<\/span><span class=\"st\">&quot;scripted&quot;<\/span><span class=\"ot\"> script=<\/span><span class=\"st\">&quot;file.as&quot;<\/span> <span class=\"kw\">&gt;<\/span><\/span>\n<span id=\"cb5-2\"><a href=\"#cb5-2\" aria-hidden=\"true\"><\/a><\/span>\n<span id=\"cb5-3\"><a href=\"#cb5-3\" aria-hidden=\"true\"><\/a>      <span class=\"kw\">&lt;uart\/&gt;<\/span><\/span>\n<span id=\"cb5-4\"><a href=\"#cb5-4\" aria-hidden=\"true\"><\/a><\/span>\n<span id=\"cb5-5\"><a href=\"#cb5-5\" aria-hidden=\"true\"><\/a>    <span class=\"kw\">&lt;\/iou&gt;<\/span><\/span><\/code><\/pre><\/div>\n<h3 id=\"spi\">SPI:<\/h3>\n<div class=\"sourceCode\" id=\"cb6\"><pre class=\"sourceCode xml\"><code class=\"sourceCode xml\"><span id=\"cb6-1\"><a href=\"#cb6-1\" aria-hidden=\"true\"><\/a>    <span class=\"kw\">&lt;iou<\/span><span class=\"ot\"> name=<\/span><span class=\"st\">&quot;comp_name&quot;<\/span><span class=\"ot\"> core=<\/span><span class=\"st\">&quot;scripted&quot;<\/span><span class=\"ot\"> script=<\/span><span class=\"st\">&quot;file.as&quot;<\/span> <span class=\"kw\">&gt;<\/span><\/span>\n<span id=\"cb6-2\"><a href=\"#cb6-2\" aria-hidden=\"true\"><\/a><\/span>\n<span id=\"cb6-3\"><a href=\"#cb6-3\" aria-hidden=\"true\"><\/a>      <span class=\"kw\">&lt;spi\/&gt;<\/span><\/span>\n<span id=\"cb6-4\"><a href=\"#cb6-4\" aria-hidden=\"true\"><\/a><\/span>\n<span id=\"cb6-5\"><a href=\"#cb6-5\" aria-hidden=\"true\"><\/a>    <span class=\"kw\">&lt;\/iou&gt;<\/span><\/span><\/code><\/pre><\/div>\n<h3 id=\"twi\">TWI:<\/h3>\n<div class=\"sourceCode\" id=\"cb7\"><pre class=\"sourceCode xml\"><code class=\"sourceCode xml\"><span id=\"cb7-1\"><a href=\"#cb7-1\" aria-hidden=\"true\"><\/a>    <span class=\"kw\">&lt;iou<\/span><span class=\"ot\"> name=<\/span><span class=\"st\">&quot;comp_name&quot;<\/span><span class=\"ot\"> core=<\/span><span class=\"st\">&quot;scripted&quot;<\/span><span class=\"ot\"> script=<\/span><span class=\"st\">&quot;file.as&quot;<\/span> <span class=\"kw\">&gt;<\/span><\/span>\n<span id=\"cb7-2\"><a href=\"#cb7-2\" aria-hidden=\"true\"><\/a><\/span>\n<span id=\"cb7-3\"><a href=\"#cb7-3\" aria-hidden=\"true\"><\/a>      <span class=\"kw\">&lt;twi\/&gt;<\/span><\/span>\n<span id=\"cb7-4\"><a href=\"#cb7-4\" aria-hidden=\"true\"><\/a><\/span>\n<span id=\"cb7-5\"><a href=\"#cb7-5\" aria-hidden=\"true\"><\/a>    <span class=\"kw\">&lt;\/iou&gt;<\/span><\/span><\/code><\/pre><\/div>\n<p><br><\/p>\n<hr \/>\n<h2 id=\"display\">Display:<\/h2>\n<p><br><\/p>\n<hr \/>\n<h2 id=\"console\">Console:<\/h2>\n<p><br><\/p>\n<hr \/>\n<h1 id=\"creating-script-file.\">Creating Script file.<\/h1>\n<p>This is a program written in <a href=\"#the-script-language\">The script language<\/a> describing the behavior of the component.<br><\/p>\n<p>Script files must have extension .as and use the name defined in the definition file.<\/p>\n<hr \/>\n<h2 id=\"script-functions-called-from-c.\">Script functions called from C++.<\/h2>\n<p>These are functions you can implement in the script.<\/p>\n<div class=\"sourceCode\" id=\"cb8\"><pre class=\"sourceCode c\"><code class=\"sourceCode c\"><span id=\"cb8-1\"><a href=\"#cb8-1\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> setup()<\/span>\n<span id=\"cb8-2\"><a href=\"#cb8-2\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> reset()<\/span>\n<span id=\"cb8-3\"><a href=\"#cb8-3\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> voltChanged()<\/span>\n<span id=\"cb8-4\"><a href=\"#cb8-4\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> updateStep()<\/span>\n<span id=\"cb8-5\"><a href=\"#cb8-5\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> runEvent()<\/span>\n<span id=\"cb8-6\"><a href=\"#cb8-6\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> extClock( <span class=\"dt\">bool<\/span> clkState )<\/span>\n<span id=\"cb8-7\"><a href=\"#cb8-7\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">int<\/span> getCpuReg( string name )<\/span>\n<span id=\"cb8-8\"><a href=\"#cb8-8\" aria-hidden=\"true\"><\/a>    string getStrReg( string name )<\/span>\n<span id=\"cb8-9\"><a href=\"#cb8-9\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> command( string c )<\/span>\n<span id=\"cb8-10\"><a href=\"#cb8-10\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> setLinkedValue( <span class=\"dt\">int<\/span> val, <span class=\"dt\">int<\/span> i )<\/span>\n<span id=\"cb8-11\"><a href=\"#cb8-11\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> setLinkedString( string str, <span class=\"dt\">int<\/span> i )<\/span>\n<span id=\"cb8-12\"><a href=\"#cb8-12\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> INTERRUPT( uint vector )<\/span><\/code><\/pre><\/div>\n<hr \/>\n<h2 id=\"available-c-functions-to-call-from-the-script.\">Available C++ functions to call from the script.<\/h2>\n<h3 id=\"debug-messages\">Debug messages:<\/h3>\n<div class=\"sourceCode\" id=\"cb9\"><pre class=\"sourceCode c\"><code class=\"sourceCode c\"><span id=\"cb9-1\"><a href=\"#cb9-1\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> print( string &amp;msg )<\/span><\/code><\/pre><\/div>\n<p><br><\/p>\n<h3 id=\"component\">Component:<\/h3>\n<div class=\"sourceCode\" id=\"cb10\"><pre class=\"sourceCode c\"><code class=\"sourceCode c\"><span id=\"cb10-1\"><a href=\"#cb10-1\" aria-hidden=\"true\"><\/a>    IoPort@  getPort( string port )<\/span>\n<span id=\"cb10-2\"><a href=\"#cb10-2\" aria-hidden=\"true\"><\/a>    IoPin@   getPin( string pin )<\/span>\n<span id=\"cb10-3\"><a href=\"#cb10-3\" aria-hidden=\"true\"><\/a>    McuPort@ getMcuPort( string port )<\/span>\n<span id=\"cb10-4\"><a href=\"#cb10-4\" aria-hidden=\"true\"><\/a>    McuPin@  getMcuPin( string pin )<\/span>\n<span id=\"cb10-5\"><a href=\"#cb10-5\" aria-hidden=\"true\"><\/a><\/span>\n<span id=\"cb10-6\"><a href=\"#cb10-6\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> addCpuReg( string name, string type )<\/span>\n<span id=\"cb10-7\"><a href=\"#cb10-7\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> addCpuVar( string name, string type )<\/span>\n<span id=\"cb10-8\"><a href=\"#cb10-8\" aria-hidden=\"true\"><\/a><\/span>\n<span id=\"cb10-9\"><a href=\"#cb10-9\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> toConsole( string msg )  <span class=\"co\">\/\/ To Delete<\/span><\/span>\n<span id=\"cb10-10\"><a href=\"#cb10-10\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> showValue( string val )<\/span>\n<span id=\"cb10-11\"><a href=\"#cb10-11\" aria-hidden=\"true\"><\/a><\/span>\n<span id=\"cb10-12\"><a href=\"#cb10-12\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> addEvent( uint time_ps )<\/span>\n<span id=\"cb10-13\"><a href=\"#cb10-13\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> cancelEvents()<\/span>\n<span id=\"cb10-14\"><a href=\"#cb10-14\" aria-hidden=\"true\"><\/a>    uint64 circTime()<\/span>\n<span id=\"cb10-15\"><a href=\"#cb10-15\" aria-hidden=\"true\"><\/a><\/span>\n<span id=\"cb10-16\"><a href=\"#cb10-16\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">int<\/span>  readPGM( uint addr )<\/span>\n<span id=\"cb10-17\"><a href=\"#cb10-17\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> writePGM( uint addr, <span class=\"dt\">int<\/span> val )<\/span>\n<span id=\"cb10-18\"><a href=\"#cb10-18\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">int<\/span>  readRAM( uint addr )<\/span>\n<span id=\"cb10-19\"><a href=\"#cb10-19\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> writeRAM( uint addr, <span class=\"dt\">int<\/span> val )<\/span>\n<span id=\"cb10-20\"><a href=\"#cb10-20\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">int<\/span>  readROM( uint addr )<\/span>\n<span id=\"cb10-21\"><a href=\"#cb10-21\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> writeROM( uint addr, <span class=\"dt\">int<\/span> val )<\/span>\n<span id=\"cb10-22\"><a href=\"#cb10-22\" aria-hidden=\"true\"><\/a><\/span>\n<span id=\"cb10-23\"><a href=\"#cb10-23\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> INTERRUPT( uint vector )<\/span>\n<span id=\"cb10-24\"><a href=\"#cb10-24\" aria-hidden=\"true\"><\/a><\/span>\n<span id=\"cb10-25\"><a href=\"#cb10-25\" aria-hidden=\"true\"><\/a><span class=\"co\">\/\/ For linked Components:<\/span><\/span>\n<span id=\"cb10-26\"><a href=\"#cb10-26\" aria-hidden=\"true\"><\/a><span class=\"co\">\/\/ index: index on Linked component in the list<\/span><\/span>\n<span id=\"cb10-27\"><a href=\"#cb10-27\" aria-hidden=\"true\"><\/a>    string getPropStr( <span class=\"dt\">int<\/span> index, string name )<\/span>\n<span id=\"cb10-28\"><a href=\"#cb10-28\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> setLinkedValue( <span class=\"dt\">int<\/span> index, <span class=\"dt\">int<\/span> val, <span class=\"dt\">int<\/span> i )<\/span>\n<span id=\"cb10-29\"><a href=\"#cb10-29\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> setLinkedString( <span class=\"dt\">int<\/span> index, string val, <span class=\"dt\">int<\/span> i )<\/span><\/code><\/pre><\/div>\n<p><br><\/p>\n<h3 id=\"ioport\">IoPort@<\/h3>\n<div class=\"sourceCode\" id=\"cb11\"><pre class=\"sourceCode c\"><code class=\"sourceCode c\"><span id=\"cb11-1\"><a href=\"#cb11-1\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> setPinMode( uint mode )<\/span>\n<span id=\"cb11-2\"><a href=\"#cb11-2\" aria-hidden=\"true\"><\/a>    uint getInpState()<\/span>\n<span id=\"cb11-3\"><a href=\"#cb11-3\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> scheduleState( uint32 state, uint64 time )<\/span>\n<span id=\"cb11-4\"><a href=\"#cb11-4\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> setOutState( uint state )<\/span>\n<span id=\"cb11-5\"><a href=\"#cb11-5\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> changeCallBack( eElement@ e, <span class=\"dt\">bool<\/span> en )<\/span>\n<span id=\"cb11-6\"><a href=\"#cb11-6\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> addSequence( array&lt;array&lt;uint64&gt;&gt;@ t )<\/span>\n<span id=\"cb11-7\"><a href=\"#cb11-7\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> trigger( uint n ) <span class=\"co\">\/\/ Trgger sequence<\/span><\/span><\/code><\/pre><\/div>\n<p><br><\/p>\n<h3 id=\"iopin.\">IoPin@.<\/h3>\n<div class=\"sourceCode\" id=\"cb12\"><pre class=\"sourceCode c\"><code class=\"sourceCode c\"><span id=\"cb12-1\"><a href=\"#cb12-1\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> setPinMode( uint mode )<\/span>\n<span id=\"cb12-2\"><a href=\"#cb12-2\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> setOutState( <span class=\"dt\">bool<\/span> state )<\/span>\n<span id=\"cb12-3\"><a href=\"#cb12-3\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> scheduleState( <span class=\"dt\">bool<\/span> state, uint64 time )<\/span>\n<span id=\"cb12-4\"><a href=\"#cb12-4\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> setStateZ( <span class=\"dt\">bool<\/span> z )<\/span>\n<span id=\"cb12-5\"><a href=\"#cb12-5\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">bool<\/span> getInpState()<\/span>\n<span id=\"cb12-6\"><a href=\"#cb12-6\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">double<\/span> getVoltage()<\/span>\n<span id=\"cb12-7\"><a href=\"#cb12-7\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> setVoltage( <span class=\"dt\">double<\/span> volt )<\/span>\n<span id=\"cb12-8\"><a href=\"#cb12-8\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> setOutHighV( <span class=\"dt\">double<\/span> volt )<\/span>\n<span id=\"cb12-9\"><a href=\"#cb12-9\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> setImpedance( <span class=\"dt\">double<\/span> imp )<\/span>\n<span id=\"cb12-10\"><a href=\"#cb12-10\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> changeCallBack( eElement@ e, <span class=\"dt\">bool<\/span> en )<\/span>\n<span id=\"cb12-11\"><a href=\"#cb12-11\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">bool<\/span> isConnected()<\/span><\/code><\/pre><\/div>\n<p><br><\/p>\n<h3 id=\"mcuport.\">McuPort@.<\/h3>\n<div class=\"sourceCode\" id=\"cb13\"><pre class=\"sourceCode c\"><code class=\"sourceCode c\"><span id=\"cb13-1\"><a href=\"#cb13-1\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> controlPort( <span class=\"dt\">bool<\/span> outCtrl, <span class=\"dt\">bool<\/span> dirCtrl )<\/span>\n<span id=\"cb13-2\"><a href=\"#cb13-2\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> setDirection( uint dir )<\/span>\n<span id=\"cb13-3\"><a href=\"#cb13-3\" aria-hidden=\"true\"><\/a>    uint getInpState()<\/span>\n<span id=\"cb13-4\"><a href=\"#cb13-4\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> setOutState( uint state )<\/span><\/code><\/pre><\/div>\n<p><br><\/p>\n<h3 id=\"mcupin.\">McuPin@.<\/h3>\n<div class=\"sourceCode\" id=\"cb14\"><pre class=\"sourceCode c\"><code class=\"sourceCode c\"><span id=\"cb14-1\"><a href=\"#cb14-1\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> setDirection( <span class=\"dt\">bool<\/span> dir )<\/span>\n<span id=\"cb14-2\"><a href=\"#cb14-2\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> setPortState( <span class=\"dt\">bool<\/span> state )<\/span>\n<span id=\"cb14-3\"><a href=\"#cb14-3\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> controlPin( <span class=\"dt\">bool<\/span> outCtrl, <span class=\"dt\">bool<\/span> dirCtrl )<\/span>\n<span id=\"cb14-4\"><a href=\"#cb14-4\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> setExtInt( uint mode )<\/span>\n<span id=\"cb14-5\"><a href=\"#cb14-5\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> setPinMode( uint mode )<\/span>\n<span id=\"cb14-6\"><a href=\"#cb14-6\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">bool<\/span> getInpState()<\/span>\n<span id=\"cb14-7\"><a href=\"#cb14-7\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> setOutState( <span class=\"dt\">bool<\/span> state )<\/span>\n<span id=\"cb14-8\"><a href=\"#cb14-8\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">double<\/span> getVoltage()<\/span>\n<span id=\"cb14-9\"><a href=\"#cb14-9\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> setVoltage( <span class=\"dt\">double<\/span> volt )<\/span>\n<span id=\"cb14-10\"><a href=\"#cb14-10\" aria-hidden=\"true\"><\/a>    <span class=\"dt\">void<\/span> changeCallBack( eElement@ e, <span class=\"dt\">bool<\/span> en )<\/span><\/code><\/pre><\/div>\n<p><br><\/p>\n<h1 id=\"resources\">Resources:<\/h1>\n<ul>\n<li><a href=\"https:\/\/simulide.forumotion.com\/t990-scripted-components\">Forum discussion,<\/a><\/li>\n<li>Video (english): <a href=\"https:\/\/youtu.be\/vJLfuVwbvGE\">Creating Scripted Components Part I<\/a><\/li>\n<li>Video (spanish): <a href=\"https:\/\/www.youtube.com\/watch?v=xRF0TBUU0JY\">Creando componentes script en SimulIDE<\/a><\/li>\n<li><a href=\"\/p\/scripted-dev\">Scripted Dev<\/a>.<\/li>\n<\/ul>\n<hr \/>\n<p>#tutorial<\/p>\n<\/div>\n<\/div><\/div>\n\n<\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>SimulIDE Knowledge Base&#8211; SCRIPTED COMPONENTS &#8211;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"footnotes":""},"class_list":["post-2064","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/simulide.com\/p\/wp-json\/wp\/v2\/pages\/2064","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/simulide.com\/p\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/simulide.com\/p\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/simulide.com\/p\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/simulide.com\/p\/wp-json\/wp\/v2\/comments?post=2064"}],"version-history":[{"count":7,"href":"https:\/\/simulide.com\/p\/wp-json\/wp\/v2\/pages\/2064\/revisions"}],"predecessor-version":[{"id":3218,"href":"https:\/\/simulide.com\/p\/wp-json\/wp\/v2\/pages\/2064\/revisions\/3218"}],"wp:attachment":[{"href":"https:\/\/simulide.com\/p\/wp-json\/wp\/v2\/media?parent=2064"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}