RELEASE 0.7.3 - fixes a bug where last_low was wrong

- last_low could be (wrongly) equal to zero.

- Also creates a fifth example, found in
  examples/05_print_code_for_RF433recv_lib

- Fixes a minor issue (a bug? almost) where the separator could be
  bigger than the initialization sequence. Now sep will always be lower
  than, or equal to, initseq.
This commit is contained in:
Sébastien Millet 2021-12-20 15:17:14 +01:00
parent ef74c2c5c0
commit a0e07369fa
56 changed files with 598 additions and 70 deletions

View File

@ -44,6 +44,8 @@ See [examples/04_callback/04_callback.ino](examples/04_callback/04_callback.ino)
for an example with callback functions registered to be called when specific
codes are received.
Use [examples/05_print_code_for_RF433recv_lib/05_print_code_for_RF433recv_lib.ino](examples/05_print_code_for_RF433recv_lib/05_print_code_for_RF433recv_lib.ino)
to display code characteristics in a way that is usable by the library RF433recv.
More details
------------
@ -99,3 +101,31 @@ Bit value depending on convention
| Manchester | low short, high short | 0 | 1 |
| Manchester | high short, low short | 1 | 0 |
About RF433any versus RF433recv
-------------------------------
RF433recv is found here:
[https://github.com/sebmillet/RF433recv](https://github.com/sebmillet/RF433recv)
- RF433any has no pre-defined idea of the code to analyze (nature of encoding,
code timings, number of bits).
- RF433recv works the other way round: it works with the exact code
characteristics.
**Then what is RF433recv good for?**
Actually RF433any, while being 'easy and universal', consumes *a lot* of
memory, and this can be problematic.
**How to get the best of the two worlds**
You can use RF433any to get the exact code characteristics and re-use it with
RF433recv library.
This is the goal of
[examples/05_print_code_for_RF433recv_lib/05_print_code_for_RF433recv_lib.ino](examples/05_print_code_for_RF433recv_lib/05_print_code_for_RF433recv_lib.ino)
You can copy-paste the output of this sketch to call RF433recv library.

View File

@ -694,6 +694,8 @@ void Decoder::set_ts(const uint16_t& arg_initseq, const Timings& ts) {
tsext.high_short = ts.high_short;
tsext.high_long = ts.high_long;
tsext.sep = ts.sep;
if (arg_initseq && tsext.sep > arg_initseq)
tsext.sep = arg_initseq;
}
void Decoder::get_tsext(TimingsExt *p_tsext) const {
@ -703,11 +705,11 @@ void Decoder::get_tsext(TimingsExt *p_tsext) const {
void Decoder::take_into_account_first_low_high(const Section *psec,
bool is_cont_of_prev_sec) {
tsext.last_low = psec->last_low;
if (is_cont_of_prev_sec)
return;
tsext.first_low = psec->first_low;
tsext.first_high = psec->first_high;
tsext.last_low = psec->last_low;
Signal e[2];
for (short i = 0; i < 2; ++i) {

View File

@ -0,0 +1,143 @@
// 05_print_code_for_RF433recv_lib.ino
// Example sketch that comes along with RF433any library
// Displays the signal shape in a way that is ready to use with the library
// RF433recv.
/*
Copyright 2021 Sébastien Millet
`RF433any' is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
`RF433any' is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this program. If not, see
<https://www.gnu.org/licenses>.
*/
//
// Schematic: Radio Frequencies RECEIVER plugged on D2
//
#include "RF433any.h"
#include <Arduino.h>
#define PIN_RFINPUT 2
char serial_printf_buffer[100];
void serial_printf(const char* msg, ...)
__attribute__((format(printf, 1, 2)));
// NOTE
// Assume Serial has been initialized (Serial.begin(...))
void serial_printf(const char* msg, ...) {
va_list args;
va_start(args, msg);
vsnprintf(serial_printf_buffer, sizeof(serial_printf_buffer), msg, args);
va_end(args);
Serial.print(serial_printf_buffer);
}
void setup() {
pinMode(PIN_RFINPUT, INPUT);
Serial.begin(115200);
Serial.print(F("Waiting for signal\n"));
}
Track track(PIN_RFINPUT);
const char *encoding_names[] = {
"RFMOD_TRIBIT",
"RFMOD_TRIBIT_INVERTED",
"RFMOD_MANCHESTER",
"<unmanaged encoding>"
};
void output_timings(Decoder *pdec, byte nb_bits) {
TimingsExt tsext;
if (!pdec)
return;
pdec->get_tsext(&tsext);
if (!tsext.initseq)
return;
// serial_printf(" I=%u, LS=%u, LL=%u, HS=%u, HL=%u, S=%u, U=%u, "
// "V=%u, Y=%u, Z=%u\n", tsext.initseq, tsext.low_short,
// tsext.low_long, tsext.high_short, tsext.high_long, tsext.sep,
// tsext.first_low, tsext.first_high, tsext.first_low_ignored,
// tsext.last_low);
const char *enc;
if (pdec->get_id_letter() == 'T')
enc = encoding_names[0];
else if (pdec->get_id_letter() == 'N')
enc = encoding_names[1];
else if (pdec->get_id_letter() == 'M')
enc = encoding_names[2];
else
enc = encoding_names[3];
serial_printf("\n// -----CODE START-----\n");
serial_printf(" // [WRITE THE DEVICE NAME HERE]\n"
"rf.register_Receiver(\n");
serial_printf("%s, // mod\n", enc);
serial_printf("%5u, // initseq\n", tsext.initseq);
serial_printf("%5u, // lo_prefix\n", tsext.first_low);
serial_printf("%5u, // hi_prefix\n", tsext.first_high);
serial_printf("%5u, // first_lo_ign\n", tsext.first_low_ignored);
serial_printf("%5u, // lo_short\n", tsext.low_short);
serial_printf("%5u, // lo_long\n", tsext.low_long);
serial_printf("%5u, // hi_short (0 => take lo_short)\n", tsext.high_short);
serial_printf("%5u, // hi_long (0 => take lo_long)\n", tsext.high_long);
serial_printf("%5u, // lo_last\n", tsext.last_low);
serial_printf("%5u, // sep\n", tsext.sep);
serial_printf("%5u // nb_bits\n", nb_bits);
serial_printf(");\n");
serial_printf("// -----CODE END-----\n\n");
}
void loop() {
track.treset();
while (!track.do_events())
delay(1);
Decoder *pdec0 = track.get_data(RF433ANY_FD_ALL);
Decoder *pdec = pdec0;
while (pdec) {
int nb_bits = pdec->get_nb_bits();
bool got_data = pdec->data_got_decoded();
BitVector *pdata = pdec->take_away_data();
serial_printf("Decoded: %s, err: %d, code: %c, "
"rep: %d, bits: %2d", (got_data ? "yes" : "no "),
pdec->get_nb_errors(), pdec->get_id_letter(),
pdec->get_repeats() + 1, nb_bits);
if (pdata) {
Serial.print(", data: ");
char *buf = pdata->to_str();
if (buf) {
Serial.print(buf);
free(buf);
}
delete pdata;
}
Serial.print("\n");
output_timings(pdec, nb_bits);
pdec = pdec->get_next();
}
delete pdec0;
}
// vim: ts=4:sw=4:tw=80:et

View File

@ -0,0 +1,10 @@
ARDUINO_DIR = /usr/share/arduino
ARDUINO_LIBS = RF433any
ARDMK_DIR = /home/sebastien/.arduino_mk
# USER_LIB_PATH = /home/sebastien/travail/cpp/seb/arduino/libraries
BOARD_TAG = uno
MCU = atmega328
include $(ARDMK_DIR)/Arduino.mk

View File

@ -0,0 +1,343 @@
#!/usr/bin/bash
# am
# Copyright 2019, 2020, 2021 Sébastien Millet
# Can perform the following:
# 1. Compile the code
# 2. Upload to Arduino
# 3. Read (continually) what is arriving from the USB port the Arduino is
# connected to
# Versions history (as of 1.3)
# 1.3 Output from Arduino is recorded in files named with numbers instead of
# date-time string.
# 1.4 Adds -t (--testplan) option, to set TESTPLAN macro
# 1.5 -t (or --testplan) now comes with a value, so as to manage multiple test
# plans.
# 1.6 Updated to work fine with Arch arduino package instead of the manually
# installed (from tar.gz source) package used so far.
# 1.7 Renames archlinux-arduino back to arduino, and created corresponding
# symlink (was cleaner to do s).
set -euo pipefail
VERSION=1.7
PORT=
BOARD=
SPEED=
FQBN=
BUILDDIR=
RECORDDIR=out
READSPEED=
RECORDFILE=
UPLOAD="no"
VERBOSE="no"
CATUSB="no"
STTY="no"
RECORDUSB="no"
COMPILE="yes"
TESTPLAN=
DISPLAYSEP=no
function finish {
if [ "${DISPLAYSEP}" == "yes" ]; then
echo "-----END ARDUINO OUTPUT-----" | tee -a "${RECORDFILE}"
fi
}
trap finish EXIT
function usage {
echo "Usage:"
echo " am [OPTIONS...] FILE"
echo "Compile FILE using arduino-builder."
echo "Example: am sketch.ino"
echo ""
echo "ENVIRONMENT VARIABLES"
echo " If ARDUINO_USER_LIBS is defined and non empty, then arduino-builder"
echo " is called with the supplementary option -libraries followed by"
echo " ARDUINO_USER_LIBS' value."
echo ""
echo "OPTIONS"
echo " -h --help Display this help screen"
echo " -V --version Output version information and quit"
echo " -v --verbose Be more talkative"
echo " -u --upload Upload compiled code into Arduino"
echo " -b --board Board, either 'uno' or 'nano'"
echo " -p --port Port, for ex. '/dev/ttyUSB0'"
echo " -s --speed Upload speed, for ex. 115200"
echo " Normally, speed is infered from device type:"
echo " 115200 for Uno, 57600 for Nano"
echo " -B --fqbn Board Fully Qualified Name, like 'arduino:avr:uno'"
echo " -d --builddir Build directory"
echo " -c --catusb Display (continually) what Arduino writes on USB"
echo " --stty Tune stty properly for later communication (implied"
echo " by --catusb)"
echo " -r --recordusb Write USB (continually) to a file (implies -c)"
echo " --recordfile Output file if -r option is set"
echo " -n --nocompile Don't compile code"
echo " --readspeed Read speed of USB. If not specified, this script"
echo " will try to infere it from source file. If it"
echo " fails, it'll fallback to 9600."
echo " This option is useful only if USB is read"
echo " (-c or --stty option set)"
echo " -t --testplan Set TESTPLAN macro value"
echo " (as if #define TESTPLAN VALUE)"
exit 1
}
function version {
echo "am version ${VERSION}"
exit
}
OPTS=$(getopt -o hVvub:p:s:B:d:crnt: --long help,version,verbose,upload,board:,port:,speed:,fqbn:,builddir:,catusb,stty,recordusb,nocompile,readspeed:,recordfile:,testplan: -n 'am' -- "$@")
eval set -- "$OPTS"
while true; do
case "$1" in
-h | --help ) usage; shift ;;
-V | --version ) version; shift ;;
-v | --verbose ) VERBOSE="yes"; shift ;;
-u | --upload ) UPLOAD="yes"; shift ;;
-b | --board ) BOARD="$2"; shift 2 ;;
-p | --port ) PORT="$2"; shift 2 ;;
-s | --speed ) SPEED="$2"; shift 2 ;;
-B | --fqbn ) FQBN="$2"; shift 2 ;;
-d | --builddir ) BUILDDIR="$2"; shift 2 ;;
-c | --catusb ) CATUSB="yes"; shift ;;
-r | --recordusb ) RECORDUSB="yes"; CATUSB="yes"; shift ;;
-n | --nocompile ) COMPILE="no"; shift ;;
--readspeed ) READSPEED="$2"; shift 2 ;;
--recordfile ) RECORDFILE="$2"; shift 2 ;;
--stty ) STTY="yes"; shift ;;
-t | --testplan ) TESTPLAN="$2"; shift 2 ;;
-- ) shift; break ;;
* ) break ;;
esac
done
FILE=${1:-}
TRAILINGOPTS=${2:-}
if [ -n "${TRAILINGOPTS}" ]; then
echo "Error: trailing options"
exit 1;
fi
if [ -z "${FILE}" ]; then
echo "Error: no input file"
exit 1;
fi
set +e
if [ -n "${BOARD}" ]; then
if [ "${BOARD}" != "uno" ] && [ "${BOARD}" != "nano" ]; then
echo "Error: board '${BOARD}' unknown"
exit 1
fi
fi
#ARDUINODIR=$(LANG='' type -a arduino \
# | tail -n 1 \
# | sed 's/\S\+\sis\s//')
#ARDUINODIR=$(readlink -f "${ARDUINODIR}")
#ARDUINODIR=$(dirname "${ARDUINODIR}")
ARDUINODIR=/usr/share/arduino
COUNTUNO=$(compgen -G '/dev/ttyACM*' | wc -l)
COUNTNANO=$(compgen -G '/dev/ttyUSB*' | wc -l)
if [ -z "${BOARD}" ]; then
if [ "${COUNTUNO}" -ge 1 ] && [ "${COUNTNANO}" -ge 1 ]; then
echo "Error: cannot guess board, found ${COUNTUNO} uno(s), ${COUNTNANO} nano(s)"
exit 10
fi
if [ "${COUNTUNO}" -ge 1 ]; then
BOARD=uno
elif [ "${COUNTNANO}" -ge 1 ]; then
BOARD=nano
fi
if [ -z "${BOARD}" ]; then
echo "Error: cannot guess board, none found";
exit 10
fi
fi
if [ "${UPLOAD}" == "yes" ] || [ "${CATUSB}" == "yes" ]; then
if [ -z "${PORT}" ]; then
if [ "${BOARD}" == "uno" ]; then
COUNT=${COUNTUNO}
PORT=$(compgen -G '/dev/ttyACM*')
elif [ "${BOARD}" == "nano" ]; then
COUNT=${COUNTNANO}
PORT=$(compgen -G '/dev/ttyUSB*')
else
echo "FATAL #001, CHECK THIS CODE"
exit 99
fi
if [ "${COUNT}" -ge 2 ]; then
echo "Error: cannot guess port, more than 1 board '${BOARD}' found"
exit 10
fi
if [ -z "${PORT}" ]; then
echo "Error: cannot guess port, none found"
exit 10
fi
fi
if [ -z "${SPEED}" ]; then
if [ "${BOARD}" == "uno" ]; then
SPEED=115200
elif [ "${BOARD}" == "nano" ]; then
SPEED=57600
else
echo "FATAL #002, CHECK THIS CODE"
exit 99
fi
fi
if [ ! -e "${PORT}" ]; then
echo "Error: port not found"
exit 10
fi
fi
if [ -z "${FQBN}" ]; then
if [ "${BOARD}" == "uno" ]; then
FQBN="arduino:avr:uno"
elif [ "${BOARD}" == "nano" ]; then
FQBN="arduino:avr:nano:cpu=atmega328old"
else
echo "FATAL #003, CHECK THIS CODE"
exit 99
fi
fi
if [ -z "${BUILDDIR}" ]; then
if [[ "${FILE}" == */* ]]; then
BUILDDIR=${FILE%/*}
BUILDDIR="${BUILDDIR%/}/build"
else
BUILDDIR=build
fi
fi
if [ "${RECORDUSB}" == "yes" ]; then
if [ -z "${RECORDFILE}" ]; then
V=${FILE##*/}
V=${V%.*}
V=${V:-out}
PREV=
for i in {15..00}; do
F="${RECORDDIR}/${V}-$i.txt"
if [ -e "${F}" ] && [ -n "${PREV}" ]; then
mv "${F}" "${PREV}"
fi
PREV="${F}"
done
RECORDFILE="${F}"
mkdir -p "${RECORDDIR}"
fi
else
RECORDFILE="/dev/null"
fi
if [ "${VERBOSE}" == "yes" ]; then
echo "-- Settings"
echo "Arduino dir: ${ARDUINODIR}"
echo "Board: ${BOARD}"
echo "Port: ${PORT}"
echo "Speed: ${SPEED}"
echo "Fqbn: ${FQBN}"
echo "Upload: ${UPLOAD}"
echo "Catusb: ${CATUSB}"
echo "Recordusb: ${RECORDUSB}"
echo "Record file: ${RECORDFILE}"
echo "Verbose: ${VERBOSE}"
echo "File: ${FILE}"
echo "Build dir: ${BUILDDIR}"
fi
set -e
if [ "${COMPILE}" == "yes" ]; then
echo "-- Compile"
mkdir -p "${BUILDDIR}"
OPT_LIB=
TMP_ULIB=${ARDUINO_USER_LIBS:-}
if [ -n "${TMP_ULIB}" ]; then
OPT_LIB="-libraries ""${TMP_ULIB}"""
fi
TESTPLAN_OPT=""
if [ -n "${TESTPLAN}" ]; then
TESTPLAN_OPT="-prefs=build.extra_flags=-DTESTPLAN=${TESTPLAN}"
fi
# shellcheck disable=SC2086
# (We don't want to quote OPT_LIB as it can contain multiple options.)
"${ARDUINODIR}/arduino-builder" \
-hardware "${ARDUINODIR}/hardware" \
-tools "${ARDUINODIR}/hardware/tools/avr" \
-tools "${ARDUINODIR}/tools-builder" \
-built-in-libraries "${ARDUINODIR}/libraries" \
${OPT_LIB} \
-fqbn "${FQBN}" \
-build-path "${BUILDDIR}" \
${TESTPLAN_OPT} \
"${FILE}"
fi
FILEBASENAME=${FILE##*/}
if [ "${UPLOAD}" == "yes" ]; then
echo "-- Upload"
"/usr/bin/avrdude" \
-q -q -patmega328p -carduino -P"${PORT}" -b"${SPEED}" -D \
-Uflash:w:"${BUILDDIR}/${FILEBASENAME}".hex:i
fi
if [ "${CATUSB}" == "yes" ] || [ "${STTY}" == "yes" ]; then
if [ -z "${READSPEED}" ]; then
TFILE=$(mktemp)
gcc -fpreprocessed -dD -x c++ -E "${FILE}" > "${TFILE}"
for sp in 9600 19200 28800 38400 57600 115200; do
if grep ${sp} "${TFILE}" > /dev/null; then
READSPEED=${sp}
fi
done
READSPEED=${READSPEED:-9600}
rm "${TFILE}"
fi
stty -F "${PORT}" -hupcl -echo "${READSPEED}"
echo "-- usb setup with speed ${READSPEED}"
fi
if [ "${CATUSB}" == "yes" ]; then
echo "-- Read usb (Ctrl-C to quit)"
DISPLAYSEP=yes
{
echo "speed=${READSPEED}"
echo "fqbn=${FQBN}"
echo "port=${PORT}"
echo "file=${FILE}"
echo "filedate=$(date +"%Y-%m-%dT%H:%M:%SZ" -d @$(stat -c '%Y' "${FILE}"))"
echo "date=$(date +'%Y-%m-%dT%H:%M:%SZ')"
echo ""
echo "-----BEGIN ARDUINO OUTPUT-----"
} | tee "${RECORDFILE}"
tee -a "${RECORDFILE}" < "${PORT}"
fi

View File

@ -1,2 +1,2 @@
[0] Received 9 bits: 01 6e
T=TRI, E=0, I=9000, S=572, L=1256, P=7020, Y=0, Z=528
T=TRI, E=0, I=9000, S=572, L=1256, P=7020, Y=0, Z=522

View File

@ -1,3 +1,3 @@
[0] Unknown encoding: 18 signal bits
Signal: LS:SL:LS:LS:SL:LS:LS:LS:LL:SP
T=UNK, E=0, I=9000, S=572, L=1256, P=7020, Y=0, Z=1232
T=UNK, E=0, I=9000, S=572, L=1256, P=7020, Y=0, Z=522

View File

@ -1,4 +1,4 @@
[0] Received 32 bits: b5 35 6d 00
T=TRI, E=0, I=6908, S=598, L=1224, P=7036, Y=0, Z=560
T=TRI, E=0, I=6908, S=598, L=1224, P=6908, Y=0, Z=560
[1] Received 32 bits: b5 35 6d 00
T=TRI, E=0, I=0, S=598, L=1224, P=6984, Y=0, Z=408

View File

@ -1,4 +1,4 @@
[0] Received 32 bits: b5 35 6d 00
T=TRI, E=0, I=6908, S=598, L=1224, P=7036, Y=0, Z=572
T=TRI, E=0, I=6908, S=598, L=1224, P=6908, Y=0, Z=560
[1] Received 32 bits: b5 35 6d 00
T=TRI, E=0, I=0, S=598, L=1224, P=6984, Y=0, Z=544
T=TRI, E=0, I=0, S=598, L=1224, P=6984, Y=0, Z=408

View File

@ -1,4 +1,4 @@
[0] Received 32 bits: 7e dc 56 78
T=MAN, E=0, I=5436, S=1180, L=2270, P=6724, Y=0, Z=1112
T=MAN, E=0, I=5436, S=1180, L=2270, P=5436, Y=0, Z=1112
[1] Received 32 bits: 7e dc 56 78
T=MAN, E=0, I=0, S=1180, L=2270, P=6740, Y=0, Z=1088

View File

@ -1,6 +1,6 @@
[0] Received 32 bits: 7e dc 56 78
T=MAN, E=0, I=5436, S=1180, L=2270, P=6724, Y=0, Z=1180
T=MAN, E=0, I=5436, S=1180, L=2270, P=5436, Y=0, Z=1112
[1] Received 32 bits: 7e dc 56 78
T=MAN, E=0, I=0, S=1180, L=2270, P=6740, Y=0, Z=1120
T=MAN, E=0, I=0, S=1180, L=2270, P=6740, Y=0, Z=1088
[2] Received 9 bits: 00 fd
T=MAN, E=0, I=0, S=1180, L=2270, P=0, Y=0, Z=1088

View File

@ -1,4 +1,4 @@
[0] Received 32 bits: 8e dc 56 7f
T=MAN, E=0, I=5568, S=1154, L=2314, P=5576, Y=0, Z=1100
T=MAN, E=0, I=5568, S=1154, L=2314, P=5568, Y=0, Z=1100
[1] Received 32 bits: 8e dc 56 7f
T=MAN, E=0, I=0, S=1154, L=2314, P=5584, Y=0, Z=1080

View File

@ -1,6 +1,6 @@
[0] Received 32 bits: 8e dc 56 7f
T=MAN, E=0, I=5568, S=1154, L=2314, P=5576, Y=0, Z=2260
T=MAN, E=0, I=5568, S=1154, L=2314, P=5568, Y=0, Z=1100
[1] Received 32 bits: 8e dc 56 7f
T=MAN, E=0, I=0, S=1154, L=2314, P=5584, Y=0, Z=2248
T=MAN, E=0, I=0, S=1154, L=2314, P=5584, Y=0, Z=1080
[2] Received 11 bits: 04 76
T=MAN, E=0, I=0, S=1154, L=2314, P=0, Y=0, Z=2244

View File

@ -1,4 +1,4 @@
[0] Received 32 bits: fe dc 56 78
T=MAN, E=0, I=5468, S=1154, L=2310, P=6716, Y=0, Z=1104
T=MAN, E=0, I=5468, S=1154, L=2310, P=5468, Y=0, Z=1104
[1] Received 32 bits: fe dc 56 78
T=MAN, E=0, I=0, S=1154, L=2310, P=6732, Y=0, Z=1088

View File

@ -1,6 +1,6 @@
[0] Received 32 bits: fe dc 56 78
T=MAN, E=0, I=5468, S=1154, L=2310, P=6716, Y=0, Z=1180
T=MAN, E=0, I=5468, S=1154, L=2310, P=5468, Y=0, Z=1104
[1] Received 32 bits: fe dc 56 78
T=MAN, E=0, I=0, S=1154, L=2310, P=6732, Y=0, Z=1116
T=MAN, E=0, I=0, S=1154, L=2310, P=6732, Y=0, Z=1088
[2] Received 9 bits: 01 fd
T=MAN, E=0, I=0, S=1154, L=2310, P=0, Y=0, Z=1096

View File

@ -1,5 +1,5 @@
[0] Received 32 bits: 7e dc 56 78
T=MAN, E=0, I=5436, S=1180, L=2270, P=6724, Y=0, Z=1112
T=MAN, E=0, I=5436, S=1180, L=2270, P=5436, Y=0, Z=1112
[1] Unknown encoding: 50 signal bits
Signal: SS:SL:SS:SS:SS:SS:SS:LL:SS:LL:SS:SS:LS:SS:SL:LL:SL:SS:LS:SL:SS:SS:SS:LS:SS:SP
T=UNK, E=0, I=0, S=1180, L=2270, P=6740, Y=0, Z=1088

View File

@ -1,6 +1,6 @@
[0] Received 32 bits: 7e dc 56 78
T=MAN, E=0, I=5436, S=1180, L=2270, P=6724, Y=0, Z=1180
T=MAN, E=0, I=5436, S=1180, L=2270, P=5436, Y=0, Z=1112
[1] Received 27 bits(!): 03 f6 e2 a3
T=MAN, E=4, I=0, S=1180, L=2270, P=6740, Y=0, Z=1120
T=MAN, E=4, I=0, S=1180, L=2270, P=6740, Y=0, Z=1088
[2] Received 9 bits: 00 fd
T=MAN, E=0, I=0, S=1180, L=2270, P=0, Y=0, Z=1088

View File

@ -1,4 +1,4 @@
[0] Sync 11
T=SYN, E=0, I=14916, S(lo)=348, L(lo)=348, S(hi)=364, L(hi)=364, P=3724, Y=0, Z=348
[1] Received 55 bits: 50 8f 1a 30 08 98 cf
T=TRI, E=0, I=0, S=356, L=734, P=3000, Y=0, Z=344
T=TRI, E=0, I=0, S=356, L=734, P=3000, Y=0, Z=708

View File

@ -1,4 +1,4 @@
[0] Sync 11
T=SYN, E=0, I=14916, S(lo)=348, L(lo)=348, S(hi)=364, L(hi)=364, P=3724, Y=0, Z=344
[1] Received 55 bits: 50 8f 1a 30 08 98 cf
T=TRI, E=0, I=0, S=356, L=734, P=3000, Y=0, Z=356
T=TRI, E=0, I=0, S=356, L=734, P=3000, Y=0, Z=708

View File

@ -1,4 +1,4 @@
[0] Sync 11
T=SYN, E=0, I=14924, S(lo)=348, L(lo)=348, S(hi)=364, L(hi)=364, P=3740, Y=0, Z=340
[1] Received 55 bits: 29 3d 1c 2f 08 98 cf
T=TRI, E=0, I=0, S=356, L=734, P=3000, Y=0, Z=316
T=TRI, E=0, I=0, S=356, L=734, P=3000, Y=0, Z=692

View File

@ -1,4 +1,4 @@
[0] Sync 11
T=SYN, E=0, I=14924, S(lo)=348, L(lo)=348, S(hi)=364, L(hi)=364, P=3740, Y=0, Z=324
[1] Received 55 bits: 29 3d 1c 2f 08 98 cf
T=TRI, E=0, I=0, S=356, L=734, P=3000, Y=0, Z=336
T=TRI, E=0, I=0, S=356, L=734, P=3000, Y=0, Z=692

View File

@ -1,7 +1,7 @@
[0] Sync 11
T=SYN, E=0, I=14916, S(lo)=348, L(lo)=348, S(hi)=364, L(hi)=364, P=3724, Y=0, Z=348
[1] Received 33 bits: 01 42 3c 68 c0
T=TRI, E=0, I=0, S=356, L=734, P=15284, Y=0, Z=344
T=TRI, E=0, I=0, S=356, L=734, P=15284, Y=0, Z=328
[2] Sync 11
T=SYN, E=0, I=0, S=356, L=734, P=3740, Y=0, Z=336
[3] Received 9 bits: 01 42

View File

@ -1,8 +1,8 @@
[0] Sync 11
T=SYN, E=0, I=14916, S(lo)=348, L(lo)=348, S(hi)=364, L(hi)=364, P=3724, Y=0, Z=344
[1] Received 33 bits: 01 42 3c 68 c0
T=TRI, E=0, I=0, S=356, L=734, P=15284, Y=0, Z=356
T=TRI, E=0, I=0, S=356, L=734, P=15284, Y=0, Z=328
[2] Sync 11
T=SYN, E=0, I=0, S=356, L=734, P=3740, Y=0, Z=340
T=SYN, E=0, I=0, S=356, L=734, P=3740, Y=0, Z=336
[3] Received 9 bits: 01 42
T=TRI, E=0, I=0, S=356, L=734, P=0, Y=0, Z=356

View File

@ -1,7 +1,7 @@
[0] Sync 11
T=SYN, E=0, I=14916, S(lo)=348, L(lo)=348, S(hi)=364, L(hi)=364, P=3724, Y=0, Z=348
[1] Received 33 bits: 01 42 3c 68 c0
T=TRI, E=0, I=0, S=356, L=734, P=15284, Y=0, Z=344
T=TRI, E=0, I=0, S=356, L=734, P=15284, Y=0, Z=328
[2] Sync 11
T=SYN, E=0, I=0, S=356, L=734, P=3740, Y=0, Z=336
[3] Received 10 bits: 02 84

View File

@ -1,8 +1,8 @@
[0] Sync 11
T=SYN, E=0, I=14916, S(lo)=348, L(lo)=348, S(hi)=364, L(hi)=364, P=3724, Y=0, Z=344
[1] Received 33 bits: 01 42 3c 68 c0
T=TRI, E=0, I=0, S=356, L=734, P=15284, Y=0, Z=356
T=TRI, E=0, I=0, S=356, L=734, P=15284, Y=0, Z=328
[2] Sync 11
T=SYN, E=0, I=0, S=356, L=734, P=3740, Y=0, Z=340
T=SYN, E=0, I=0, S=356, L=734, P=3740, Y=0, Z=336
[3] Received 9 bits: 01 42
T=TRI, E=0, I=0, S=356, L=734, P=0, Y=0, Z=356

View File

@ -1,4 +1,4 @@
[0] Sync 11
T=SYN, E=0, I=14916, S(lo)=348, L(lo)=348, S(hi)=364, L(hi)=364, P=3724, Y=0, Z=344
[1] Received 48 bits(!): a1 1e 34 60 22 63
T=TRI, E=1, I=0, S=356, L=734, P=0, Y=0, Z=356
T=TRI, E=1, I=0, S=356, L=734, P=0, Y=0, Z=708

View File

@ -2,6 +2,6 @@
T=SYN, E=0, I=14916, S(lo)=348, L(lo)=348, S(hi)=364, L(hi)=364, P=3724, Y=0, Z=344
[1] Unknown encoding: 48 signal bits
Signal: LS:SL:SS:SL:SL:LS:SL:SL:SL:SL:LS:LS:SL:SL:SL:LS:LS:SL:SL:LS:LS:SL:LS:LS:SP
T=UNK, E=0, I=0, S=356, L=736, P=15284, Y=0, Z=340
T=UNK, E=0, I=0, S=356, L=736, P=15284, Y=0, Z=328
[2] Sync 8
T=SYN, E=0, I=0, S=356, L=736, P=3740, Y=0, Z=336

View File

@ -1,4 +1,4 @@
[0] Received 24 bits: b9 4d 24
T=TRI, E=0, I=5652, S=338, L=1044, P=10664, Y=0, Z=364
T=TRI, E=0, I=5652, S=338, L=1044, P=5652, Y=0, Z=364
[1] Received 24 bits: b9 4d 24
T=TRI, E=0, I=0, S=338, L=1044, P=10688, Y=0, Z=324

View File

@ -1,6 +1,6 @@
[0] Received 24 bits: b9 4d 24
T=TRI, E=0, I=5652, S=338, L=1044, P=10664, Y=0, Z=400
T=TRI, E=0, I=5652, S=338, L=1044, P=5652, Y=0, Z=364
[1] Received 24 bits: b9 4d 24
T=TRI, E=0, I=0, S=338, L=1044, P=10688, Y=0, Z=364
T=TRI, E=0, I=0, S=338, L=1044, P=10688, Y=0, Z=324
[2] Received 17 bits: 01 72 9a
T=TRI, E=0, I=0, S=338, L=1044, P=0, Y=0, Z=328

View File

@ -1,4 +1,4 @@
[0] Received 24 bits: b9 4d 24
T=TRI, E=0, I=10680, S=336, L=1036, P=10700, Y=0, Z=328
T=TRI, E=0, I=10680, S=336, L=1036, P=10680, Y=0, Z=328
[1] Received 24 bits: b9 4d 24
T=TRI, E=0, I=0, S=336, L=1036, P=10708, Y=0, Z=316

View File

@ -1,6 +1,6 @@
[0] Received 24 bits: b9 4d 24
T=TRI, E=0, I=10680, S=336, L=1036, P=10700, Y=0, Z=348
T=TRI, E=0, I=10680, S=336, L=1036, P=10680, Y=0, Z=328
[1] Received 24 bits: b9 4d 24
T=TRI, E=0, I=0, S=336, L=1036, P=10708, Y=0, Z=332
T=TRI, E=0, I=0, S=336, L=1036, P=10708, Y=0, Z=316
[2] Received 17 bits: 01 72 9a
T=TRI, E=0, I=0, S=336, L=1036, P=0, Y=0, Z=312

View File

@ -1,5 +1,5 @@
[0] Unknown encoding: 48 signal bits
Signal: LS:SL:LS:LS:LS:SL:SL:LS:SL:SS:SL:SL:LS:LS:SL:LS:SL:SL:LS:SL:SL:LS:SL:SL:SP
T=UNK, E=0, I=5652, S=338, L=1044, P=10664, Y=0, Z=364
T=UNK, E=0, I=5652, S=338, L=1044, P=5652, Y=0, Z=364
[1] Received 24 bits: b9 4d 24
T=TRI, E=0, I=0, S=338, L=1044, P=10688, Y=0, Z=324

View File

@ -1,6 +1,6 @@
[0] Received 23 bits(!): 5c 8d 24
T=TRI, E=1, I=5652, S=338, L=1044, P=10664, Y=0, Z=400
T=TRI, E=1, I=5652, S=338, L=1044, P=5652, Y=0, Z=364
[1] Received 24 bits: b9 4d 24
T=TRI, E=0, I=0, S=338, L=1044, P=10688, Y=0, Z=364
T=TRI, E=0, I=0, S=338, L=1044, P=10688, Y=0, Z=324
[2] Received 17 bits: 01 72 9a
T=TRI, E=0, I=0, S=338, L=1044, P=0, Y=0, Z=328

View File

@ -1,5 +1,5 @@
[0] Received 12 bits: 05 55
T=TRN, E=0, I=23908, S=650, L=1348, P=23912, Y=650, Z=656
T=TRN, E=0, I=23908, S=650, L=1348, P=23908, Y=650, Z=656
[1] Received 12 bits: 05 55
T=TRN, E=0, I=0, S=650, L=1348, P=23936, Y=650, Z=664
[2] Received 12 bits: 05 55

View File

@ -1,8 +1,8 @@
[0] Received 12 bits: 05 55
T=TRN, E=0, I=23908, S=650, L=1348, P=23912, Y=650, Z=700
T=TRN, E=0, I=23908, S=650, L=1348, P=23908, Y=650, Z=656
[1] Received 12 bits: 05 55
T=TRN, E=0, I=0, S=650, L=1348, P=23936, Y=650, Z=664
[2] Received 12 bits: 05 55
T=TRN, E=0, I=0, S=650, L=1348, P=23956, Y=650, Z=672
T=TRN, E=0, I=0, S=650, L=1348, P=23956, Y=650, Z=628
[3] Received 12 bits: 05 55
T=TRN, E=0, I=0, S=650, L=1348, P=23936, Y=650, Z=636
T=TRN, E=0, I=0, S=650, L=1348, P=23936, Y=650, Z=656

View File

@ -1,5 +1,5 @@
[0] Received 12 bits: 05 55
T=TRN, E=0, I=23908, S=666, L=1356, P=23956, Y=666, Z=636
T=TRN, E=0, I=23908, S=666, L=1356, P=23908, Y=666, Z=636
[1] Received 12 bits: 05 55
T=TRN, E=0, I=0, S=666, L=1356, P=23964, Y=666, Z=636
[2] Received 12 bits: 05 55

View File

@ -1,8 +1,8 @@
[0] Received 12 bits: 05 55
T=TRN, E=0, I=23908, S=666, L=1356, P=23956, Y=666, Z=708
T=TRN, E=0, I=23908, S=666, L=1356, P=23908, Y=666, Z=636
[1] Received 12 bits: 05 55
T=TRN, E=0, I=0, S=666, L=1356, P=23964, Y=666, Z=632
T=TRN, E=0, I=0, S=666, L=1356, P=23964, Y=666, Z=636
[2] Received 12 bits: 05 55
T=TRN, E=0, I=0, S=666, L=1356, P=23952, Y=666, Z=636
T=TRN, E=0, I=0, S=666, L=1356, P=23952, Y=666, Z=640
[3] Received 12 bits: 05 55
T=TRN, E=0, I=0, S=666, L=1356, P=23952, Y=666, Z=656
T=TRN, E=0, I=0, S=666, L=1356, P=23952, Y=666, Z=648

View File

@ -1,6 +1,6 @@
[0] Unknown encoding: 24 signal bits
Signal: SS:LL:SS:LL:SS:SS:LL:LL:SS:LL:SS:LL:SP
T=UNK, E=0, I=23908, S=650, L=1348, P=23912, Y=0, Z=656
T=UNK, E=0, I=23908, S=650, L=1348, P=23908, Y=0, Z=656
[1] Received 12 bits: 05 55
T=TRN, E=0, I=0, S=650, L=1348, P=23936, Y=650, Z=664
[2] Unknown encoding: 24 signal bits

View File

@ -1,9 +1,9 @@
[0] Unknown encoding: 24 signal bits
Signal: SS:LL:SS:LL:SS:SS:LL:LL:SS:LL:SS:LL:SP
T=UNK, E=0, I=23908, S=650, L=1348, P=23912, Y=0, Z=700
T=UNK, E=0, I=23908, S=650, L=1348, P=23908, Y=0, Z=656
[1] Received 12 bits: 05 55
T=TRN, E=0, I=0, S=650, L=1348, P=23936, Y=650, Z=664
[2] Received 11 bits(!): 02 ad
T=TRN, E=1, I=0, S=650, L=1348, P=23936, Y=650, Z=636
T=TRN, E=1, I=0, S=650, L=1348, P=23936, Y=650, Z=656
[3] Received 12 bits: 05 55
T=TRN, E=0, I=0, S=650, L=1348, P=23956, Y=650, Z=672
T=TRN, E=0, I=0, S=650, L=1348, P=23956, Y=650, Z=628

View File

@ -1,4 +1,4 @@
[0] Sync 11
T=SYN, E=0, I=14916, S(lo)=356, L(lo)=356, S(hi)=364, L(hi)=364, P=3724, U=2500, V=2500, Y=0, Z=348
[1] Received 55 bits: 50 8f 1a 30 08 98 cf
T=TRI, E=0, I=0, S=360, L=734, P=3000, Y=0, Z=344
T=TRI, E=0, I=0, S=360, L=734, P=3000, Y=0, Z=708

View File

@ -1,4 +1,4 @@
[0] Sync 11
T=SYN, E=0, I=14916, S(lo)=356, L(lo)=356, S(hi)=364, L(hi)=364, P=3724, U=2500, V=2500, Y=0, Z=340
[1] Received 55 bits: 50 8f 1a 30 08 98 cf
T=TRI, E=0, I=0, S=360, L=734, P=3000, Y=0, Z=356
T=TRI, E=0, I=0, S=360, L=734, P=3000, Y=0, Z=708

View File

@ -1,4 +1,4 @@
[0] Sync 7
T=SYN, E=0, I=14916, S(lo)=356, L(lo)=356, S(hi)=364, L(hi)=364, P=3724, U=2500, V=2500, Y=0, Z=348
[1] Received 55 bits: 50 8f 1a 30 08 98 cf
T=TRI, E=0, I=0, S=360, L=734, P=3000, Y=0, Z=344
T=TRI, E=0, I=0, S=360, L=734, P=3000, Y=0, Z=708

View File

@ -1,4 +1,4 @@
[0] Sync 7
T=SYN, E=0, I=14916, S(lo)=356, L(lo)=356, S(hi)=364, L(hi)=364, P=3724, U=2500, V=2500, Y=0, Z=348
[1] Received 55 bits: 50 8f 1a 30 08 98 cf
T=TRI, E=0, I=0, S=360, L=734, P=3000, Y=0, Z=356
T=TRI, E=0, I=0, S=360, L=734, P=3000, Y=0, Z=708

View File

@ -1,4 +1,4 @@
[0] Sync 8
T=SYN, E=0, I=14916, S(lo)=356, L(lo)=356, S(hi)=364, L(hi)=364, P=3724, U=2500, V=2500, Y=0, Z=348
[1] Received 55 bits: 50 8f 1a 30 08 98 cf
T=TRI, E=0, I=0, S=360, L=734, P=3000, Y=0, Z=344
T=TRI, E=0, I=0, S=360, L=734, P=3000, Y=0, Z=708

View File

@ -1,4 +1,4 @@
[0] Sync 8
T=SYN, E=0, I=14916, S(lo)=356, L(lo)=356, S(hi)=364, L(hi)=364, P=3724, U=2500, V=2500, Y=0, Z=340
[1] Received 55 bits: 50 8f 1a 30 08 98 cf
T=TRI, E=0, I=0, S=360, L=734, P=3000, Y=0, Z=356
T=TRI, E=0, I=0, S=360, L=734, P=3000, Y=0, Z=708

View File

@ -1,4 +1,4 @@
[0] Sync 8
T=SYN, E=0, I=14916, S(lo)=340, L(lo)=340, S(hi)=368, L(hi)=368, P=3724, Y=0, Z=348
[1] Received 55 bits: 50 8f 1a 30 08 98 cf
T=TRI, E=0, I=0, S=354, L=734, P=3000, Y=0, Z=344
T=TRI, E=0, I=0, S=354, L=734, P=3000, Y=0, Z=708

View File

@ -1,4 +1,4 @@
[0] Sync 8
T=SYN, E=0, I=14916, S(lo)=340, L(lo)=340, S(hi)=368, L(hi)=368, P=3724, Y=0, Z=348
[1] Received 55 bits: 50 8f 1a 30 08 98 cf
T=TRI, E=0, I=0, S=354, L=734, P=3000, Y=0, Z=356
T=TRI, E=0, I=0, S=354, L=734, P=3000, Y=0, Z=708

View File

@ -1,4 +1,4 @@
[0] Sync 9
T=SYN, E=0, I=14916, S(lo)=340, L(lo)=340, S(hi)=368, L(hi)=368, P=3724, Y=0, Z=348
[1] Received 55 bits: 50 8f 1a 30 08 98 cf
T=TRI, E=0, I=0, S=354, L=734, P=3000, Y=0, Z=344
T=TRI, E=0, I=0, S=354, L=734, P=3000, Y=0, Z=708

View File

@ -1,4 +1,4 @@
[0] Sync 9
T=SYN, E=0, I=14916, S(lo)=340, L(lo)=340, S(hi)=368, L(hi)=368, P=3724, Y=0, Z=340
[1] Received 55 bits: 50 8f 1a 30 08 98 cf
T=TRI, E=0, I=0, S=354, L=734, P=3000, Y=0, Z=356
T=TRI, E=0, I=0, S=354, L=734, P=3000, Y=0, Z=708

View File

@ -1,4 +1,4 @@
[0] Sync 10
T=SYN, E=0, I=14916, S(lo)=340, L(lo)=340, S(hi)=368, L(hi)=368, P=3724, Y=0, Z=348
[1] Received 55 bits: 50 8f 1a 30 08 98 cf
T=TRI, E=0, I=0, S=354, L=734, P=3000, Y=0, Z=344
T=TRI, E=0, I=0, S=354, L=734, P=3000, Y=0, Z=708

View File

@ -1,4 +1,4 @@
[0] Sync 10
T=SYN, E=0, I=14916, S(lo)=340, L(lo)=340, S(hi)=368, L(hi)=368, P=3724, Y=0, Z=340
[1] Received 55 bits: 50 8f 1a 30 08 98 cf
T=TRI, E=0, I=0, S=354, L=734, P=3000, Y=0, Z=356
T=TRI, E=0, I=0, S=354, L=734, P=3000, Y=0, Z=708

View File

@ -1,4 +1,4 @@
[0] Sync 9
T=SYN, E=0, I=14916, S(lo)=356, L(lo)=356, S(hi)=364, L(hi)=364, P=3724, U=3000, V=3000, Y=0, Z=348
[1] Received 55 bits: 50 8f 1a 30 08 98 cf
T=TRI, E=0, I=0, S=360, L=734, P=3000, Y=0, Z=344
T=TRI, E=0, I=0, S=360, L=734, P=3000, Y=0, Z=708

View File

@ -1,4 +1,4 @@
[0] Sync 9
T=SYN, E=0, I=14916, S(lo)=356, L(lo)=356, S(hi)=364, L(hi)=364, P=3724, U=3000, V=3000, Y=0, Z=340
[1] Received 55 bits: 50 8f 1a 30 08 98 cf
T=TRI, E=0, I=0, S=360, L=734, P=3000, Y=0, Z=356
T=TRI, E=0, I=0, S=360, L=734, P=3000, Y=0, Z=708

View File

@ -1,4 +1,4 @@
[0] Sync 10
T=SYN, E=0, I=14916, S(lo)=356, L(lo)=356, S(hi)=364, L(hi)=364, P=3724, U=1200, V=1200, Y=0, Z=348
[1] Received 55 bits: 50 8f 1a 30 08 98 cf
T=TRI, E=0, I=0, S=360, L=734, P=3000, Y=0, Z=344
T=TRI, E=0, I=0, S=360, L=734, P=3000, Y=0, Z=708

View File

@ -1,4 +1,4 @@
[0] Sync 10
T=SYN, E=0, I=14916, S(lo)=356, L(lo)=356, S(hi)=364, L(hi)=364, P=3724, U=1200, V=1200, Y=0, Z=340
[1] Received 55 bits: 50 8f 1a 30 08 98 cf
T=TRI, E=0, I=0, S=360, L=734, P=3000, Y=0, Z=356
T=TRI, E=0, I=0, S=360, L=734, P=3000, Y=0, Z=708

View File

@ -1,9 +1,9 @@
name=RF433any
version=0.7.2
version=0.7.3
author=Sébastien Millet
maintainer=Sébastien Millet <milletseb@laposte.net>
sentence=A library to decode any protocol received on a 433 Mhz Radio Frequencies receiver
paragraph=Use this library to decode any protocol received on a 433 Mhz Radio Frequencies receiver. Allow to display low level data (raw code), user level data (code received) and code timings. No pre-defined timings to specify, the library detects it.
paragraph=Use this library to decode any protocol received on a 433 Mhz Radio Frequencies receiver. Allow to display low level data (raw code), user level data (code received) and code timings. No pre-defined timings to specify, the library detects it. You can also use its output to use RF433recv library.
category=Communication
url=https://github.com/sebmillet/RF433any
architectures=avr