Git Product home page Git Product logo

sofis's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sofis's Issues

AttitudeIndicator, OdoGauge: Refactor warp around code

AttitudeIndicator and OdoGauge have "wrap around" images: The end of the image is virtually tied to the beginning of it (i.e. the image rectangle is a flattened cylinder). Each of these gauges uses ad-hoc code to handle taking portions of that virtual cylinder.

This code needs to be factored out.

Improve command-line arguments handling

Command lie arguments support is minimal. Although they are only useful when doing devel/test/demos, they could use some improvement:

  • --fgtape should have a file argument to select a fgtape
  • --fgremote should have an arguement to select a port to listen on (default to 6789)

Add screen/pages

Currently main.c manually creates and builds a unique screen. It should be possible to have several pre-defined screens/pages with their gauges that can be switched between. Example: The default page has a MapGauge in the bottom-right corner, another screen/page would have the MapGauge full screen and engine gauges as a side panel.

Improve MapGauge overlay/providers support

The current system is very primitive. Primary providers and overlays are hardcoded. This should be read from a config file during startup and switched on/off during runtime.

Unaccelerated rendering breaks too often

SoFIS can be built with software-rendering only (and obviously no synthetic vision). This mode breaks often due to rotations being implemented in each gauge with #define guards to select an alternative code path when SDL_gpu is not available.

All rotation code should be factored out in a RotatingLayer class which will then select (compile-time) the appropriate code path when SDL_gpu is available or not. No more #define for that in the gauges and less breakages (hopefully).

Improve GenericRuler: Add sub-units/unit multiples

GenericRuler can currently only etch in a fixed stride that represents a unit. We need to add "subunits" to be able to draw etches like: 5,10,15,20,25, etc. with according markings(numbers) and etches(lines) of different size.

Ubuntu build failure...

Hi,

RE: Ubuntu build failure

Eventually got the prerequisites installed... had trouble with SDL2, but eventually got there... and built installed SDL_gpu... ignoring some warnings, get a 'make' error -

gcc -o sensors/gps-sensor.o -c sensors/gps-sensor.c -g3 -O0 `pkg-config glib-2.0 sdl2 SDL2_image libgps --cflags` -I. -I./sdl-pcf/src -I./fg-io/flightgear-connector -I./fg-io/fg-tape -I./fg-roam/lib/cglm/include -I./fg-roam/src -DUSE_SGPU_TEXTURE=1 -DUSE_SDL_GPU=1 -DENABLE_DEBUG_TRIANGLE=0 -DENABLE_DEBUG_CUBE=0 -DFGR_HOME=\"./fg-roam/src\" -DSFS_HOME=\".\" -DJY61_DEV=\"/dev/ttyUSB1\" -DENABLE_PERF_COUNTERS=1 -DUSE_GLES=0 -DENABLE_3D=1 -DNO_PRELOAD=0 -DUSE_TINY_TEXTURES=0 -DHAVE_MKDIR_P -DHAVE_CREATE_PATH -DHAVE_HTTP_DOWNLOAD_FILE -DHAVE_IGN_OACI_MAP=0
sensors/gps-sensor.c: In function ‘gps_sensor_set_fix’:
sensors/gps-sensor.c:105:23: warning: passing argument 1 of ‘timespec_equal’ from incompatible pointer type [-Wincompatible-pointer-types]
  105 |     if(timespec_equal(&(self->gpsdata.fix.time), &old_time) || self->gpsdata.fix.mode < MODE_2D)
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~
      |                       |
      |                       timespec_t * {aka struct timespec *}
sensors/gps-sensor.c:24:43: note: expected ‘double *’ but argument is of type ‘timespec_t *’ {aka ‘struct timespec *’}
   24 | static inline bool timespec_equal(double *t1, double *t2)
      |                                   ~~~~~~~~^~
sensors/gps-sensor.c:107:16: error: incompatible types when assigning to type ‘double’ from type ‘timespec_t’ {aka ‘struct timespec’}
  107 |     old_time = self->gpsdata.fix.time;
      |                ^~~~
sensors/gps-sensor.c: In function ‘gps_sensor_worker’:
sensors/gps-sensor.c:138:18: error: too few arguments to function ‘gps_read’
  138 |             rv = gps_read(&self->gpsdata);
      |                  ^~~~~~~~
In file included from sensors/gps-sensor.h:13,
                 from sensors/gps-sensor.c:13:
/usr/include/gps.h:2307:12: note: declared here
 2307 | extern int gps_read(struct gps_data_t *, char *message, int message_len);
      |            ^~~~~~~~
make: *** [Makefile:62: sensors/gps-sensor.o] Error 1

Full build log is here...

Any help appreciated... thanks...

OS: Description: Ubuntu 20.04.2 LTS
GCC: gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
OT: Hope 'cmake' is used as the config, generator, ... easy for Windows...

Add a menu system

We need a basic GUI system to allow user interaction. Example: Goto airport, add waypoints, etc.

LadderPage(s): Use GenericRuler

LadderPages (altitude, speed) are using ad-hoc code that predates GenericRuler. Use Generic ruler to draw these add remove ad-hoc code.

Depends on #2

Project Help

Hi
I coulnd't find your email and I don't know why homebuild forum doesn't work with me.
I do have a RV7A and electronic knowledged. I kinda have a similar project in work but im not completly to the efis point
im currently building hardware control and sensor for different part, like light and trim controller.
do you still work on your project? maybe we could converge to the same goal

TapeGauge: Add trend vector

Add a trend vector to the TapeGauge: A narrow rectangle below or above the OdoGauge, that goes up or down and have its height determine what will be the value X seconds later.

Compile problem---SDL_pcf not found

In many files, there is:

#include "SDF_pcf.h"

When I ran make, it complains about not having that header file. They're in double quotes, and not in the project directory. /usr/include/SDL doesn't include anything related to pcf either, (I have the full SDL installation on Arch Linux), so changing " to <> won't really help, I thought.

This left me unable to compile. Any ideas? Thanks :D

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.