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

From Second Life Wiki
Jump to: navigation, search
Line 5: Line 5:
  
 
version: 001
 
version: 001
 +
 +
''A unique command !x-sensor allowing to do remote llSensor() and llSensorRepeat()''
  
 
==Description of !x-sensor==
 
==Description of !x-sensor==
Line 11: Line 13:
 
===Syntax===
 
===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 non empty 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.
+
The parameters are the same as for the LSL command llSensor(string name, key id, integer type, float range, float arc) or of llSensorRepeat(string name, key id, integer type, float range, float arc, float rate). The acknowledgment of receipt contains a non empty 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
Line 30: Line 32:
 
  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,ko
 
  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 acknowledgment of receipt 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.
 
 
==Description of !x-ssrepeat and and !x-ssrepeat/clear==
 
 
The parameters are the same as for the LSL command llSensorRepeat(string name, key id, integer type, float range, float arc, float rate). The acknowledgment of receipt contains a non empty 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. The source must be previously accepted by the relay as well.
 
  
 
Two examples with
 
Two examples with
Line 51: Line 37:
 
* R being the RLV relay
 
* R being the RLV relay
  
  C-->R  !x-ssrepeat/name/id/type/range/arc/rate
+
  C-->R  !x-sensor/name/id/type/range/arc/rate
  C<--R  !x-ssrepeat/name/id/type/range/arc/rate,97116a5b-686b-64a9-a086-cae72a95ce6b,ccb7ce46-eec4-e790-9995-47d789adfe49
+
  C<--R  !x-sensor/name/id/type/range/arc/rate,97116a5b-686b-64a9-a086-cae72a95ce6b,ccb7ce46-eec4-e790-9995-47d789adfe49
 +
C<--R  !x-sensor/name/id/type/range/arc/rate,97116a5b-686b-64a9-a086-cae72a95ce6b
 +
C<--R  !x-sensor/name/id/type/range/arc/rate,97116a5b-686b-64a9-a086-cae72a95ce6b
 +
C<--R  !x-sensor/name/id/type/range/arc/rate,00000000-0000-0000-0000-000000000000
 +
C<--R  !x-sensor/name/id/type/range/arc/rate,a999914b-2391-d4bd-75ea-47e05e70d45d
 +
C-->R  !x-sensor/clear
 +
C<--R  !x-sensor/clear,ok
  
 
* C being any RLV source not yet accepted by the relay
 
* C being any RLV source not yet accepted by the relay
 
* R being the RLV relay
 
* R being the RLV relay
  
  C-->R  !x-ssrepeat/name/id/type/range/arc/rate
+
  C-->R  !x-sensor/name/id/type/range/arc/rate
  C<--R  !x-ssrepeat/name/id/type/range/arc/rate,ko
+
  C<--R  !x-sensor/name/id/type/range/arc/rate,ko
  
The command !x-ssrepeat/clear cancels !x-ssrepeat by executing a remote llSensorRemove().
+
The command !x-sensor/clear cancels !x-sensor (if repeated) by executing a remote llSensorRemove(). The two possible acknowledgments of receipt for !x-sensor/clear are "ok" and "ko".
 +
 
 +
 
 +
===Semantics===
 +
 +
The effect of this command is that the relay performs a llSensor() or a llSensorRepeat() with the given parameters, and sends the result as a list of UUID keys separated by a comma to the source in the acknowledgment of receipt using llRegionSayTo().  
  
 
===Remarks===
 
===Remarks===
Line 66: Line 63:
 
*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.
 
*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.
  
*Unlike !x-sensor, !x-ssrepeat is a restriction to be saved.
+
*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.

Revision as of 02:14, 10 June 2011

sensor

STATUS: draft

version: 001

A unique command !x-sensor allowing to do remote llSensor() and llSensorRepeat()

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) or of llSensorRepeat(string name, key id, integer type, float range, float arc, float rate). The acknowledgment of receipt contains a non empty 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

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/rate
C<--R  !x-sensor/name/id/type/range/arc/rate,97116a5b-686b-64a9-a086-cae72a95ce6b,ccb7ce46-eec4-e790-9995-47d789adfe49
C<--R  !x-sensor/name/id/type/range/arc/rate,97116a5b-686b-64a9-a086-cae72a95ce6b
C<--R  !x-sensor/name/id/type/range/arc/rate,97116a5b-686b-64a9-a086-cae72a95ce6b
C<--R  !x-sensor/name/id/type/range/arc/rate,00000000-0000-0000-0000-000000000000
C<--R  !x-sensor/name/id/type/range/arc/rate,a999914b-2391-d4bd-75ea-47e05e70d45d
C-->R  !x-sensor/clear
C<--R  !x-sensor/clear,ok
  • 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/rate
C<--R  !x-sensor/name/id/type/range/arc/rate,ko

The command !x-sensor/clear cancels !x-sensor (if repeated) by executing a remote llSensorRemove(). The two possible acknowledgments of receipt for !x-sensor/clear are "ok" and "ko".


Semantics

The effect of this command is that the relay performs a llSensor() or a llSensorRepeat() with the given parameters, and sends the result as a list of UUID keys separated by a comma to the source in the acknowledgment of receipt 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.