Changes between Initial Version and Version 1 of WikiStart/OngoingWork/WebService


Ignore:
Timestamp:
05/26/14 09:58:31 (5 years ago)
Author:
stpl01
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WikiStart/OngoingWork/WebService

    v1 v1  
     1= Protocol 
     2 
     3* JSON 
     4 * or BSON (Binary JSON, only a few libs) 
     5* request based 
     6* socket or http? 
     7 * http has requests included 
     8 * Sockets don't need a webserver running 
     9  * websocket or plain socket? 
     10   * websocket protocol implemented in browser 
     11   * socket don't need a websocket library 
     12 
     13== requests 
     14 * running tasks 
     15 * input port types 
     16 * output port types 
     17 * single port data (by task/port_name) 
     18 
     19= Ruby 
     20 
     21* gem Yail-ruby promising JSON parser 
     22 * sending via socket, websocket possible and tested (only JSON decode on socket untested) 
     23 * parser can handle nested types 
     24 * needs a serializer function for types which creates (nestes) hashes 
     25 * example: 
     26  {{{ 
     27class Types::Base::Vector3d 
     28  def to_json(*a) 
     29    { 
     30      'json_class'   => self.class.name, 
     31      'data'         => [ :x => x(), :y => y(), :z => z() ] 
     32    }.to_json(*a) 
     33  end 
     34end 
     35 
     36class Types::Base::Samples::RigidBodyState 
     37  def to_json(*a) 
     38    { 
     39      'json_class'   => self.class.name, 
     40      'data'         => [  
     41                          :time => time,  
     42                          :sourceFrame => sourceFrame,  
     43                          :targetFrame => targetFrame,  
     44                          :position => position, 
     45                          #:cov_position => cov_position, 
     46                          :orientation => orientation, 
     47                          :velocity => velocity, 
     48                          :angular_velocity => angular_velocity 
     49                          ] 
     50    }.to_json(*a) 
     51  end 
     52end 
     53}}} 
     54  
     55 
     56= Browser 
     57* websocket preferred 
     58* JSON parser integrated (no external .js lib) 
     59* jQuery UI looks like a nice UI lib 
     60 * http://jqueryui.com/accordion/ might be used for TaskInspector 
     61 
     62 
     63= generic interface 
     64 * socket, but no UI tools