Coder Social home page Coder Social logo

norman0406 / lisa Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 1.0 3.99 MB

Lightweight Integrated System for Amateur Radio

License: GNU General Public License v3.0

Shell 0.45% C++ 95.18% Python 1.22% Perl 0.56% XQuery 0.01% C 1.02% QMake 1.38% Prolog 0.12% Objective-C++ 0.06%

lisa's People

Contributors

gitter-badger avatar norman0406 avatar semaph0r avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

gitter-badger

lisa's Issues

Q_Property is unable to recognize enums for QsoEntry Mode and Frequency

QMetaProperty::read: Unable to handle unregistered datatype 'QsoEntry::Mode' for property 'Logbook::Internal::QsoEntry::Mode'

class QsoEntry
        : public QObject
{
    Q_OBJECT

    enum FrequencyBand
    {
        BAND_UNKNOWN,
        BAND_160M,
        BAND_80M,
        BAND_40M,
        BAND_30M,
        BAND_20M,
        BAND_17M,
        BAND_15M,
        BAND_12M,
        BAND_10M,
        BAND_6M,
        BAND_2M,
        BAND_70CM,
        BAND_23CM,
        BAND_13CM,
        // UNDONE
    };

    enum Mode
    {
        MODE_AM,
        MODE_FM,
        MODE_SSB,
        MODE_USB,
        MODE_LSB,
        MODE_PSK,
        MODE_RTTY,
        // UNDONE
    };

    Q_PROPERTY(int ID MEMBER m_id)
    Q_PROPERTY(QDateTime DateTime MEMBER m_time)
    Q_PROPERTY(QString CallsignTo MEMBER m_callsign)
    Q_PROPERTY(QString Operator MEMBER m_operator)
    Q_PROPERTY(int Frequency MEMBER m_frequency)
    Q_PROPERTY(QsoEntry::Mode Mode MEMBER m_mode)
    Q_PROPERTY(int RstSent MEMBER m_rstSent)
    Q_PROPERTY(int RstRcvd MEMBER m_rstRcvd)
    Q_PROPERTY(QString Comment MEMBER m_comment)

Provide some basic information for plugin development

It would be cool to reference some additional ressources (blog, tutorials, how-tos, ...) within the wiki regarding to Qt's plugin architecture and how it is used (adopted) developing plugins for LISA.

Furthermore point out some design guidelines which will prevent us from cluttered source code.

Different logbook views

Create different views for the same database using proxy models. There should be a manager dialog in which new views can be created by assigning database fields to new columns and reordering existing columns. The view should be selected with a drop down menu in the main logbook view toolbar.

Configure FFTW includes for Linux

Currently FFTW includes will not work on linux which interferes the qDebug statement of Qt within the digital plugin leading to build errors.

Implement CRUD actions for Logbook

  • Delete with conformation
  • Editing during logbookformdialog

Edit mode

  • Ask for confirmation if data within logbookformdialog is present.
  • If another entry is in edit-mode, ask to save

Settings with JSON

QSettings stores settings in ini format. A more cleaner way would be to use JSON instead, so implement a settings class that uses JSON to store settings. Additionally, the settings entries should be grouped by plugin and individual plugin-internal groups.

Add Logbook entry widget

Add a widget that connects to the logbook database and creates new / edits logbook entries. The widget should provide all information that could theoretically be added for a QSO. Different categories could be grouped in a tabbed view.

Rig control

Implement hamlib for transceiver control. A very basic example can be found here.

Implement defaults

  • set RST to 599 if field is empty
  • lookup middle frequency if frequency is empty and band is set

RTTY Modem

Implement an RTTY modem in QtRtty and merge it back once it is working.

Add Settings dialog

Defines

  • own callsign
  • biographic data
    • name
    • address
    • locator
    • equipment
  • different profiles

Database Schema
_logbook_profile_

  • user_id
  • callsign
  • firstname
  • lastname
  • address
    • street
    • zip
    • city
    • country
  • locator
    equipment

Implement Dashboard

Overview:

  • Last logged QSOs
  • Solar data and propagation forecast
  • RSS-Feed with local news and competitions

Logbook entry form design

Find and implement a design for the logbook entry form dialog. All the information that can be saved for a QSO should be presented here. These include several categories like

  • General QSO data
  • QSO partner's biography data
  • Own station and biography data at the time of QSO (taken from profiles, possibly modifiable)
  • Contest information (ITU & CQ-Zone, specific contest information)
  • Custom data (fields can be renamed for each QSO)
  • etc.

Use a horizontal layout for the logbook entry form dialog, since the whole pane is oriented horizontally. The layout should also resize and adapt dynamically.

Callsign lookup

There are different web services that can be used to query more information on amateur radio callsigns.

The QRZ.com API is well documented. I would suggest using this one first. Create an abstract base class for database lookup and structures that contain callsign information. Derive a specific class for the callsign service, i.e. QRZ.com, and fetch information from the returned XML using the newest API version. See here for the XML specification. You have to provide a username and password to obtain a session key, so use HTTPS if possible. I will acquire a paid account soon, so we can retrieve all available information.

There are also offline sources like callsign cd media, etc, that could theoretically be used in the same way.

Add Logbook table view

Add the logbook table view widget that connects to a specific logbook database and displays all information contained in the logbook table. Adding and editing entries should be done with the logbook entry widget, see #12.

Add multiple profiles

Add the possibility to create multiple profiles in the options dialog. Use the profiles in the logbook entry dialog to update logbook entries.

Database structure

Create the general database structure for a logbook database. Tables might include

  • Logbook: QSO information with foreign key references to callsigns
  • Callsigns: Entries for each callsign the user had contact with.

This is just a suggestion. Change it and add new tables as required.

Find a better name

This ticket collects name suggestions. We will use it to brainstorn in order to find a name that better fits the program purpose.

Mode tab bar priority

IMode should implement a pure virtual function for a tab bar priority, similar to IOutputPane. The tab bar priority should reflect the intended position of the mode in the left mode selector. Also, the application should automatically select the last selected mode when starting up, or select the first available mode on first startup.

Digital mode settings dialog

Create a settings dialog that saves and restores digital-related settings to the QSettings file. Investigate how this is done in general in the core plugin and in the original QtCreator source.

Fldigi socket connection

Apparently Fldigi opens up a socket for inter-process communication. See here for an example. Interfacing the logbook with Fldigi is important since the program is quite popular and our digital modes plugin is not yet working. This way, people can start using our logbook while using Fldigi for digial mode operation.

Travics CI

Please provide additional information about TRAVIS CI and how it can be used in this project.

Some questions:

  • How do we manage the Travis build process? Is it connected to an individual GitHub profile or can we create a Travis account for LISA, that both of us can access?
  • Is it possible to perform additional build events like running python scripts etc., e.g. to create installer packages? How can we configure this?
  • When running a build, can Travis automatically increase the build number?

ADIF Import

Implement ADIF Import class

  • fileopen
  • parse ADIF data
  • save to database

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.