31 Commits

Author SHA1 Message Date
Dr. Johannes Pohl
aa95d20b9b Blacken code (#1076) 2023-10-30 17:51:41 +01:00
Prof. Dr. Andreas Noack
985e84b0b3 Fix error where last byte of datarange was not included in checksum calculation. Added test to cover this case. Relates to #1045 (#1046) 2023-04-08 15:32:23 +02:00
Johannes Pohl
be1aa9c7c1 centralize setting operations + rename constants.py->settings.py (#714) 2020-01-07 18:22:58 +01:00
Johannes Pohl
cebf2ec865 Improve test stability (#596)
* fix relpath error for windows
* increase timeout in tests for ci
2019-01-07 16:28:46 +01:00
Johannes Pohl
6c1ae0ec25 Integrate Simulator Tab (#395)
* enable simulator tab

* save simulated participant in project

* add link for checksum label and make it configurable

* handle checksum label change for simulator label

* fix crash when editing field types with active simulator labels

* allow assigning multiple source/destination at once

* remove unused event

* use default line color for arrows

* cleanup code

* refactor bootstrapping of device settings and sniff widget
add button for opening sniff dialog in simulator dialog

* reformat code

* enhance bootstrapping to keep initial project manager settings

* highlight simulated participants in flow graph

* more verbose logging

* reformat file

* fix initial gain settings

* reformat code

* also save antenna index

* unify sniffer settings

* add signal selection to sniff widget to take values from signal

* add default argument

* fix missing refresh when adding items to scene with participant assigned

* catch error when saving xml

* refactor SimulatorProtocolLabel

* Improve handling of checksum labels

* travis: generate coverage data for all python > 3.4

* replace print calls with logger calls

* refactor goto action

* refactor simulator message

* refactor simulator rule

* rename to SimulatorExternalProgramAction

* add tooltip for value type

* improve performance of protocol sniffer

* improve performance of protocol sniffer even further

* directly emit signal and do not use timer

* add unittest for protocol sniffer

* add test for clear action

* add test for settings proxy

* add test for accepting sniffed messages

* make test more generic

* repair test

* catch none error

* fix typo

* refactor dialog creation

* add test for simulation flow

* refactor read_receiving_queue

* fix unittest

* increase timeout for ci

* improve sniffer performance especially when reaching end of buffer

* catch error

* add timeout for windows

* improve condition

* move run command and parse command to util and refactor methods

* add validate command method and refactor run_command

* fix imports

* improve validate check

* proper renaming

* rename log messages accordingly

* cleanup method

* add external program support for simulator

* fix if condition

* travis ci: use sudo for all builds

* revert

* add wait for ci

* improve test

* fix shebang

* refactor run command

* fix enabled repeat status and add wait for sync send

* pad send buffer with zeros if not enough data present

* catch exceptions when closing errors

* Revert "pad send buffer with zeros if not enough data present"

This reverts commit b5ea80ae27.

* remove timeout and return zeros properly in callback

* prevent calling gnuradio installed check too often

* rename repeat -> copies

* mark get live vs static labels

* Get live from simulation -> Live Input

* use shlex for calling programs

* fix valid check

* catch empty list error

* check if commmand is available before running

* windows support

* catch value error

* improve windows support

* adapt unittests

* Revert "adapt unittests"

This reverts commit 97d8a2c45a.

* get and store default programs on windows

* improve condition and pipe stderr

* also pipe stderr

* add validity check when assigning multiple message sources/destinations

* remove Create new message type based on this message

* Rename External Program Action -> Trigger Command

* fix unittest

* increase timeout for ci

* get external command action to work

* add timeout for sync send devices

* fix windows test

* fix call

* improve logging view

* make use of filter

* append participants instead of overwriting to prevent key errors

* add sip version str

* travis: test revent pyqt5

* Revert "travis: test revent pyqt5"

This reverts commit df1b403a51.

* proper naming + add context menu action for set value type

* support batch assigning of value type index

* fix method name

* adapt unittest to new logic

* add copy and paste for simulator scene

* show transcript

* support bit and hex view for transcript

* Fix display error in simulator

* improve logging

* catch index error

* improve condition

* show signals in modulation dialog created from simulator dialog

* fix filtering for KDE users

* add comment

* improve performance of filtering rows

* remove redundant update

* fix empty frame visible status to handle larger protocol files

* fix sending finished status

* fix unittest

* enhance modulation API do not cache result to avoid memory leak

* increase wait for devices timeout

* Fix memory leak for send dialog

* fix data loss for tree views

* Fix sample rates for AirSpy
- R2: 10M only
- Mini: 6M only

* set delete on close attribute

* Fix sample rates for AirSpy
- R2: 10M only
- Mini: 6M only

* Fix sample rates for AirSpy
- R2: 10M only
- Mini: 6M only

* Fix sample rates for AirSpy
- R2: 10M only
- Mini: 6M only

* allow capture full rx in simulator and make it possible to save rx data

* do not add gr device for continuous send mode

* fix property

* Some UI improvements

* improve performance of fsk modulation

* Fixed handle width

* improve performance of ask modulation

* improve performance of psk modulation

* fix unittest

* improve gfsk performance

* remove old modulation implementation

* increase timeout for ci

* use sudo by default for travis

* use fsk for test

* remove prange as it can lead to errors in continous modulation

* short async wait

* use spawn on all platforms

* increase timeout for ci

* decrease modulator buffer size

* make fsk parallel

* improve data types

* centralize setting of CONTINUOUS_BUFFER_SIZE_MB

* add log message

* add reset link for filtering

* new simulator default timeout

* catch index error

* catch error

* use shared memory for send buffer

* remove auto assign decodings

* remove dup variable

* rename sendbuffersize to rx chunk size and remove var dup

* READ_SAMPLES->SYNC_RX_CHUNK_SIZE

* fix data type in send config and remove pause in simulation

* improve hackrf send callback

* Tab prio changed

* improve sending backend

* fix lime send

* fix usrp send

* improve continous send mode for usrp

* improve code

* pad limesdr with zeros if needed

* fix log error

* enter continuous send dialog earlier

* add missing set_bandwidth_status call for RTLSDR

* save gains and antenna index per rx/tx

* show modulation profiles only when requested in options

* decrease complexity

* add edit labels action to context menu in simulator message table

* improve performance of auto detect freq

* add sleep action

* fix unittests + remove redundant test

* add counter action

* add parent to timers + increase coverage for cfc

* improve test

* use sip to delete dialogs

* improve tests

* set dialog to none

* add log message

* remove unneeded base class

* remove redundant test

* do not inherit qttestcase without reason

* stop sniffer in test

* reformat test files

* add a short wait after teardown

* give each app a unique name

* fix travis conf

* name concurrency setting in coveragerc

* remove xml setting

* improve condition

* add combine

* coverage only for python 3.6

* install pytest cov and coveralls only for python 3.6

* remove concurrency setting

* update coveragerc

* add tests for decoding dialog

* Added external programm for decoding/encoding Homematic that does a dirty trick:
After "decryption" the CRC is recalculated and the corresponding field will be overwritten if the CRC was correct before. In this way you can directly see whether the Homematic message is correct without switching to a intermediate layer (before decryption).

* fix selection error in Decoding dialog and move test to TestExternalDecodings.py

* beautify simulation scene

* show shown rows labels always and not only for filter

* prevent auto default

* clear transcript only on start and add crc log

* Minor stuff:
* Timeout Sim in ms
* CRC Label check fixed
* transcript format improved

* improve loading of txt support transcript and hex

* fix close all disbled status

* prepare open in analysis

* implement logic for open in analysis button

* refactor transcript newline

* enhance order of close event

* improve logging output

* increase align depth

* only color got string in log

* update userguide
2018-02-28 10:15:08 +01:00
Andreas Noack
fa233f9cd3 Added frontend for "overwrite crc with CC1101 whitening" and improved backend/test 2017-09-15 20:13:33 +02:00
Andreas Noack
b05851b544 Added an option to overwrite CRC16 field with the correct value before applying CC1101 whitening (just encoding, not decoding). Additionally there is a test for that case. 2017-09-15 17:00:19 +02:00
Andreas Noack
b09aa4cdfa Bugfix for Decoding GUI: 1.) Fix for write wrong values into old decoding element when dropping a new element after it, 2.) Fix for radio button for cut after position 2017-07-12 18:26:40 +02:00
Johannes Pohl
dd5717850a add unittest for external program with arguments 2017-07-12 13:29:44 +02:00
Johannes Pohl
ef798dc5cc allow spaces for external decoding filename 2017-07-12 09:18:27 +02:00
jopohl
25cbeb97b5 add unittest for external decoding and fix Popen call 2017-07-08 13:06:06 +02:00
Johannes Pohl
fa12774090 add checksum integration
* add draft for crc configure dialog

* add ui file

* improve delegate sizing

* fix open editors function call placement

* consider system font size for optimal editor height

* fix font height on windows only as other OSes are fine with default

* simplify windows height special case

* add draft for crc configure dialog

* add ui file

* add tab widget to properties dialog + remove unneeded underline fonts

* rename type -> field type + add crclabel class

* cast labels to crclabel if field type gets changed

* dynamic tab creation in label dialog depending on special status labels

* integrate CRC widget to dialog

* use model for crc data ranges and enhance editor behaviour

* move default crc polynomials to class level

* make crc polynomial configurable in widget

* fix line edit validator + set crc polynomial on combobox change

* show crc status in label table

* fix unnittest polynomial assignment

* Index error catched, when dragging WSP-encoded data into generator

* show expected CRC in value table

* add action for updating automatically assigned message types

* add draft for crc configure dialog

* add ui file

* add tab widget to properties dialog + remove unneeded underline fonts

* rename type -> field type + add crclabel class

* cast labels to crclabel if field type gets changed

* dynamic tab creation in label dialog depending on special status labels

* integrate CRC widget to dialog

* use model for crc data ranges and enhance editor behaviour

* move default crc polynomials to class level

* make crc polynomial configurable in widget

* fix line edit validator + set crc polynomial on combobox change

* show crc status in label table

* fix unnittest polynomial assignment

* show expected CRC in value table

* add action for updating automatically assigned message types

* centralize bit view methods

* make start value and final xor configurable

* add Checksum Label Type + WSP Checksum subtype

* Ensure Start Value and Final XOR have same length as polynomial

* pad zeros at front

* add crc info label and fix sync between polynomial and xor values

* various fixes

* test wsp hash functionality

* minor fixes

* use array.array for parameters to make crcs comparable

* integrate crc to generation

* add unittest for cc1101

* set wait cursor when extracting archives

* remove unneeded status bar in interpretation

* set wait cursor when extracting archives in project manager

* fix size policy for analysis search line edit

* save checksum labels in project

* improve alignment

* remove double line edit

* add test for checksum integration in generator

* update coverage

* specify coverage format

* generate xml coverage report

* generate coverage report only for python 3.5

* generate coverage report only for python 3.5

* add variable to control coverage

* generate coverage report on success

* generate coverage report after success

* remove deprecated

* add virtualenv opt

* use codecov

* revert to deprecated

* Removed CRC and 'remove_preamble, remove_sync' from CC1101 Data Whitening

* repair unittests

* fix table copy selection

* use plain bits for checksum calculation in generation

* add parent
2017-07-02 20:47:46 +02:00
Andreas Noack
085a2daa51 Substitution-Decoding/Encoding improved: Data is now padded with zeroes if the length is not a multiple of the FROM field length.
Before, last bits of data were ignored and consequently reencoded in a wrong way.
2017-04-27 11:57:37 +02:00
Johannes Pohl
ddec518931 use array.array instead of list to store bits 2017-04-25 12:20:33 +02:00
Andreas Noack
b74707f857 Encoding: Add Morse Code encoding (fix #225) 2017-04-21 16:44:48 +02:00
jopohl
1a3135418b general teardown and optimized timeouts 2017-03-27 11:15:08 +02:00
jopohl
fc793e2e71 add common base class for test cases 2017-03-27 10:16:43 +02:00
Johannes Pohl
37a92f8683 write settings 2017-03-26 22:19:28 +02:00
Johannes Pohl
574c8b92ee add dedicated app context for tests 2017-03-26 22:03:35 +02:00
jopohl
d18934b6d3 improve stability 2017-03-18 17:28:08 +01:00
jopohl
48c8c1aec3 choose right enocean hash depending on message format 2016-12-04 14:34:03 +01:00
jopohl
3692139d0b rearrange enocean crc methods 2016-12-03 16:57:23 +01:00
jopohl
fe80da71a9 Add DecodingErrorStates 2016-12-02 11:51:40 +01:00
jopohl
5992886ba5 rename encoding -> Encoder 2016-12-02 10:40:02 +01:00
jopohl
df3ff6315c fix test for crc polynomial 2016-12-01 16:58:32 +01:00
andynoack
f09c473978 enocean crcs 2016-12-01 13:41:46 +01:00
jopohl
eaf800c895 dominate enocean 2016-11-18 15:53:47 +01:00
Andreas Noack
f16b4aae21 Added cut-decoding...without GUI (TBD) 2016-10-27 18:57:57 +02:00
andynoack
b3a58db67d Added Wireless Short-Packet (WSP) encoding/decoding for EnOcean (Switch Telegram) 2016-08-23 13:31:42 +02:00
jopohl
64e2831faf Unittest for enocean + avoid repush of ui data 2016-08-18 17:02:19 +02:00
Andreas Noack
0582c1a9f5 Decoding/Encoding:
Improved carrier algorithm to handle arbitrary carriers, e.g. "....1....1**" that means: 4 info bits, True-bit, 4 info bits, True-bit, 2 arbitrary bits (no info)
2016-08-18 15:52:35 +02:00