Skip to main content

DWLOAD server implemented in Python

Project description

DwLoadServer

DWLOAD server implemented in Python (OpenSource, GPL v3 or above).

It’s in unuseable, experimental state and currently nothing more then some tests scripts.

current state

Tested DWEEBS:

DWEEB

example

Description

DLOAD

DLOAD

Load AUTOLOAD.DWL (Used on Dragon startup)

RESAVE

DLOAD"RESAVE""MYFILE.BAS"

Save BASIC listing

Implemented DriveWire Transactions:

hex

dez

DW name

Description

$01

1

OP_NAMEOBJ_MOUNT

Mount a file to a virtual drive number

$d2

210

OP_READEX

Send 256 bytes sector from the DWLOAD server to the client

$57

87

OP_WRITE

Write 256 bytes sector of data from the client into a file on the server

TODO

  • support SAVE

  • compare checksum

installation

Linux

The is a virtualenv bootstrap file, created with bootstrap_env, for easy installation.

Get the bootstrap file:

/home/FooBar$ wget https://raw.githubusercontent.com/6809/DwLoadServer/master/boot_dwload_server.py

There are tree types of installation:

option

desciption

pypi

use Python Package Index (for all normal user!)

git_readonly

use git to get the sourcecode (for developer without write access)

dev

use git with write access

e.g.:

/home/FooBar$ python3 boot_dwload_server.py ~/DwLoadServer_env --install_type git_readonly

This creates a virtualenv in ``~/DwLoadServer_env`` and used git to checkout the needed repositories.

In this case (using –install_type=**git_readonly**) the git repository are in: …/DwLoadServer_env/src/ So you can easy update them e.g.:

/home/FooBar$ cd ~/DwLoadServer_env/src/dwload-server
/home/FooBar/DwLoadServer_env/src/dwload-server$ git pull

Windows

There are several ways to install the project under windows.

The following is hopeful the easiest one:

  • Install Python 3, e.g.: https://www.python.org/downloads/

  • Download the DWLOAD Server git snapshot from Github: master.zip

  • Extract the Archive somewhere

  • Maybe, adjust paths in boot_dwload_server.cmd

  • Run boot_dwload_server.cmd

The default boot_dwload_server.cmd will install via Python Package Index (PyPi) into %APPDATA%\DwLoadServer_env

There are two batch files, for easy startup the server under Windows:

Copy these files into %APPDATA%\DwLoadServer_env\ and edit it for your needs. Just double click to start the server.

start by cli (windows)

There is a batch file to open a commandline with a activated virtualenv:

copy this into %APPDATA%\DwLoadServer_env\ and double click it ;)

by hand: Start cmd.exe and do this:

C:\Windows\system32>cd /d %APPDATA%\DwLoadServer_env\
C:\Users\FOO\AppData\Roaming\DwLoadServer_env>call Scripts\activate.bat
(DwLoadServer_env) C:\Users\FOO\AppData\Roaming\DwLoadServer_env>

So use the DWLOAD-Server CLI, e.g:

(DwLoadServer_env) C:\Users\FOO\AppData\Roaming\DwLoadServer_env> python.exe -m dwload_server.dwload_server_cli --root_dir=%APPDATA%\dwload-files\ --log_level=10 serial --port=COM3

Do see the CLI help page:

(DwLoadServer_env) C:\Users\FOO\AppData\Roaming\DwLoadServer_env> python.exe -m dwload_server.dwload_server_cli --help

DWLOAD Server written in Python (GNU GPL v3+) v0.2.0

usage: dwload_server_cli.py [-h] [--version] [--root_dir ROOT_DIR]
                            [--log_level {0,10,20,30,30,40,50,99,100}]
                            {becker,serial} ...

optional arguments:
  -h, --help            show this help message and exit
  --version             show program's version number and exit
  --root_dir ROOT_DIR   Server root directory for load/store requested files
  --log_level {0,10,20,30,30,40,50,99,100}
                        Logging level: 10=DEBUG, 20=INFO, 30=WARNING,
                        40=ERROR, 50=CRITICAL/FATAL

Interface:
  {becker,serial}
    becker              Use the Becker interface
    serial              Use the serial interface

example usage:
    dwload_server_cli.py --root_dir=./dwload-files/ serial --port=/dev/ttyUSB0
    dwload_server_cli.py --root_dir=./dwload-files/ becker

Interface help:
    dwload_server_cli.py serial --help
    dwload_server_cli.py becker --help

startup linux

There are two shell scripts, for easy startup the server under Linux:

Copy these files into ~/DwLoadServer_env/ and edit it for your needs.

The default DWLOAD-Server-root-directory is: ~/dwload-files/ e.g.: Download dwload-demo-files.tar.xz.zip from http://archive.worldofdragon.org/phpBB3/viewtopic.php?f=5&t=4964 and extract the files into ~/dwload-files/

start by cli (linux)

e.g.:

/home/FooBar $ cd ~/DwLoadServer_env/
/home/FooBar/DwLoadServer_env/ $ source bin/activate
(DwLoadServer_env) ~/DwLoadServer_env $ python3 -m dwload_server.dwload_server_cli --root_dir=~/dwload-files --log_level=10 serial --port=/dev/ttyUSB0

Display CLI help, e.g:

/home/FooBar $ cd ~/DwLoadServer_env/
/home/FooBar/DwLoadServer_env/ $ source bin/activate
(DwLoadServer_env) ~/DwLoadServer_env $ python3 -m dwload_server.dwload_server_cli --help

DWLOAD Server written in Python (GNU GPL v3+) v0.2.0

usage: dwload_server_cli.py [-h] [--version] [--root_dir ROOT_DIR]
                            [--log_level {0,10,20,30,30,40,50,99,100}]
                            {becker,serial} ...

optional arguments:
  -h, --help            show this help message and exit
  --version             show program's version number and exit
  --root_dir ROOT_DIR   Server root directory for load/store requested files
  --log_level {0,10,20,30,30,40,50,99,100}
                        Logging level: 10=DEBUG, 20=INFO, 30=WARNING,
                        40=ERROR, 50=CRITICAL/FATAL

Interface:
  {becker,serial}
    becker              Use the Becker interface
    serial              Use the serial interface

example usage:
    dwload_server_cli.py --root_dir=./dwload-files/ serial --port=/dev/ttyUSB0
    dwload_server_cli.py --root_dir=./dwload-files/ becker

Interface help:
    dwload_server_cli.py serial --help
    dwload_server_cli.py becker --help

History

  • 17.11.2014 - v0.2.0 - Support Becker and Serial interface.

  • 14.11.2014 - v0.1.0 - Create bootstrap file that work under linux and windows.

  • 12.11.2014 - v0.0.1 - send a file works rudimentary

  • 30.09.2014 - Idea was born: Forum post 11893

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dwload_server-0.2.0.tar.gz (1.1 MB view details)

Uploaded Source

File details

Details for the file dwload_server-0.2.0.tar.gz.

File metadata

File hashes

Hashes for dwload_server-0.2.0.tar.gz
Algorithm Hash digest
SHA256 ac19b297a7a34896428d7eda605deff7bd18753d6f70c9500a1eca2ebc2d06dd
MD5 d6b606ea4ec6655866cfcfd9abbeebda
BLAKE2b-256 4e0eba7e56add4fa83e519c87c11c1e2ab42f86af3445ebf9a31435b42f77729

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page