Commit graph

53 commits

Author SHA1 Message Date
b00b2f08e3
Optimize CI pipeline by bundling setup steps
Streamlined the setup process in the GitHub Actions workflow by
combining system updates and package installations into a single step.
Removed the action for setting up CMake, instead directly installing it
along with build requirements, reducing redundancy and improving build
times. These adjustments enhance the efficiency of the continuous
integration process.
2024-02-09 12:47:35 +01:00
a6b8a3fd67
Merge branch 'dump_from_vector' 2024-02-09 12:39:12 +01:00
4a9fc5c81a
Migrate to CMake build system and remove autoconf
artifacts

Transition the project's build system from Autoconf to CMake,
streamlining the build process and conforming to modern C++ project
standards. Autoconf related files like 'configure', 'install-sh', and
'missing' have been removed while CMakeLists and relevant .cmake
configuration files are added to support the new system. This change
addresses the need for a more portable and easier-to-maintain build
system, particularly beneficial for cross-platform development. As a
result, build process customization and dependency management are
expected to be more straightforward.

Additionally, `.gitignore` has been adjusted to accommodate the CMake
build outputs. The new CMake build system introduces `build/` as the
directory for out-of-source builds, replacing the more scattered build
artifacts of the previous system.
2024-02-09 12:38:41 +01:00
Julia Pfitzer
844b2d9191
Merge pull request #12 from nqrduck/bindi_pythi
Bindi pythi
2024-02-08 17:44:45 +01:00
jupfi
3d1c7bdf2c Updates ... very important ... 2024-02-08 16:22:00 +01:00
jupfi
34a18f2a88 Added run experiment function 2024-02-08 15:23:16 +01:00
Julia Pfitzer
09e5057452
Merge pull request #11 from nqrduck/bindi_pythi
Added header file for python bindings.
2024-02-07 19:25:33 +01:00
jupfi
a905f258e2 Added header file for python bindings. 2024-02-07 15:48:03 +01:00
Julia Pfitzer
980ae5ad34
Merge pull request #10 from nqrduck/dump_from_vector
Refactor configuration array to vector. 
Tested with LimeSDR USB - works!
2024-02-07 15:08:51 +01:00
77b3f90d34
Refactor configuration array to vector
Replaced the array parameter in `dumpConfig` function with a vector reference, streamlining parameter passing and enhancing code maintainability. Included `<cstddef>` for `size_t` definition and removed redundant code that copied vector contents to an array, thus improving performance. These changes eliminate the need for manual array sizing and copying, reducing potential errors and improving readability.
2024-02-07 14:53:26 +01:00
Julia Pfitzer
8edfbda8f7
Merge pull request #9 from nqrduck/parsi_argi
Added function to parse arguments for future implementation of python…
Tested with the LimeSDR USB.
2024-02-07 14:48:34 +01:00
jupfi
19e336c80a Removed data folder and added it to the gitignore 2024-02-07 14:45:14 +01:00
jupfi
3d500158b2 Added function to parse arguments for future implementation of python binding. 2024-02-07 14:37:13 +01:00
Julia Pfitzer
df82c4af62
Merge pull request #8 from nqrduck/limenqr_merge
Tested with the LimeSDR USB
2024-02-07 14:12:08 +01:00
cc030a82e8
Optimize LimeDriver memory initialization
Enhanced performance and safety of the LimeDriver by passing `LimeCfg` by reference to `getHDFAttributes`. Additionally, zero-initialized `LimeCfg`, pulse duration, and frequency arrays upon creation to prevent potential use of garbage values and ensure determinate behavior. These changes may reduce memory usage and increase reliability when configuring the Lime hardware.
2024-02-07 12:29:43 +01:00
c2ff68a5bc
Merging in most recent (?) version of source cpp 2024-02-07 11:47:02 +01:00
1d67383111
Refactor to use getHDFAttributes function
Replaced inline initialization of HDF attribute structs with getHDFAttributes, a new function isolating HDF configuration setup. This change improves modularity, making the main function cleaner and the codebase easier to maintain. It allows expanding or changing the attribute set without cluttering the main logic. The introduced std::vector further modernizes resource management and supports dynamic attribute collection, followed by a conversion to an array for backward compatibility with existing code.
2024-02-07 10:34:57 +01:00
jupfi
7414d1490c Updated LimeConfig init. 2024-02-05 16:57:52 +01:00
jupfi
bde76f6b68 Refactored LimeConfig_t initalization. 2024-02-05 16:47:49 +01:00
d8fae232db
Merge branch 'main' of https://github.com/nqrduck/LimeDriver 2024-02-05 13:53:33 +01:00
bba19bb51f
Remove unused comment 2024-02-05 13:53:30 +01:00
Julia Pfitzer
8edd98c654
Merge pull request #2 from nqrduck/asdf_fix
Replace "asdf" directory name
Tested with the LimeSDR USB. 

The asdf folder wasn't used anyways with the nqrduck program.
2024-02-05 13:51:53 +01:00
Julia Pfitzer
ea40f70ec7
Merge branch 'main' into asdf_fix 2024-02-05 13:48:01 +01:00
Julia Pfitzer
28af177728
Merge pull request #3 from nqrduck/dump_arguments
Dump configuration from binary - tested with LimeSDR USB
2024-02-05 13:45:37 +01:00
8f0ff4a43f
Fix syntax error in dictionary key iteration
Corrected the for loop syntax for initializing parameters by removing an extraneous comma that caused a tuple unpacking error when iterating over dictionary keys. This change allows proper parameter initialization without errors.
2024-02-05 13:37:59 +01:00
a6a6705dba
Refactor parameter initialization and display
Simplified the storage of command-line arguments by refactoring how parameters are initialized in the 'limr' class. Removed redundant storage of parameters by opting to keep them as attributes instead of storing them in both attributes and a dictionary. Enhanced the parameter display function by appending the "name" attribute from the parameter dictionary, providing clearer output. This change improves code maintainability and readability, ensuring argument-related data is handled consistently throughout the class.

