Commit Graph

774 Commits

Author SHA1 Message Date
Phil Eichinger
a33a228b6b In case all IDs are reserved recommend 0
Otherwise the occupied list is empty and this exception brings down the
whole web interface.

This can be easily provoked by just reserving all IDs in the web interface.
2022-06-30 23:17:55 +02:00
Tony Kuker
348b5dd026 Merge tag 'v22.05.02'
RaSCSI version 22.05.02
2022-06-28 18:20:11 -05:00
Tony Kuker
4cb2b64a23 Updated version for 22.5.02 release 2022-05-08 20:19:30 +01:00
Daniel Markstedt
f93300f1b5
Merge pull request #764 from melka/develop
Updated french translation
2022-05-07 09:21:06 -07:00
Kamel Makhloufi
2ae4e1c078 Updated french translation 2022-05-07 17:31:29 +02:00
Daniel Markstedt
ccf71ae33c
Merge pull request #763 from akuker/cvictor-german-translation
German translation fix
2022-05-06 18:04:55 -07:00
Christian Victor
5fcbaa671c German translation fix 2022-05-06 20:25:01 +02:00
Daniel Markstedt
7da137a057
Merge pull request #761 from n4al/spanish-translation-update
Updated translation for malformatted string
2022-05-03 07:18:15 -07:00
n4al
a7a0a3a3d4 Updated translation for malformatted string 2022-05-03 09:43:23 +02:00
Daniel Markstedt
a1a2e6089b
Fix a malformatted gettext string, and update the localization README (#758)
* Fix a gettext marked string that has one too many parantheses around it, excluding it from translations. Also, clean up layout around it.

* Add Swedish translation for the above.

* More explicit localization steps in the README to avoid recurring mistakes.
2022-05-02 14:42:09 -05:00
Daniel Markstedt
aa1f3b02e3
Make the ip and hostname show up on the Drive page as well. (#759) 2022-05-02 14:41:11 -05:00
Daniel Markstedt
ef6c13777c
Merge pull request #757 from n4al/spanish-update-hotfix
Fix for mistranslation of DaynaPORT SCSI/Link
2022-05-01 09:50:29 -07:00
n4al
1458e9bd18 Fix for mistranslation of DaynaPORT SCSI/Link 2022-05-01 18:42:37 +02:00
n4al
47711e734e
Updating Spanish translation of the Web UI (#756)
* Updating Spanish translation of the Web UI

* Updating Spanish translation of the Web UI without lazy option
2022-05-01 07:50:11 -07:00
Daniel Markstedt
182352e76b
Merge pull request #753 from melka/develop
Updated french translation
2022-04-26 17:49:18 -07:00
Uwe Seimet
a3a53354cc
Fix issue 750 (Daynaport problems in develop branch) (#754)
INQUIRY for the Daynaport can return up to 37 bytes. The additional length field for the Daynaport is now 0x20 instead of 0x1b.
2022-04-26 22:08:28 +02:00
Kamel Makhloufi
a1435415ae Updated french translation 2022-04-26 17:38:29 +02:00
cvictor
a684aa65ad
Updated german translation (#751)
* Updated german translation

* Removed obsolete german translations
2022-04-18 16:45:43 +02:00
Daniel Markstedt
2b5763d40c
Swedish localization for April release (#749)
* Update Swedish localization for the April release.

* Translate two more strings.
2022-04-16 11:15:06 -05:00
akuker
f2aa2db73f
Added Schematic PDF file and Step 3D model (#726)
* Add PDF of schematic and step file

* ignore kicad backups

* Moved PDF files to the RASCSI.wiki repo

Co-authored-by: Tony Kuker <akuker@gmail.com>
2022-03-13 20:32:28 -05:00
Uwe Seimet
cb3011de99
Mode page value improvements (#734)
* Updated mode page values

* Page size update

* Caching parameters are not changeable
2022-03-13 19:47:54 -05:00
Uwe Seimet
32fb022a41
Updated MODE SENSE error handling in case of an overflow (#732)
* Updated MODE SENSE error handling

* Updated range check
2022-03-13 19:46:43 -05:00
Uwe Seimet
08156f763f
Only return RTC page if not changeable pages are requested (#731) 2022-03-13 19:45:52 -05:00
dependabot[bot]
8f90ce4649
Bump pillow from 9.0.0 to 9.0.1 in /python/oled (#733)
* Generated .STEP file for RaSCSI

* Added STEP file and updated symbol and 3d model references to reference the correct gender of parts. Should be no functional change

* Added STEP file and updated symbol and 3d model references to reference the correct gender of parts. Should be no functional change

* Added 3D models and correct footprints for STEP file

* Merge version 20.12.0 into the master branch (#75)

* Update README.md

Added reference to gitflow

* Updated to match new versioning structure (#73)

* Updated to match new versioning structure

* fix version number

Co-authored-by: Tony Kuker <akuker@gmail.com>

* Scsimon improvements (#74)

* Updated scsimon to save data on a nano-second time scale, instead of micro-second

* Cleanup error messages and data types

Co-authored-by: Tony Kuker <akuker@gmail.com>

* Updated for new version number

* Change reported version back to development build

Co-authored-by: Tony Kuker <akuker@gmail.com>

* Set theme jekyll-theme-midnight

* Set theme jekyll-theme-dinky

* Create CNAME

* Delete CNAME

* Update version number

* RaSCSI hardware version 2.4 (#94)

* First attempt at adding 2.5 inch drive connector

* Clean up silkscreen and fix DRC issues

* additional cleanup. Made Pin 1 of the PB connector square

* minor tweaks

* Updates for ordered version

* Generate step file and schematic pdf

* First draft of powerbook drive bracket

* Added side holes and hole for MIPI connector

* Additional updates to the powerbook 3d printed bracket

* Moved RaSCSI board 1mm in + lots of cleanup

* Added optional floppy power connector. As-ordered version 2.4a

* Added optional floppy power connector. As-ordered version 2.4a

Co-authored-by: Tony <akuker@gmail.com>

* Bump pillow from 8.1.2 to 8.2.0 in /src/oled_monitor (#108)

Bumps [pillow](https://github.com/python-pillow/Pillow) from 8.1.2 to 8.2.0.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/master/CHANGES.rst)
- [Commits](https://github.com/python-pillow/Pillow/compare/8.1.2...8.2.0)

---
updated-dependencies:
- dependency-name: pillow
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Create CODEOWNERS

* Create rpi_image_creation.yml

* Update README.md (#394)

added link to compatibility list.

* Revert "Update README.md (#394)" (#395)

This reverts commit 90214666c2.

* Bump pillow from 9.0.0 to 9.0.1 in /python/oled

Bumps [pillow](https://github.com/python-pillow/Pillow) from 9.0.0 to 9.0.1.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)
- [Commits](https://github.com/python-pillow/Pillow/compare/9.0.0...9.0.1)

---
updated-dependencies:
- dependency-name: pillow
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: Tony <akuker@gmail.com>
Co-authored-by: akuker <34318535+akuker@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: stuart taylor <github@j-notation.co.uk>
Co-authored-by: RaSCSI User <user@rascsi.com>
2022-03-13 19:45:16 -05:00
Uwe Seimet
f32c20883e
Ignore unknown parameters and log a warning (#730)
* Ignore unknown parameters and log a warning

* Added comment

* Updated logging
2022-03-13 19:44:16 -05:00
Uwe Seimet
9099d7249c
SASI FORMAT opcode fix, SASI segfault fix, added SASI INQUIRY/READ CAPACITY, 512 bytes per sector SASI drives (#724)
* Fixed opcode

* Fixed segfault

* Re-added 0x06 as additional SASI FORMAT opcode

* Added support of SASI drives with 512 bytes

* SASI LUN must always be taken from CDB and must be 0 or 1

* Fixed typo

* Fixed one more SASI segfault

* Removed duplicate code

* Updated error handling

* Updated error handling

* Logging update

* Added enum value for SPC-6

* Comment update

* Added support for SASI Inquiry

* Updated SASI LUN check

* Updated SASI LUN handling

* Comment update

* Revert "Comment update"

This reverts commit c6adbde25c.

* Updated logging

* Implemented SASI READ CAPACITY

* Validate SASI block count

* Do not support ICD semantics for SASI drives

* SASI READ CAPACITY is a group 1 command with 10 bytes

* Comment update
2022-03-06 09:17:23 -06:00
akuker
536e77cd9d
Control board for managing the RaSCSI configuration (#721)
* First draft of control board - Issue #382

* routed signals

* Fixed up silkscreens and added mousebites

* Fixed up silkscreens and added mousebites

* 3d models of encoder and display

* cleaned up layout

* cleaned up layout

* Rename project

* Remove extraneous files

* As-ordered version

* As-ordered version

* version 1.5 updates

* Updated to Kicad 6.0

* Genereated Gerber Files

* Fixed order of RaSCSI connector pinout & cleanup

* cleanup and switch to KiCad6

* Fix paths to 3d models

* create step file and delete old version

* Address Schematic ERC Warning

Co-authored-by: akuker <akuker@gmail.com>
2022-03-03 15:44:24 -06:00
akuker
ebf4cec6ee
Hardware Version 2.5 (#720)
* Added header for external ENB LED

* test fixture for rascsi

* test fixture for rascsi

* Updated to Kicad 6 and modified act LED

* Regenerated Gerber files to fix drill placement. Added CE logo

* Regeneraged gerbers

Co-authored-by: Tony Kuker <akuker@gmail.com>
2022-03-03 11:06:40 -08:00
Uwe Seimet
af9638ce48
Validate SEEK block address (#719)
* Validate SEEK block address

* Ignore block count for SEEK

* Updated REPORT LUNS
2022-03-03 12:53:11 -06:00
Uwe Seimet
305a7fb99d
Use enums for device type and scsi level (#718)
* Use enums for device type and scsi level

* Renaming

* Use new enum instead of magic values

* Comment update

* Fixed REQUEST SENSE regression
2022-03-02 11:31:42 -06:00
Benjamin Zeiss
0297fe856a
8bit encoder detection + debounced button detection, numpy removal (#710)
* debounce interrupt events for rotary events and button presses with 400 microseconds by default.

* Massive improvements for the encoder detection. Removed numpy as a dependency.

* Debounce button presses which started to jump around.

* formatting cleanup.
2022-03-01 20:27:14 -06:00
Uwe Seimet
1df7cdb1f3
Use vector for INQUIRY data, LUN list can have gaps, made methods const (#713)
* Use vector for INQUIRY data, Inquiry() is const, moved EVPD check

* Moved code

* Fixed warning

* Updated memcpy

* Set length

* Limit result vector size

* Limit result buffer size

* Inquiry() result buffer handling update

* Logging update

* Inquiry cleanup

* NEC drive can also use PrimaryDevice::Inquiry()

* NEC drive is never removable

* Comment update

* Bridge can also use PrimaryDevice::Inquiry()

* Removed unused method argument

* Comment update

* Updated comment

* Updated REQUEST SENSE buffer handling

* Fixed typo

* Fixed typo

* Re-added comment

* Updated additional length handling

* Check for INQUIRY command support first

* Added assertion

* Size handling update

* Renaming

* Renaming

* Removed obsolete casts

* Cleanup

* Moved error codes to scsi_defs namespace

* Fixed ReadDefectData10

* Comment update

* Updated buffer handling

* Data type update

* SendDiagnostic is now const

* Removed obsolete forward declaration

* removed unused enum

* Reduced method visibility

* Renaming

* GetSendDelay() can be const

* Made method const

* Made method const

* Added TODO

* Use iterator

* Made method const

* Revert "Made method const"

This reverts commit 38412b8ddd.

* No need to sort all set/maps

* Do not sort all sets

* Removed more unnecessary sorting

* Cleaned up includes

* More include cleanups

* Updated REPORT LUNS

* LUNs must not be consecutive anymore

* Updated detaching of LUN

* Improvements for devices without LUN 0

* Assume LUN 0 is always present

* Enforce presence of LUN 0

* Updated error handling
2022-03-01 20:25:22 -06:00
Daniel Markstedt
da02eccb2e
Improve logic for the get_logs() method. Add rascsi-ctrlboard service. (#714) 2022-02-28 09:49:48 -08:00
Uwe Seimet
0e8d89e827
Code cleanup, in particular related to MODE SENSE (#699)
* Replace member functions

* Fixed TODO

* Added TODOs

* Added TODOs

* Removed duplicate code

* Fixed return value

* CD-ROM mode pages are provided by the CD-ROM implementation

* MO mode pages are provided by the MO implementation

* Comment update

* Removed duplicate code

* Removed more duplicate code

* Optimization

* Updated mode page size handling

* Addec TODO

* Started more flexible mode page handling

* Map mode pages

* Page 0 must be last

* Error handling update

* Updated size handling

* Updated map handling

* Use map references

* Move superclass call

* Added comment

* Host services also support mode page 0x3f (all pages)

* Updated handling of page 0

* Removed duplicate code

* Updated buffer size handling

* Code cleanup

* Removed duplicate code

* Use calloc()

* Removed duplicate code

* Comment update

* Fixed buffer offset

* Fixed TODO

* Added buffer size check

* Comment udpate

* Logging update

* Updated logging

* Avoid potential memory leak

* Updated handling of page 0

* Added TODO

* Comment update

* Fixed error message

* Use vector instead of byte array

* Optimization

* More optimizations

* Removed duplicate code

* Do not try to add more pages when buffer is full

* Updated error message

* Comment update, fixed host services message length handling

* Code cleanup, optimizations

* Updated payload handling for page 0

* Fixed TODO

* Updated handling of PS field

* Fixed offsets

* Updated handling for page 0

* Code cleanup

* More cleanup

* Updated block descriptor handling

* Result of REPORT LUNS must not depend on whether a device is ready or not

* Printer uses a dynamically allocated buffer

* Use realloc

* Updated memory handling

* Added assertion

* Comment update

* Fixed initialization

* Reset byte transfer flag

* Updated usage of realloc

* Reverted some changes

* Re-added buffer size check

* Renaming

* Inquiry for hard disk must also work when drive is not ready

* Primary device checks EVPD

* Added page code check to Inquiry

* Explicitly set response level format

* Added comment

* Removed useless cast

* Fixed inconsistencies in setting the additional length

* Logging uodate

* Updated logging

* Made methods const

* Moved code

* Added TODO

* Added vendor page

* Reduced visibility

* Code cleanup

* Mark override

* Removed duplicate cast

* Synchronized host services mode page handling with other code

* Added TODO

* Signature update

* Moved code

* Removed duplicate code

* Fixed TODO

* Removed duplicate code

* Added buffer size check

* Improved buffer size check

* Code cleanup

* Removed useless assertions

* Cleanup

* Renaming

* Added overrides

* Removed unnecessary casts

* Cleanup

* Added TODO

* Removed obsolete memset

* Removed duplicate code

* Logging update

* Logging update

* Assertion update

* Removed useless comments

* Code cleanup

* Removed obsolete casts

* User super typedef

* Updated log messages

* Fixed #712

* Updated error handling

* Removed useless assertions

* Reduced casts to Disk*

* Updated sector size list argument

* Removed obsolete casts

* Removed comment
2022-02-27 15:58:01 -06:00
Uwe Seimet
33bfe42017
Replaced zlib by internal crc32() method (#698) 2022-02-27 15:24:50 -06:00
Daniel Markstedt
e8f392c3f1
Create SysCmds common class, and refactor Python codebase (#697)
* Move the oled script's PiCmds module to common, and rename it SysCmds.

* Use sys_cmds.get_ip_and_host() in web UI code.

* Move the auth_active() method to device_utils

* Rename device_utils to web_utils. Make auth_active() method take the group as argument.

* Migrate all pi_cmds methods to the SysCmds common class.

* Display hostname and ip in Web UI.

* Resolve or suppress pylint warnings.

* Resolve a pylint warning.

* Resolve or suppress pylint warnings.

* Import libraries at the top level for readability. In my testing on a Pi3B+, this leads to ~1.5k more memory being used by the python3 process.

* Change page title as requested by akuker.

* Reenable the import-outside-toplevel pylint rule.

* Resolve pylint warnings.

* Fix error following refactoring.

* Minor UI tweaks.

* Cleanup.

* Break out bridge config validation into a utility method.

* Move the dropzonejs method into the web_utils package

* Move get_logs method into SysCmds class.

* Improve get logs UI.

* Resolve pylint warning.

* Standardize class instance name.
2022-02-26 21:46:35 -08:00
Benjamin Zeiss
4178d4b845
Small installation fixes when upgrading an existing device. (#707) 2022-02-25 17:42:56 -08:00
Benjamin Zeiss
cd0da558c3
Initial version of the Control Board UI (#687)
Initial version of the Control Board UI (#687)
2022-02-25 21:03:36 +01:00
Uwe Seimet
f5f5c002aa
Added reboot support (#696) 2022-02-22 19:08:22 -08:00
Uwe Seimet
7290803ace
Removed untested/unsupported NetBSD-related code (#694) 2022-02-22 19:07:06 -08:00
Daniel Markstedt
cd0baa4676
Forgot to update the oled script after renaming class method. (#693) 2022-02-22 09:29:35 +01:00
Uwe Seimet
ba8ad2e7f5
Fixed missing media change handling (#690)
* Remember media change

* Added comment

* Added TODO

* Updated SCSI level for host services to SPC-5

* Manpage update
2022-02-21 21:01:17 +01:00
Daniel Markstedt
5d92590877
Use the word Release in the context of making a SCSI ID available for use, rather than the word Unreserve which is poor English. (#692) 2022-02-21 20:31:38 +01:00
Daniel Markstedt
4252d46844
Inquire the backend for device capabilities instead of Web UI assumptions (#688)
* Add capabilities to RaCtlCmds.get_device_types() to return the image file support boolean, and list of supported block sizes.

* Inquire rascsi backend about the min block size rather than hard coding values in the web UI.

* Add class methods for getting lists of certain device types.

* Use the new class methods to get lists of device types in the web ui.

* Make use of the new class methods in the oled script.

* Remove now unused constants, and simplify logic in common_settings

* Improve device name mapping to extend the existing dictionary rather than creating a new data structure.

* Use jinja2 sort filters instead of sorting in python code. Removing redundant variables.

* Introduce the get_device_name() utility method which returns the translated name for a device acronym. Use the new method to display device name when attaching devices.

* Fix typo

* Rename Support Device to Periperal Device. General tweaks to UI strings.

* Tweak UI string.

* Fix error.
2022-02-21 09:27:31 -08:00
Daniel Markstedt
01e1aaae3e
Make the support device UI entirely procedurally generated (#686)
* Make the support device UI entirely procedurally generated, removing the special case network device UI flow.

* Clean up helptext.
2022-02-20 09:49:23 -08:00
Uwe Seimet
2beb78727f
Added support for new interfaces syntax (#684)
* Added support for new interfaces syntax

* rasctl output update

* Added operation parameters

* Fixed typo

* Manpage update

* Added deprecation warning

* Moved parser

* Updated parser

* Updated parameter override

* Removed debug code

* Made netmask handling more flexible

* Updated logging

* Logging update

* Logging update

* Comment update

* Removed unused field

* Replaced BOOL by bool

* Moved code

* Logging update

* Removed useless comments

* Added TODZ

* Logging update

* Logging update

* Logging update

* No need to report that an error is an error twice

* Removed duplicate logging

* Updated error handling

* Updated error handling

* Fixed typo

* Removed magic constant

* Fixed 32 bit platform issue

* Signature update

* Fixed message string

* Comment update

* Fixed SCSI command opcode

* Updated StopPrint

* Logging update

* Removed obsolete casts

* Renaming

* Removed duplicate logging

* Updated flushing caches

* Added FlushCache() method

* Reduced visibility

* Reduced visibility

* Reduced visibility

* Code cleanup, removed useless comments

* Removed useless comments

* Updated error handling

* Removed duplicate code

* Manpage update
2022-02-20 18:40:30 +01:00
Daniel Markstedt
2184992ce7
Tentative Web UI for the Printer device. (#676)
* Tentative Web UI for the Printer device.

* timeout must be a positive value

* Change the attach device class method to accept a dict with arbitrary key value pairs of parameters to be passed to the protobuf interface, rather than hard coded ones. Also renames the RaCtlCmds.attach_image() class method to attach_device().

* Make download_to_iso() use the new attach interface.

* Dynamically get the form items for support devices.

* Change the data structure returned by RaCtlCmds.get_device_types() to a dict, which contains the supported parameters and their default values. Leverage this data in the web ui to derive the form fields from the capabilities of rascsi.

* Tweak UI labels.

* Update FileCmds.read_config() to work with the new RaCtlCmds.attach_device() method.

* Check for numeric value.

* Streamline the UI for support devices.

* Handle support devices better by the oled screen.

* Clean up html.

* Dynamically adjust form field size based on data length.
2022-02-19 09:04:14 +01:00
Uwe Seimet
81ca3c0ce8
Added filename placeholder, execute print command as lp, fixed memory leaks (#677)
* Added filename placeholder

* Comment update

* Execute print command as lp user

* Comment update

* Comment update

* Added operaton parameters

* Sort parameter output by name

* Removed assertion

* Revert "Removed assertion"

This reverts commit f9ab582ddc.

* Include cleanup

* Code cleanup

* Updated SCSI reset

* Fixed memory leak

* Revert "Fixed memory leak"

This reverts commit 2dbbdcd192.

* Fixed memory leak

* Fixed memory leak

* Updated operation count check

* Fixed memory leaks

* Delete temporary PbOperationInfo
2022-02-18 12:06:33 -08:00
Uwe Seimet
e13cf1ebb4
Resolved TODO, rascsi guarantees that LUN 0 is always present (#681) 2022-02-18 12:04:07 -08:00
Uwe Seimet
2281a7e53b
Bridge is not yet ready to not subclass Disk (#679) 2022-02-18 12:03:22 -08:00