Extensively refine code for these three serial I/O examples#448
Merged
pat-rogers merged 2 commits intoAdaCore:masterfrom Sep 9, 2025
Merged
Extensively refine code for these three serial I/O examples#448pat-rogers merged 2 commits intoAdaCore:masterfrom
pat-rogers merged 2 commits intoAdaCore:masterfrom
Conversation
added 2 commits
August 30, 2025 13:24
* README.md - Add new readme indicating that this host program is only intended for the stream-based demo, and explaining how to use it * host.adb - Add much more comments in the header block explaining how to use this program and why it is needed - Parameterize the host port number instead of hard-coding it * demo_serial_port_blocking.adb - Use normalized (new) procedure names for Send and Receive, for consistency with other versions - Add comments re: baud rate and other settings required * demo_serial_port_nonblocking.adb - Better name for local procedure - Add many more comments re: settings * demo_serial_port_streaming.adb - Replace source code in comment header block with location of the actual code and project file. - Add comment re: serial port settings * peripherals_blocking.ads - Peripheral should be a constant - COM can now reference the designated USART, the component of Peripheral * peripherals_nonblocking.ads - Same as for peripherals_blocking.ads * peripherals_streaming.ads - Same as for peripherals_blocking.ads * serial_io-blocking.ads - Type Serial_Port now designates a USART rather than type Peripheral - No longer provide call through routines for the Serial_IO package's Initialize_Hardware and Configure since client can easily call them. Better separation of concerns as a result. - Change signatures of internal routines to be access-to-USART * serial_io-blocking.adb - Internal simplifications reflecting change to access discriminant now designating type USART - Remove code for Initialize_Hardware and Configure, per removal from package spec * serial_io-nonblocking.ads - Type Serial_Port now designates a USART rather than type Peripheral - No longer provide call through routines for Serial_IO packages Initialize_Hardware and Configure since client can easily do so, and simplifies this package - Change signatures of internal routines to be access-to-USART * serial_io-nonblocking.adb - Internal simplifications reflecting change to access discriminant now designating type USART - Remove code for Initialize_Hardware and Configure, per removal from package spec - Use short-circuit control forms in ISR since don't need to check both conditions, should be a little faster * serial_io-streaming.ads - Type Serial_Port now designates a USART rather than type Peripheral - No longer provide call through routines for Serial_IO packages Initialize_Hardware and Configure since client can easily do so, and simplifies this package - Change signatures of internal routines to be access-to-USART * serial_io-streaming.adb - Internal simplifications reflecting change to access discriminant now designating type USART - Remove code for Initialize_Hardware and Configure, per removal from package spec * serial_io.ads - Procedure Initialize_Hardware's formal parameter is no longer an access parameter - Procedure Configure's first formal parameter is now access to USART * serial_io.adb - Change to prcoedures' signatures as per spec - Procedure Configure now uses distinguished receiver syntax for USART routines, much cleaner
Fabien-Chouteau
approved these changes
Sep 9, 2025
Author
|
On 09-Sep-25 11:21 AM, Fabien Chouteau wrote:
***@***.**** approved this pull request.
Thanks!
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
README.md
stream-based demo, and explaining how to use it
host.adb
why it is needed
demo_serial_port_blocking.adb
other versions
demo_serial_port_nonblocking.adb
demo_serial_port_streaming.adb
code and project file.
peripherals_blocking.ads
peripherals_nonblocking.ads
peripherals_streaming.ads
serial_io-blocking.ads
Initialize_Hardware and Configure since client can easily call them. Better
separation of concerns as a result.
serial_io-blocking.adb
serial_io-nonblocking.ads
Initialize_Hardware and Configure since client can easily do so, and simplifies this package
serial_io-nonblocking.adb
a little faster
serial_io-streaming.ads
Initialize_Hardware and Configure since client can easily do so, and simplifies this package
serial_io-streaming.adb
serial_io.ads
serial_io.adb