Resolves confusion around parameter storage as flagged in TODO comment.
2024-02-05 13:35:14 +01:00
5f323fea96
Enhanced config JSON serialization
Updated the configuration dump function to serialize argument-value pairs into more detailed JSON objects. This now includes the argument's name, data type, value, and dimensions instead of just the value as a string. This richer output format allows for enhanced configuration clarity and downstream data processing. Improved type information and dimension data support handling various data types and array structures without information loss or ambiguity.
2024-02-05 13:32:52 +01:00
83f3221162
Refactor dictionary iteration and output formatting
Standardized the iteration over dictionary keys in `limr.py` to directly call `.keys()` method for clarity. Additionally, streamlined the output formatting by removing redundant data in `print_params()` method, resulting in cleaner output without extraneous details. This enhances code readability and maintains a tidy console display.
2024-02-05 13:07:43 +01:00
99e20dbf9d
Store input args for further processing
Temporarily retain input arguments in a dictionary within the initialization for potential future use, marked with a TODO for deciding on a singular method of parameter storage. This aims to streamline configuration management and facilitate debugging. Further cleanup is needed to consolidate parameter handling.
2024-02-05 13:05:11 +01:00
cd76cb4300
Optimize JSON output format and type annotations
Refactored the dumpConfig function in C++ to output valid JSON format by changing brackets and refining the argument-value pair structure. This corrects the previous invalid JSON syntax and ensures compatibility with JSON parsers. In Python, enhanced type safety by explicitly annotating in_arg as a dictionary and streamlined parameter initialization by iterating over items directly. This change improves code readability and reduces potential errors during parameter assignment.

Fixes issue with JSON serialization and parameter handling.
2024-02-05 12:57:14 +01:00
8813882998
Replace "asdf" directory with "data" in LimeCfg, fixing #1 2024-02-05 11:48:27 +01:00
8284dcb5bb
Remove "asdf" mention from limr.py 2024-02-05 11:47:50 +01:00
a4d109dffd
Refactor limr class for enhanced functionality
Refactored the limr class to streamline initialization and improve parameter management by directly fetching default parameters from the `limedriver` binary with a `--dump` flag, eliminating manual parsing, leading to more robust and maintainable code. These changes improve the maintainability and extend the functionality of the parameter handling in the limr class, making it easier to scale and adapt for future requirements.
2024-02-05 11:38:49 +01:00
72e809ccec
Handle special config arguments in JSON output
Improved JSON serialization logic in the driver to correctly handle and label special "///" arguments by giving them unique identifiers. This enhancement ensures that the outputted configuration data is not only syntactically correct but also more informative and easier to process programmatically. These changes address potential ambiguities when parsing the JSON output, leading to more reliable configuration management.
2024-02-05 11:34:13 +01:00
1353137321
Add config dump feature and exit on flag
Introduced a new feature to dump the driver configuration in JSON format to stdout and exit when the "--dump" command-line flag is detected.
2024-02-05 11:24:04 +01:00
jupfi
b3e542d2f6 Merge branch 'main' of github.com:nqrduck/LimeDriver 2024-02-05 10:37:57 +01:00
jupfi
32ff54404d Added limr python file 2024-02-05 10:37:29 +01:00
39de10eae6
Merge branch 'main' of https://github.com/nqrduck/LimeDriver 2024-02-05 10:33:39 +01:00
97c64fc0f4
Add Makefile.in 2024-02-05 10:33:09 +01:00
bcc89b5095
No GPL, please. 2024-02-05 10:32:46 +01:00
Julia Pfitzer
6079282f34
Create c-cpp.yml 2024-02-05 10:29:47 +01:00
05b3b0a869
Standardize binary output directory and cleanup
Moved compiled binaries to a dedicated 'bin/' directory to streamline output organization, ensuring that all executables are consolidated in a single, standard location. Updated the gitignore to reflect this change, which helps prevent accidental commits of executable files. The Makefile was also adjusted to build the 'limedriver' program within the new directory structure.

Removed the previously tracked binary 'limedriver' to reduce repository clutter and avoid potential merge conflicts with binary files. Now, future compilations will adhere to the new 'bin/' directory convention, improving the project's structure and maintainability.
2024-02-05 10:26:03 +01:00
f4e2743690
Fix limedriver.cpp location 2024-02-05 10:23:09 +01:00
2306b80869
Fixing compilation command 2024-02-05 10:22:08 +01:00
d404b95187
Initialized build and dependency management with Automake
Setup the initial build system and dependency management using Automake. This includes checks for a C++ compiler, LimeSuite library, and associated header files. Additionally, configured automatic dependency tracking to facilitate smoother development. This system is necessary for ensuring consistent builds across different environments and simplifying the addition of new components and dependencies as development progresses.
2024-02-05 10:22:00 +01:00
jupfi
6ddad31c7f Updated project structure 2024-02-05 09:51:34 +01:00
Julia Pfitzer
56ebbda5d4
Create README.md 2024-02-05 09:50:00 +01:00
f63b9360ae
Fix output binary name in sample compilation command 2024-02-05 09:48:01 +01:00
d209b877a2
Fix file name in compilation instruction 2024-02-05 09:44:54 +01:00
92bfd57f97
Renamed code file 2024-02-05 09:41:27 +01:00