{"id":1671,"date":"2018-09-27T16:58:42","date_gmt":"2018-09-27T16:58:42","guid":{"rendered":"https:\/\/cyflexdoc.wpengine.com\/?p=1671"},"modified":"2018-09-27T19:38:21","modified_gmt":"2018-09-27T19:38:21","slug":"execution-sequence-of-operations-within-a-gp_test-mode","status":"publish","type":"post","link":"https:\/\/cyflex.com\/index.php\/execution-sequence-of-operations-within-a-gp_test-mode\/","title":{"rendered":"Execution Sequence of Operations within a gp_test mode"},"content":{"rendered":"<p>The Test Manager (gp_test) uses a unique language for specifying actions within a test mode for setting control targets, requesting fuel readings, setting variable values, and so on.\u00a0 The gp_test language is not a scripting language where the sequence of operation is based on the sequence in which the operations are specified.\u00a0 Instead, there is a hard-coded sequence of operation.\u00a0 The following describes the sequence of actions when a test mode is started.\u00a0 This sequence is unrelated to the order in which the corresponding keywords are entered in the gp_test procedure file.<\/p>\n<ol>\n<li>Perform conditional tests to see if the mode is to be skipped.\u00a0 The conditional test are @IF_TRUE, @IF_FALSE, and @SWITCH.\u00a0 If the tests indicate that a new mode or test procedure should be started, then the mode is exited and none of the other actions are executed except those which have a start_code of \u201cAT_END\u201d.<\/li>\n<li>Any @PARAMETERS or @SET_DISPLAY_STATUS values will be set.<\/li>\n<li>Any control loop operations are executed. (@SPEED, @TORQUE, @DYNO, @THROTTLE, @USER_LOOP, @PID_GAINS, @ENGINE_CONTROL_MODE, @PID_GAINS, @FEED_FORWARD, @GET_PID_GAINS, @GET_FF_GAIN, @CONTROL_TOLERANCE)<\/li>\n<li>Send any events specified by @SET_EVENTS.<\/li>\n<li>Configure any limits specifications specified by @LIMIT_SPECS.<\/li>\n<li>Configure any ramping operations specified by @RAMP or @RAMP_DYNAMIC<\/li>\n<li>Configure fuel reading operations specified by @FUEL_READING, @PAM_DATAPOINT, @FUEL_READING_SYNC, and @FUEL_READING_STATS<\/li>\n<li>Communicate with any applications launched by @AUXILIARY_TASK or @TEST_TABLE<\/li>\n<li>Configure any stability operations specified by @STABILITY_SPECS<\/li>\n<li>Perform communications specified by @ASC<\/li>\n<li>Perform all ECM communications specified the @ASAM3\u2026. Keywords<\/li>\n<li>Perform any file writing operations specified by @WRITE_VALUES<\/li>\n<li>Launch background scripts specified by @BACKGROUND and @BACKGROUND_TASKS<\/li>\n<li>Perform AK and DEVCOM communications<\/li>\n<li>Perform an CYBER related configuration commands<\/li>\n<li>Send any specified emails specified by @EMAIL<\/li>\n<li>Perform UNICO related communications with the dyno controller<\/li>\n<li>Configure operations specified for multi-filter changers (@MFC_CMD)<\/li>\n<li>Configure operations specified by @CHAIN_EVENTS (cyflex.6.3.0 and later)<\/li>\n<li>Configure state machine operations specified by @STATE_MON_ACTIONS and related STATE_MON keywords.<\/li>\n<\/ol>\n<p>As an example, if you use@AUXILIARY_TASK to read a value from a file, you specify the index in the file (often using the \u2018count\u2019 integer variable ).\u00a0 In the gp_test procedure file you could do the following:<\/p>\n<p>########################################################<\/p>\n<p>@AUXILIARY_TASK<br \/>\nAT_START\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 MODE_TERMINATE\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 99<br \/>\n\/cyflex\/bin\/vrbl_to_file\u00a0\u00a0 \u201cspecs\/gp\/myfile READ count\u201d<\/p>\n<p>@PARAMETERS<br \/>\nAT_START\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 count\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 100<\/p>\n<p>This would cause vrbl_to_file to read index 100 from \u201cmyfile\u201d, because @PARAMETERS are executed BEFORE @AUXILIARY_TASK operations.\u00a0 So, it really doesn\u2019t matter where the @PARAMETERS keyword is positioned within the mode, that operation happens before the value of the \u2018count\u2019 variable is sent to vrbl_to_file.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Test Manager (gp_test) uses a unique language for specifying actions within a test mode for setting control targets, requesting fuel readings, setting variable values, and so on.\u00a0 The gp_test language is not a scripting language where the sequence of operation is based on the sequence in which the operations are specified.\u00a0 Instead, there is [&hellip;]<\/p>\n","protected":false},"author":47,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-1671","post","type-post","status-publish","format-standard","hentry","category-did-you-know"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/cyflex.com\/index.php\/wp-json\/wp\/v2\/posts\/1671","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cyflex.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cyflex.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cyflex.com\/index.php\/wp-json\/wp\/v2\/users\/47"}],"replies":[{"embeddable":true,"href":"https:\/\/cyflex.com\/index.php\/wp-json\/wp\/v2\/comments?post=1671"}],"version-history":[{"count":0,"href":"https:\/\/cyflex.com\/index.php\/wp-json\/wp\/v2\/posts\/1671\/revisions"}],"wp:attachment":[{"href":"https:\/\/cyflex.com\/index.php\/wp-json\/wp\/v2\/media?parent=1671"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cyflex.com\/index.php\/wp-json\/wp\/v2\/categories?post=1671"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cyflex.com\/index.php\/wp-json\/wp\/v2\/tags?post=1671"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}