I'm writing a Windows Service (like a unix deamon; runs with nobody logged on) to communicate with the PowerLinc USB interface to the X-10 powerline protocol.

Any user program can ask the service to send a command, such as "A1 on" to turn on lamp A1. For this, the natural mechanism is a Windows Mailslot with record-oriented mode. Many programs can open handles simultainiusly, and mine will read from the single other end and see atomic entries in the queue. Now what about the other way? only my program will read from the device, getting status reports such as "A1 is on" and commands such as "A1 on" seen on the wire issued by other control panels. Either way, now it knows A1 is on and remembers that fact. When a user program wants to "read" he doesn't care about reading from the data stream to the device; rather, he wants to know something about the current state.

So, I want to make the current state available (read-only) to any user program. A simple way to do this is with a memory-mapped file holding an array of simple structures.

The state info is very simple. The actual device is either on/off or maybe has a dimming level. In addition, I'll have bits to indicate whether this ID is used at all, is a real X-10 module or a macro in the program, and things like that.

It takes something like 0.86 second to transmit one command on the powerline, and the state is simple, so the serialization isn't a problem.

I'll post more about it in another thread, probably on CUFP.

—John


In reply to Re: Re: Access shared memory from Perl? by John M. Dlugosz
in thread Access shared memory from Perl? by John M. Dlugosz

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.