So I've managed to create code to output sensors information to the XRF serial port. The plan is provide a simple interface allowing the XRF to be switched to different alarm modes:
Mode 0 - IDLE (Radio is off, waiting commands from the serial port)
Mode 1- LEARN (Registers a new alarm peripheral, registration is needed so that a peripheral can be easily identified and you don't get messages for peripheral you are interested in)
Mode 2- LISTEN (Radio is listening for a registered sensors to be tigger)
Mode 3 - SEND (Commands can be sent to an existing Control Panel or Bell).
Currently the code supports Mode 0 and Mode 2, as shown in the output below where we switch to Mode 2 and listen for peripheral events. For now I've hardcode the list of registered peripherals because I still need to write the code to save these to the XRF flash memory.
Once a peripheral event is received we dump the ouput which is an 9 character string (this isn't the raw output) but a simplified representation:
AAABBCCCC
AAA - A 3 digit code representing the alarm perhiperal
PIR - PIR,
PAN - Control Panel,
DOR - Door Switch
REM - Remote Fob
KEY - Keypad
BB - runing number indicated the id of the peripheral (I'll probably allow 32 peripheral to be registered).
CCCC - 4 digit number indicator depending on the perhiperal event. For example in the above output 0004 represents a trigger for a PIR or Door Switch. For a Remote Fob or Keypad 0008 represents a disarm. In the output the Remote Fob disarm is always followed by the Control Panel sending a command to the Bell to stop if activated.
I think we can also decode the Freidland Libra+ Door bell and Spectra Outdoor PIR but I don't have these to prove it.
Next steps are to code up the peripheral registration and write a bootloader so that firmware updates can be applied through the serial port. Then I could release the a cut of the firmware.