|
|
| Ligne 1 : |
Ligne 1 : |
| - | The code is licensed under LGPL: that is, you can use it for any purpose, but
| |
| - | you should acknowledge the author in the sources.
| |
| | | | |
| - | Comments: ruben@rubenkleiman.com
| |
| - |
| |
| - | This code teaches you how to monitor your Second Life home using a web browser. A server is not necessary.
| |
| - | In addition, as people ask me questions, I will add information on useful variations on this code
| |
| - | in the Variations On The Theme section at the end of this page.
| |
| - |
| |
| - | Pre-requisites: Basic familiarity with LSL language and with DHTML.
| |
| - |
| |
| - | The code for this tutorial consists of two files:
| |
| - |
| |
| - | I provide you with (read Instructions below to access them):
| |
| - |
| |
| - | * A ready-to-run, SL script that you can attach to any SL object in your Second Life property.
| |
| - | * An HTML page that communicates with the SL script.
| |
| - |
| |
| - | Please carefully read the instructions in this page before asking me any questions.
| |
| - | This is not a trivial application. Thanks!
| |
| - |
| |
| - | IMPORTANT 1: Until version 1.0 is released, some of the
| |
| - | functionality will be turned on or off, but the main system will function. Documentation will be
| |
| - | available in version 1.0. Until then, the code documentation are
| |
| - | meaningful variable and function names and some comments.
| |
| - | Please do not contact me unless you have carefully read
| |
| - | the instructions in this page (thanks!).
| |
| - |
| |
| - | IMPORTANT 2: This works only in Internet Explorer right now. An ActiveX object is used
| |
| - | to communicate via XML-RPC: you must unblock it if your IE browser blocks it (the default).
| |
| - | I'll change it to work with other browsers when I have the time; the only issue is
| |
| - | the different way Mozilla-based browsers handle certification.
| |
| - |
| |
| - | Instructions
| |
| - |
| |
| - | Follow these steps in order:
| |
| - |
| |
| - | 1 Copy the contents of the following LSL script to an object located in your property:
| |
| - | http://home.earthlink.net/~kleiman/examples/home_alarm04_script.txt
| |
| - | 2 Enable the script by touching the object (follow object's instructions); disable it by touching it again.
| |
| - | The alarm object in SL should acknowledge that it started (chat message).
| |
| - | 3 When the alarm starts, you will get a chat message with the alarm's monitoring channel key. Copy and
| |
| - | paste it so that you can use it in step 6, below.
| |
| - | 4 Copy the contents of the html code in http://home.earthlink.net/~kleiman/examples/home_alarm04_html.txt
| |
| - | into a text file in your computer, save it with an .html extension,
| |
| - | and open it in Internet Explorer. Save it in Notepad (Windows),
| |
| - | but not in a word processing program like Word.
| |
| - | 5 Open the HTML page.
| |
| - | 5a If the Internet Explorer banner at the top of the page asks you whether
| |
| - | to allow an ActiveX control to run, click on the banner message and select
| |
| - | "Allow Blocked Content..." I use a standard ActiveX component that lets your
| |
| - | browser communicate with the Second Life server (and thus to your script).
| |
| - | 5b Ensure that cookies are enabled in your browser or else accept cookies from the page.
| |
| - | I use a cookie to save your configuration information.
| |
| - | 6 Enter the alarm system key (see step 3, above) into the "Channel Key"
| |
| - | field in the "Alarm Configuration Settings" sections of the page.
| |
| - | The setting will take effect once you out of the field.
| |
| - | (Right now, the only way to go back to the default settings is
| |
| - | to remove the alarm system's cookie.)
| |
| - | 7 On the web browser, click on the "Start" button to start monitoring from your browser location.
| |
| - | Your should immediately see status information and you will get results in a few
| |
| - | seconds. Wait 20 seconds. In version 0.4, the browser will poll the home alarm system every 20 seconds
| |
| - | This is a configurable setting.
| |
| - | (being nice to the poor little overworked SL servers out there).
| |
| - | Some debugging information from your SL alarm object may from time to time show up as chat.
| |
| - | 8 Until the 1.0 release, I urge you not to change the configuration settings
| |
| - | other than the alarm's monitoring channel key, as necessary.
| |
| - | If you change any settings, some may not work as expected or your alarm
| |
| - | system might crash due to problem described in Known Problems, below.
| |
| - |
| |
| - | Have fun!
| |
| - | - Ruben
| |
| - |
| |
| - | Troubleshooting
| |
| - |
| |
| - | 1. Have you followed the steps in the instructions in the right order?
| |
| - | 2. Are you sure that you started the alarm? The alarm will give
| |
| - | you a message when it starts. Touch it again if you are not sure.
| |
| - | 3. Are you sure that the alarm key that you entered in your
| |
| - | browser is the same as the home alarm's key?
| |
| - | 4. Have you limited your monitoring to one browser at a time?
| |
| - | 5. Are you not sure that your Internet Explorer page is
| |
| - | properly initialized? Start Internet Explorer and
| |
| - | delete all cookies (Tools -> Internet Options); then open
| |
| - | the alarm system page again and enter the monitoring channel key.
| |
| - | (If you want to manually delete just the alarm system cookie, its
| |
| - | name starts with _rk_.)
| |
| - | 6. Nothing happens? Make sure that you have started the alarm system object in SL
| |
| - | and that you have clicked the "Start Monitoring" button in the web browser page.
| |
| - | Look at your chat messages in SL to make sure that your alarm object is healthy
| |
| - | (it will tell you if/when it crashes).
| |
| - |
| |
| - |
| |
| - | Known Problems
| |
| - |
| |
| - | 1. If the number of sensed objects is large, you will get a stack heap crash.
| |
| - | The default configuration settings will minimize but
| |
| - | not necessarily eliminate this possibility.
| |
| - | 2. Changing configuration settings may precipitate problem #1.
| |
| - |
| |
| - | Variations On The Theme
| |
| - |
| |
| - | Is it possible to send binary data to the SL server?
| |
| - |
| |
| - | In theory, yes. In practice, you need to be aware that:
| |
| - |
| |
| - | (1) Data is marshalled in XML, which is based
| |
| - | on a character set rather than on a binary format.
| |
| - |
| |
| - | (2) The file size of an XML file accepted by the SL server
| |
| - | is arbitrary; we have no control over it.
| |
| - |
| |
| - | Solution:
| |
| - |
| |
| - | (1) Binary format: Pack and unpack your binary file data into a format that will
| |
| - | survive the network and transport layers. One such format is Base64.
| |
| - | On the HTML page, use Javascript to marshall the binary data
| |
| - | into a Base64 string. Similarly, on the SL script side, change it
| |
| - | to convert the received (Base64) string into binary
| |
| - | using llBase64ToInteger. What you do with the binary data
| |
| - | is up to you from here on.
| |
| - |
| |
| - | (2) File size: experiment with increasingly large file sizes until you get an error.
| |
| - | That will tell you the actual maximum file size.
| |