Changes between Initial Version and Version 1 of Ticket #1643


Ignore:
Timestamp:
Mar 13, 2013 8:43:52 AM (11 years ago)
Author:
riza
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #1643 – Description

    initial v1  
    11A CLI framework features an interface for defining command specification, parsing, and executing a command.  
    22 
     3'''Features''' 
     4- Portable across desktop (windows, macosx, linux, etc) and mobile platforms (symbian, windows mobile, iphone, android, etc.) 
     5- User may access the UI by telneting to the app, and be able to operate the app as if it's a desktop app  
    36 
     7'''Enhancements to existing console UI''' 
     8- Command (auto)completion, e.g. one can specify "makecall" or "make" or "m". The system will detect if a fraction of a word makes up unique command 
     9- arguments completion, i.e. user may specify the arguments together with the command, or if not, he will be asked to provide them. 
     10- command history (the use of up and down arrow) 
    411 
     12'''Telnet interface''' 
     13- will provide interface exactly the same as console interface on desktop 
     14- may provide different logging level for each client 
     15 
     16'''Command specification''' 
     17 
     18The command specification includes: 
     19- Definition in an xml file 
     20- Command/argument name 
     21- Command/argument id 
     22- Argument data type (int, string, choice) 
     23- Argument mandatory type (optional/mandatory) 
     24- Text description (to show in help screen) 
     25- Each command could contain argument list or other command 
     26- Callback handler 
     27 
     28XML example of a command specification: 
     29{{{ 
     30<CMD name='vid' id='0' desc=""> 
     31       <CMD name='help' id='0' desc='' /> 
     32       <CMD name='enable' id='0' desc='' /> 
     33       <CMD name='disable' id='0' desc='' /> 
     34       <CMD name='call' id='0' desc='' > 
     35                <CMD name='add' id='101' desc='...' /> 
     36                <CMD name='cap' id='102' desc='...' > 
     37                   <ARG name='streamno' type='int' desc='...' id='1'/> 
     38                   <ARG name='devid' type='int' optional='1' id='2'/> 
     39                </CMD> 
     40       </CMD> 
     41</CMD> 
     42<CMD name='disable_codec' id=0 desc=""> 
     43        <ARG name='codec_list' type='choice' id='3'> 
     44            <CHOICE value='g711'/> 
     45            <CHOICE value='g722'/> 
     46        </ARG> 
     47</CMD> 
     48}}}