![Oracle Drags Its Feet in the JavaScript Trademark Dispute](https://cdn.sanity.io/images/cgdhsj6q/production/919c3b22c24f93884c548d60cbb338e819ff2435-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
This is a command line utility for use with logic timer units used in the calibration system for the colimated beam projector (CBP) at the Rubin Observatory. The utility leverages pigpio to generate CSV logs of μ-second ticks corresponding to edge events on the timer unit TTL trigger inputs.
The logic timer modules are built on the Raspberry Pi 4b platform, running AlmaLinux 9. An Adafruit Ultimate GPS Hat module is included to provide GPS-assisted stabilization of the Raspberry Pi clock when GPS reception is available.
A 5V TTL trigger interface is also built out in the prototyping area of the GPS hat. This utilizes a 74LVC245 for 5V to 3.3V level conversion, and provides jumperable 10K pull up/down and jumperable ground lift on the TTL side. The level-converted trigger input is wired through to Pi GPIO 16 via the hat.
The pigpio
daemon uses the Raspberry Pi hardware DMA engine to sample GPIOs every 5μs (by default). It
queues events recording observed edges, attaching timestamps from the system μ-second clock. The Python
side of pigpio
then reads this queue at its leisure and generates Python callbacks which are used to write
out CSV records. The logged timestamps which are passed to the callbacks are the ones recorded by the daemon,
and are not derived from the Python callback time.
This arrangement should be sufficient for millisecond-accurate timing. If it is necessary to tighten this
further, we could consider configuring pigpio
for a higher sample frequency (it can get down to a 1μs
sample period) and/or cutting over to a real-time Linux kernel.
This package is published on PyPI, so should be installable via:
pip install lsst-cbptimer
It is assumed
that you will have previously installed pigpio
(libraries and daemon) as a system-level dependency. Once
installed:
usage: cbptimer [-h] [--edge {rising,falling,either}] [--duration DURATION] [--outfile OUTFILE] [--version]
Log trigger events from CBP calibration logic timer
optional arguments:
-h, --help show this help message and exit
--edge {rising,falling,either}
which types of triggers to log (default: rising)
--duration DURATION duration to monitor/log, in seconds (default: infinite; ^C or SIGINT to exit)
--outfile OUTFILE where to log (default: stdout)
--version show program's version number and exit
It is recommended to develop within a virtual environment. The package can be installed in pip "editable" mode via:
pip install -e .[dev]
The [dev]
option here will ensure automatic installation of additional Python development support packages (mypy
, ruff
, build
). Linting and autoformatting can be accomplished via:
ruff check .
ruff format .
Type hinting may be checked via:
mypy src
FAQs
Command line tool for Rubin Observatory CBP calibration system logic timers
We found that lsst-cbptimer demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.