Project Title === ![downloads](https://img.shields.io/github/downloads/atom/atom/total.svg) ![build](https://img.shields.io/appveyor/ci/:user/:repo.svg) ![chat](https://img.shields.io/discord/:serverId.svg) ## Table of Contents [TOC] ## Beginners Guide If you are a total beginner to this, start here! 1. Visit hackmd.io 2. Click "Sign in" 3. Choose a way to sign in 4. Start writing note! ## Interchange Instrument | Template | Value | |-----------|-----------------------------| | ^$^edi | Interchange Control Header | | Name | Functional Group Header | | About | Transaction Set Header | | BGN | Beginning Segment | | N9 | Reference Identification | | TRN | Trace | | AMT | Monetary Amount | | QTY | Quantity | | SE | Transaction Set Trailer | | GE | Functional Group Trailer | | IEA | Interchange Control Trailer | | | | # Language $edilet$ Creating a definition and expression to be evaluated A condition that must evaluate to `true` before the statement in the `then` clause can execute $edilet$ is a free format langauge, therefore you must terminate definitions and expressions ## Operators. String Operations are done in two ways. Case sensitive and case insensitive to be more expressive. There are only 8 different symbols that can be between an operator. We further reduce the possible combinations by enforcing a specific `dogma`. A `dogma` is a set of constraints on operators so that a formal domain may be specificed. For EDI, we limit the possible 256 combinations of the symbols to just 24 operators. > For example, we wouldn't want to write =c For example, we take `i` `l` `e` `s` `c` `=` `>` `<` `==` which is an equal sign and Case Sensitive `==i` which is an equal sign and Case Insensitive For a full list of string operations see Apendix B `=s` starts with `=si` starts with, case insensitive `!s` does NOT start with `!si` does NOT start with, case insensitive `=e` ends with `=ei` ends with, case insensitive `!e` does not end with `!ei` does not end with, case insensitive `=l` Equals $==i \quad$ Equals != $\quad$ Not Equals $!=i \quad$ Not Equals Greater Than Less Than Greater Than Or Equal To Less Than Or Equal To $=c$ Contains =ci $\quad$ Contains (Case Insensitive) $! c$ Does Not Contain !ci $\quad$ Does Not Contain (Case Insensitive) $=s$ Starts With $=\mathrm{s}$ Starts With (Case Insensitive) $!$ Does Not Start With $!$ si Does Not Start With (Case Insensitive) Ends With ei Ends With (Case Insensitive) !e Does Not End With รจ Does Not End With (Case Insensitive) $=1 \quad$ Length Equals !! $\quad$ Length Does Not Equals <1 $\quad$ Length Less Than ## Running the Interpreter assignChannel, handleMessage, setChannelRange, map(), int assignChannel ( int noteNumber ) setChannelRange ( bool useRDP, int lowChannel, int highChannel ) map() float map ( float value, float sourceMin, float sourceMax, float destMin, float destMax ) handleMessage ( int param1, int param2, int param3 ) -- ## Functions bool isMasterBlock () Returns true if this block is directly connected to the host, as opposed to only being connected to a different block via a connection port. int getBlockTypeForID (int blockID) Returns the type of the block with a given ID handleMessage (int param1, int param2, int param3) Called when a block receives a message. assignChannel (int wholeNumber) deassignChannel (int wholeNumber, int channel) Deassigns a channel logHex (int data) Logs a hexadecimal value to the console map (float value, float sourceMin, float sourceMax, float destMin, float destMax) Remaps a value from a source range to a target range clamp (int lowerLimit, int upperLimit, int valueToConstrain) Constrains an integer value to keep it within a given range. > Note: `clamp` is available in *float* and *int* > getHeapByte (int byteIndex) Reads and returns the value of a single byte from the heap --- User story --- ```gherkin= Feature: Guess the word # The first example has two steps Scenario: Maker starts a game When the Maker starts a game Then the Maker waits for a Breaker to join # The second example has three steps Scenario: Breaker joins a game Given the Maker has started a game with the word "silky" When the Breaker joins the Maker's game Then the Breaker must guess a word with 5 characters ``` > I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it. [name=Bill Gates] ```gherkin= Feature: Shopping Cart As a Shopper I want to put items in my shopping cart Because I want to manage items before I check out Scenario: User adds item to cart Given I'm a logged-in User When I go to the Item page And I click "Add item to cart" Then the quantity of items in my cart should go up And my subtotal should increment And the warehouse inventory should decrement ``` > Read more about Gherkin here: https://docs.cucumber.io/gherkin/reference/ User flows --- ```sequence Alice->Bob: Hello Bob, how are you? Note right of Bob: Bob thinks Bob-->Alice: I am good thanks! Note left of Alice: Alice responds Alice->Bob: Where have you been? ``` > Read more about sequence-diagrams here: http://bramp.github.io/js-sequence-diagrams/ Project Timeline --- ```mermaid gantt title A Gantt Diagram section Section A task :a1, 2014-01-01, 30d Another task :after a1 , 20d section Another Task in sec :2014-01-12 , 12d anther task : 24d ``` > Read more about mermaid here: http://mermaid-js.github.io/mermaid/ ## Appendix and FAQ :::info **Find this document incomplete?** Leave a comment! ::: ###### tags: `Templates` `Documentation`