| 
    
    
    Command | 
    
    
    VAR | 
   
  
    | 
    
      | 
    
  | 
   
  
    | 
    Description | 
    
        Create a variable having a certain style and a default 
        value. 
        A variable contains text or numbers which can be amended and be referred 
        to as a single name in an equation or to show information on the 
        display. Variable names must start with a letter or _. 
        Variables can be pointers to other variables and entities and use the 
        '>' operator. 
        Non volatile parameter storage is also handled by VAR which initially 
        loads the default value, then at subsequent power ON reloads the last 
        stored value which was saved using LOAD(varname,newval); 
         
        A range of 'built in' styles exist like 
        U8,U16,U32,S8,S16,S32,FLT1,FLT2,FLT3,FLT4,TXT as shown in VAR styles 
        below. 
        These can be appended with E for storage in 'non volatile' EEPROM as 
        described below.  | 
       
    
    | 
    
      | 
    
  | 
   
  
    | 
    
    Syntax/Parameters | 
    
    VAR(Name,Value,Style) 
        + pointer usage 
        + non volatile parameter storage 
     
     
Arrays are defined using an extension to the VAR() command.  
Each required dimension is passed as an additional parameter to the command. 
VAR(name,init,type,size0); One-dimensional (or single dimension) array 
VAR(name,init,type,size0,size1); Two-dimensional array 
VAR(name,init,type,size0,size1,size2); Three-dimensional array 
VAR(name,init,type,size0,size1,size2,size3); Four-dimensional array | 
   
  
    | 
    
      | 
    
  | 
     
  
    | 
    Style | 
    
    
    
        VAR Data Styles 
        
        
        
        Specify your own style for integer, float, pointer or 
        text or use a built in style name 
        
        
            
        
        
        
        STYLE(stVar, Data) 
          {  
           type = U8;     // U8, 
    U16, U32 - unsigned 8, 16 and 32 bit integer 
                      
        // S8, S16, S32 - signed 8, 16, 32 bit 
        integer 
                      
        // TEXT for text strings 
                      
        // FLOAT for higher resolution 
        calculation up to 17 decimal places 
                      
        // POINTER for use with images  
          length=64;    //
        For text, specify the length from 1 to 8192, default =32  
          decimal=3;    //
        
    
    
    Specify the number of decimal places when type is 
        float. Range 0 to 17, default=2  
          format="dd mm YY";      //Specify 
        RTC format. see RTC page for format character types 
          location=SDRAM;            
        //Specify the data location as SDRAM (default) or EEPROM 
          } 
        
          
        Built In Styles 
        The following pre defined 'built in' style names are available. Add E for 
        EEPROM types
        Example FLT4E. 
          U8/U8E      - type = U8,
          U16/U16E - type = U16,  U32/U32E    - type = U32 
  S8/S8E      - type = S8,
  S16/S16E  - type = S16,  S32/S32E     - type = S32 
  PTR/PTRE    - type = pointer,  TXT/TXTE - type = 
        TEXT, length=32  
  FLT1/FLT1E  - type = float, decimal = 1,  FLT2/FLT2E  - 
        type = float, decimal = 2 
  FLT3/FLT3E  - type = float, decimal = 3,  FLT4/FLT4E  - type = float, decimal = 4 | 
   
  
    | 
    
      | 
    
  | 
   
  
    | 
    Options | 
    
        
        Example Numbers
        
        
        
         
        VAR(lowval,32.4,FLT1);
        
        
        define lowval as a single decimal float and default value 32.4 
        
        
        VAR(lowval,22.4,FLT1E);
        
        
        define lowval as a single decimal float and default value 22.7  
                                      
        or load EEPROM value if already exists.  
                                  
        Use RESET(EEPROM); to clear and reload only current values.  
        
          
        Example Pointers 
        Create a pointer which is defaulted to null using the '>' symbol. 
        VAR(EntPtr1>"",PTR); 
        
          
        To set/change which entity the entity pointer is pointing to you use '>' 
        instead of ','. 
          LOAD( EntPtr1>"Var1"); // Set EntPtr1 
        to point to Var1 
        
          
        To put data into the entity pointed to by the entity pointer, enclose 
        data / source entity in quotes. 
          LOAD( EntPtr1, "ABC" );    // Load the Entity 
        pointed to by EntPtr1 with ABC 
        
         
        
         
        The following commands now support 
        entity pointers where  ( | means 'or this') 
          > LOAD(name | ptr | "ptr", | > num | 
        "txt" | var | ptr,...); 
          > CALC(var | ptr, var | ptr, num | var | ptr,"op"); 
          > TEXT(name | ptr, "txt" | var | ptr,...); 
          > IF(var | ptr op num | "txt" | var | ptr ? func | func_ptr : func | 
        func_ptr); 
          > KEY(name, func | func_ptr,...); 
          > INT(name, buf, func | func_ptr,...); 
          > SHOW(name | ptr,...); 
          > HIDE(name | ptr,...); 
          > RUN(name | func_ptr,...); 
          > IMG(name | img_ptr, lib | img_ptr,...); 
        
          
        
        
        
        
        
        Floats - v47.12 
        Increased maximum decimal places to 17 (was 7). 
         
        Pointers - v48.24 
        Support added for pointers to pointers. 
   VAR( vU16Ent, 1234, U16 ); 
         
   VAR( vPtrEnt1 > "vU16Ent", PTR ); 
   VAR( vPtrEnt2 > "vPtrEnt1", PTR ); 
   VAR( vPtrEnt3 > "vPtrEnt2", PTR ); 
         
   TEXT( txtEnt, vPtrEnt3 ); effectively puts 1234 in text box 'txtEnt' 
   LOAD( vPtrEnt3, 5678 ); effectively loads vU16Ent with 5678 
         
        VARs - v49.02 
        VARs can now be initialised with other VARs, as well as immediate values. 
         
        Touch - v49.14 
        Added built-in variables TOUCH0, TOUCH1, TOUCH2, TOUCH3, TOUCHP to aid with touchscreen diagnotics. 
         
         
        ADC - v49.16 
        Added system variables ADC1VAL, ADC2VAL (U16) to allow direct use of conversion results. 
         
        Pointer Copy - v49.18 
        Pointers can be copied using CALC(dst,src,''PCOPY''); 
   VAR( v1 > "v3", PTR ); 
   VAR( v2 > "v4", PTR ); 
   VAR( v3, "alpha", TXT ); 
   VAR( v4, "beta", TXT ); 
   gives: v1>v3; v2>v4; v1=alpha; v2=beta; v3=alpha; v4=beta 
   CALC( v1, v2, "PCOPY" ); 
   gives: v1>v4; v2>v4; v1=beta; v2=beta; v3=alpha; v4=beta 
         
        Text VAR Source - v49.32 
        Added ability to use same source text variable as the destination text variable: 
        LOAD( txtVarA, txtVarB, txtVarA ); 
         
        
        Read-Only VARs (Constants) - v49.32 
        Variables can be designated read-only (constants) by specifying readonly=y; in the data style: 
        > STYLE(U8C,data){type=u8;readonly=y;} 
        A system error will occur if modification to a read-only variable is requested. 
        Checking is performed in LOAD(), VAR() and CALC() commands only.
         
         
        Built-in "Constant" styles - v49.32 
        U8C, U16C, U32C, S8C, S16C, S32C, PTRC, FLT1C, FLT2C, FLT3C, FLT4C, TXT4C, TXT16C, TXTC, TXT64C, TXT128C. 
         
        
        
