A programmable radio communication
system comprises a
transmitter 1 and a
receiver 2. The
transmitter comprises radio transmitting means 5 and
processing means 3. The
processing means is configured to: execute
transmitter firmware 6; execute a transmitter
software application 4; and operate an interface between the transmitter
firmware and the transmitter
software application, wherein the interface supports one or more operators, each operator acting on one or more elements, wherein the transmitter
firmware comprises instructions for: receiving across the interface from the transmitter
software application, an operator and an element, associated with a virtual
pipe between the transmitter software application and a respective
receiver software application; encoding the operator and the element; and using the radio transmitting means to transmit the encoded operator and element by radio, and wherein the
receiver comprises radio receiving means 10 and
processing means 8, the processing means being configured to: execute receiver firmware 11; execute a receiver software application 9; and operate an interface between the receiver firmware and the receiver software application, wherein the receiver firmware comprises instructions for: using the radio receiving means to receive the encoded operator and element; decoding the operator and element; and sending the operator and the element across the interface to the receiver software application, thereby creating the virtual
pipe between the transmitter software application and the receiver software application. One embodiment relates to a
thermometer probe providing temperature readings to a
weather station using GET or
SET operators to e.g. set the current temperature element for that
thermometer probe at the
weather station. One
advantage of the arrangement is to take away from the software applications concerns of packet construction / deconstruction which is instead handled by firmware in the transmitter / receiver and providing one or more pipes, for the interface between the application and firmware, associated with particular operators and / or elements.