ExampleHomeAlarmSystem

De DigiWiki.

(Différences entre les versions)
(Page blanchie)
 
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.
 

Version actuelle en date du 11 mars 2012 à 05:06

Outils personnels
  • Cette page a été consultée 796 fois.
donate
Google Ads