---
# System prepended metadata

title: NF1 project

---

# NF1 project

## Questions
- Proposed archtiecture (Rough conecpt)
    - [x] Need explanation for diagram specially the unrelated flows of it

- Requirements > General/System
    - [ ] Software updates: How do we update packages offline

- Transfer Management
    - [ ] Does NF1 use libssh2's patched version as mentioned in the docs?
    - [ ] What is NF270 Default and fallback transfer target?
    - [ ] Does current NF1 code check for data corruption using checksum?
    - [ ] What is drive health state and how do we monitor it with smart?

## Readout Station Firmware
### Setup
- Started with installing [Readout Station Firmware](http://gitlab.caetec:8929/ASO/software-readout-station/readout-station-firmware)
- ~~Getting error `Failed to build python-crontab psutil pyrsistent pyudev ssh2-python uptime`~~
- Successfully built and set up.

## Current task
**Draw flowchart of how the following states are achieved**
- Ready
- Busy
- Disconnecting success
- Discinnecting error
- Physically connected
- Remove - It is time taken to show blank on the UI after removing the drive.
- Reconnected - It is time taken to come to ready state on subsequent 2nd time insertion of the drive.
- FTP error
- FTP reconnected

**Ready state**
```mermaid
flowchart TD

    subgraph one[class DrivebaySerial]
    DS4[def get_slot_nowait] --returns-->DS0
    DS1[def run]--calls-->DS2[def _put_slot]
    DS2 --Keeps Updating--> DS0[self._detect_queue]
    end
    
    subgraph two[class Baymanager]
    BM0[self._readyDisks]
    BM1[def run] --calls--> BM2[def _getConnectedDevices]
    BM2 <--calls-->DS4
    BM2 --updates-->BM0
    end
    
    subgraph three[API]
    AP0[def _ready_disks] <--calls--> BM0
    AP0 --calls--> AP1[def _readyDisksSubthread]
    AP1 --updates--> AP2[CACHE.Diskstatus_ALL]
    end
```

## Questions
- Why `drivebay.py:<class 'SLOTS'>` has only 6 slots when there are 12 slots in the drivebay?
- Confusion in `drivebay.py:<class 'DrivebaySerial'>`. Which line of code detects insertion of a new SSD?