GithubHelp home page GithubHelp logo

pelillian / iflex-server Goto Github PK

View Code? Open in Web Editor NEW

This project forked from nearist/vsx-agent

0.0 0.0 0.0 68 KB

Manager of client transactions with iFlex acceleration hardware

License: GNU General Public License v3.0

CMake 1.66% C++ 98.34%

iflex-server's Introduction

iflexd - iFlex Server

Build

Change directory to iflexd source codes and run following commands:

cmake .
make

This will create iflexd executable in bin directory.

iflexd has only one argument the configuration file.

Configuration File Format

The configuration file is regular JSON file with the following schema:

{
    "address": "127.0.0.1",                                  - Address to listen
    "port": 9571,                                            - Port to listen
    "api_key": "v5*A2m4d",                                   - Client API key for accessing daemon
    "log_file": "iflex.log",                                 - Path of log file
    "log_level": "debug",                                    - Log level (TRACE|DEBUG|INFO|WARNING|ERROR|CRITICAL|OFF)
    "component_size": 4,                                     - Component length in bytes (supported values are 1 and 4)
    "dataset_path": {                                        - Local dataset path
      "nearist": "/srv/ftp/nearist/",                        - Local shared dataset path
      "user": "/srv/ftp/nickr/"                              - Local user-only dataset path
    },
    "temperature_log": {                                     - Temperature Logging configuration
      "enable": false,                                       - Enable temperature log
      "rate": 10,                                            - Logging rate in seconds
      "file": "/var/log/iflex.tmp"                           - Path to temperature log
    },
    "nodes": [                                               - Connected Nodes (iFlex devices, or Nearist TCP nodes)
        {
            "type" : 0,                                      - Type of node (0 - device, 1 - TCP)
            "revision" : 6,                                  - Device revision (1 - REP_1_0 | 2 - REP_2_0 | 3 - REP_2_1 | 4 - REP_2_2_1 | 5 - REP_2_2_2 | 6 - IFLEX)
            "write": "/dev/xillybus_00_cortical_write",      - PCI device file path (Write direction)
            "read": "/dev/xillybus_00_cortical_read"         - PCI device file path (Read direction)
        },
        ....
        {
            "type" : 1,                                      - Type of node (0 - device, 1 - TCP)
            "address": "127.0.0.1",                          - IP Address of node
            "port": 9571                                     - TCP port of node
        }
    ]
}

Run

There is example configuration files for iFlex and Nearist.

    bin/iflexd conf/iflex.json
    bin/iflexd conf/nearist.json

Architecture

Key classes:

  • Session - The main point of communication between the master server and the client. It receives the Requests over the Internet, issues the appropriate commands to the nodes, and sends back the Responses.
  • iFlexNode - Represents (and communicates with) a single VSX card. There is one instance of this class per VSX card in the system.
  • TCPNode - Represents a slave appliance for multi-appliance systems.

iflex-server's People

Contributors

mattmccj avatar

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.