Arrays Definitions 
Array: A data structure consisting of a collection of elements (values), each 
identified by at least one index. 
Index: A non-negative integer used to index a value in an array. Indices can 
also be called subscripts. 
Element: A location in the array data structure which is used to store a value. 
Dimension: The dimension of an array is the number of indices needed to select 
an element. 
 
Indexing Arrays 
Arrays use zero-based indexing, i.e. the first element of the array is 
indexed by 0. 
For example, we define a 20 element array as: 
VAR( A, 0, U8, 20 ); 
Then the elements of the array are indexed A.0 through to A.19. 
Array elements are accessed by separating the indices with a dot. 
Single dimension with A.0  through to 4 dimensions with
name.idx0.idx1.idx2.idx3 | 
   
  
    | 
    
      | 
    
  | 
   
  
    | 
    Example | 
    
        VAR(lowval,32.4,FLT1);
        
        
        //define lowval as a single decimal float and default value 32.4 
        
        
        VAR(lowval,22.4,FLT1E);
        
        
        //define lowval as a single decimal float and default value 22.7  
                                     // 
        or load EEPROM value if already exists.  
                                  
        //Use RESET(EEPROM); to clear and reload only current values.  
     
    VAR(Txt1,"Hello World",TXT); 
         
        Arrays 
VAR(A,0,U8,3); //One-dimensional (or single dimension) array 
VAR(B,1,U8,2,20); //Two-dimensional array 
VAR(C,2,U8,2,5,20); //Three-dimensional array 
VAR(D,3,U8,2,5,4,15); //Four-dimensional array | 
   
  
    | 
    
      | 
    
  | 
   
 
 |