Difference between revisions of "LSL Protocol/Restrained Love Open Relay Group/sensor"

From Second Life Wiki
Jump to: navigation, search
Line 10: Line 10:
 
===Syntax===
 
===Syntax===
  
The parameters are the same as for the LSL command llSensor(string name, key id, integer type, float range, float arc). The ack contains a list of uuid keys, or nosensor if nothing is detected. No other ack is possible.
+
The parameters are the same as for the LSL command llSensor(string name, key id, integer type, float range, float arc). The acknowledgment of receipt contains a list of uuid keys, in particular the null key 00000000-0000-0000-0000-000000000000 if nothing is detected, or "ko". No other acknowledgment of receipt is possible.
  
 
Two examples with
 
Two examples with
* C being the RLV controller
+
* C being the RLV controller which is a grabber (i.e. it already sent a restriction to the relay, accepted by the relay)
 
* R being the RLV relay
 
* R being the RLV relay
  
Line 20: Line 20:
  
 
  C-->R  !x-sensor/name/id/type/range/arc
 
  C-->R  !x-sensor/name/id/type/range/arc
  C<--R  !x-sensor/name/id/type/range/arc,nosensor
+
  C<--R  !x-sensor/name/id/type/range/arc,00000000-0000-0000-0000-000000000000
  
* Is it possible to detect 00000000-0000-0000-0000-000000000000 ? If not, maybe the ack nosensor could be replaced by 00000000-0000-0000-0000-000000000000. Or maybe by the wildcard = ffffffff-ffff-ffff-ffff-ffffffffffff ?
+
The source must be previously accepted by the relay to avoid a bad use of this command; a griefer for example could use it, together with the wildcard, to cause lag in a sim. Even if the command !x-sensor is not a restriction to be saved.  
 +
 
 +
* C being any RLV source not yet accepted by the relay
 +
* R being the RLV relay
 +
 
 +
C-->R  !x-sensor/name/id/type/range/arc
 +
C<--R  !x-sensor/name/id/type/range/arc,ko
  
 
===Semantics===
 
===Semantics===
 
   
 
   
The effect of this command is that the relay performs a llSensor() with the given parameters, and sends the result as a (possibly empty) list of keys separated by a comma to the grabber in the ack using llRegionSayTo().  
+
The effect of this command is that the relay performs a llSensor() with the given parameters, and sends the result as a list of UUID keys separated by a comma to the source in the ack using llRegionSayTo().  
  
 
===Remarks===
 
===Remarks===
  
*Before sending this kind of command, the grabber must check by !x-orgversions the presence of 'sensor=' in the ack of this command.
+
*Before sending this kind of command, the source must check by !x-orgversions the presence of 'sensor=' in the acknowledgment of receipt of this command.
  
*The maximal length of the message is 16*36+15=591<1023. It remains 432 characters for the command !x-sensor/name/id/type/range/arc, more precisely !x-sensor = 9 characters, /////, = 6 characters, id = 36 characters, range = 8 characters, arc = 8 characters (example: 3.141593), type = 31 characters maximum (?!), so it remains 334 characters for 'name'.  
+
*The maximal possible length of the acknowledgment of receipt is 16*36+15=591<1023. It remains 432 characters for the command !x-sensor/name/id/type/range/arc, more precisely !x-sensor = 9 characters, /////, = 6 characters, id = 36 characters, range = 8 characters maximum, arc = 8 characters (example: 3.141593) maximum, type = 31 characters maximum, so it remains 334 characters for 'name'.  
  
*!x-sensor enables to use llSensor(), e.g. for a forcesit command or to force to follow an object or an avatar, when the captured avatar is more than 100m away. It also enable to perform a scan with the relay, not the grabber, as center.
+
*!x-sensor enables to use llSensor(), e.g. for a forcesit command or for forcing to follow an object or an avatar or for identifying avatars, when the captured avatar is more than 100m away. It also enables to perform a scan with the relay, not the source, as center.

Revision as of 22:41, 9 June 2011

sensor

STATUS: draft

version: 001

Description of !x-sensor

Syntax

The parameters are the same as for the LSL command llSensor(string name, key id, integer type, float range, float arc). The acknowledgment of receipt contains a list of uuid keys, in particular the null key 00000000-0000-0000-0000-000000000000 if nothing is detected, or "ko". No other acknowledgment of receipt is possible.

Two examples with

  • C being the RLV controller which is a grabber (i.e. it already sent a restriction to the relay, accepted by the relay)
  • R being the RLV relay
C-->R  !x-sensor/name/id/type/range/arc
C<--R  !x-sensor/name/id/type/range/arc,97116a5b-686b-64a9-a086-cae72a95ce6b,ccb7ce46-eec4-e790-9995-47d789adfe49
C-->R  !x-sensor/name/id/type/range/arc
C<--R  !x-sensor/name/id/type/range/arc,00000000-0000-0000-0000-000000000000

The source must be previously accepted by the relay to avoid a bad use of this command; a griefer for example could use it, together with the wildcard, to cause lag in a sim. Even if the command !x-sensor is not a restriction to be saved.

  • C being any RLV source not yet accepted by the relay
  • R being the RLV relay
C-->R  !x-sensor/name/id/type/range/arc
C<--R  !x-sensor/name/id/type/range/arc,ko

Semantics

The effect of this command is that the relay performs a llSensor() with the given parameters, and sends the result as a list of UUID keys separated by a comma to the source in the ack using llRegionSayTo().

Remarks

  • Before sending this kind of command, the source must check by !x-orgversions the presence of 'sensor=' in the acknowledgment of receipt of this command.
  • The maximal possible length of the acknowledgment of receipt is 16*36+15=591<1023. It remains 432 characters for the command !x-sensor/name/id/type/range/arc, more precisely !x-sensor = 9 characters, /////, = 6 characters, id = 36 characters, range = 8 characters maximum, arc = 8 characters (example: 3.141593) maximum, type = 31 characters maximum, so it remains 334 characters for 'name'.
  • !x-sensor enables to use llSensor(), e.g. for a forcesit command or for forcing to follow an object or an avatar or for identifying avatars, when the captured avatar is more than 100m away. It also enables to perform a scan with the relay, not the source, as center.