Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/image performance #128

Open
wants to merge 74 commits into
base: main
Choose a base branch
from

Commits on Apr 19, 2022

  1. Remove unnecessary if

    hoffmann-stefan committed Apr 19, 2022
    Configuration menu
    Copy the full SHA
    9401929 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    52363eb View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    e4eeb2c View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    cb0f23f View commit details
    Browse the repository at this point in the history
  5. Generate array size constants

    Named {member}_Count as this is the normal .NET lingo.
    removed getsize_array_field c function as well as it is constant,
    no need for interop
    hoffmann-stefan committed Apr 19, 2022
    Configuration menu
    Copy the full SHA
    2b198f4 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    8209665 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    0820c78 View commit details
    Browse the repository at this point in the history
  8. Initialize arrays and change mapped type

    Idl arrays now map as System.Array instead of List<T>.
    This is the more natural C# type for them.
    hoffmann-stefan committed Apr 19, 2022
    Configuration menu
    Copy the full SHA
    fb9a25f View commit details
    Browse the repository at this point in the history
  9. Add size checks for array and bounded sequences

    - size gets checked on writing to the native handle of the message.
    - change foreach to for to avoid multi threaded race conditions while writing to native memory.
      (the upper bound is now local and cannot be changed from somewhere else)
    hoffmann-stefan committed Apr 19, 2022
    Configuration menu
    Copy the full SHA
    922c24d View commit details
    Browse the repository at this point in the history
  10. Use int32_t as size type to the c# side

    `List<T>.Count` is of c# type `int`, wich is 32 bit signed.
    C does use `sizeof_t` wich is 32/64 bit dependent.
    So this does marshal at least correctly, ignoring cast from 64 bit to
    32 bit and vice versa for now.
    getting marshaling/conversations 100% correct is anoher issue for another day.
    hoffmann-stefan committed Apr 19, 2022
    Configuration menu
    Copy the full SHA
    7dc4f12 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    ebbd965 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    2229e71 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    41f46a0 View commit details
    Browse the repository at this point in the history
  14. Add service example

    hoffmann-stefan committed Apr 19, 2022
    Configuration menu
    Copy the full SHA
    8722462 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    1e8521d View commit details
    Browse the repository at this point in the history
  16. Add client example

    hoffmann-stefan committed Apr 19, 2022
    Configuration menu
    Copy the full SHA
    0c21977 View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    262ffea View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    680e3db View commit details
    Browse the repository at this point in the history
  19. Remove Interfaces that expose internal implementation details

    Most importent the `IntPtr Handle` property from `ROS2.Interfaces.IDisposable`
    should not be public.
    `ROS2.Interfaces.IDisposable` was missleading as well.
    (`System.IDisposable` is the well kown one)
    Made appropriate memers internal as well and added some sealed and static modifiers.
    This was done in preperation for adding SafeHandles to avoid memory leaks,
    as this would change the implementation detail that was made public by the interfaces.
    
    Abstractions such as interfaces have to be designed for extensability.
    See https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/abstractions-abstract-types-and-interfaces
    hoffmann-stefan committed Apr 19, 2022
    Configuration menu
    Copy the full SHA
    bd37a93 View commit details
    Browse the repository at this point in the history
  20. Add SafeHandles for Node and related types

    As of before this commit native recources for rcl_node_t, rcl_client_t,
    rcl_publisher_t, rcl_service_t and rcl_subscription_t didn't
    get released.
    
    Used a trick from dotnet/runtime to handle the requirement
    that node has to be released last.
    
    Also added some TODOs to check return values and for checks near
    allocations use the new throw helper.
    hoffmann-stefan committed Apr 19, 2022
    Configuration menu
    Copy the full SHA
    a65e5e9 View commit details
    Browse the repository at this point in the history
  21. Add SafeHandles for request id and wait set

    - Refactored and renamed some methods to be more consistent.
    - Added some error handling.
    - Don't try to take things if the wait set did return a timeout.
    hoffmann-stefan committed Apr 19, 2022
    Configuration menu
    Copy the full SHA
    3b33504 View commit details
    Browse the repository at this point in the history
  22. Add SafeHandles to generated message types

    - renamed IMessage to IRosMessage
    - moved interfaces for generated types to ROS2 namespace
    - renamed interface members
    - used `global::*` in some places to avoid name colisions
    - added editor browsable never to the members of the interfaces that
    schould not be used outside of rcldotnet
    hoffmann-stefan committed Apr 19, 2022
    Configuration menu
    Copy the full SHA
    ca71795 View commit details
    Browse the repository at this point in the history
  23. Add static member caches

    - Avoids doing reflection over and over.
    - If we can require static abstract interface members this could go away.
    hoffmann-stefan committed Apr 19, 2022
    Configuration menu
    Copy the full SHA
    c3d3797 View commit details
    Browse the repository at this point in the history
  24. Improve error handling

    - move RCLExeptionHelper from rcldotnet_common to rcldotnet for acces to rcl_get_error_string()
    - get error string using rcl_get_error_string() and add this to the exception message
    - change throw helper to avoid unrachable code
    - also some other cleanup
    hoffmann-stefan committed Apr 19, 2022
    Configuration menu
    Copy the full SHA
    f87e169 View commit details
    Browse the repository at this point in the history
  25. Rename request variable to solve a CS0136 error:

    error CS0136: A local or parameter named 'request' cannot be declared in this scope because that name is used in an enclosing local scope to define a local or parameter
    LoyVanBeek authored and hoffmann-stefan committed Apr 19, 2022
    Configuration menu
    Copy the full SHA
    91f8e01 View commit details
    Browse the repository at this point in the history
  26. Use const instead of static readonly for constants

    This allows them to be used in switch cases and other places.
    hoffmann-stefan committed Apr 19, 2022
    Configuration menu
    Copy the full SHA
    67a732b View commit details
    Browse the repository at this point in the history
  27. Configuration menu
    Copy the full SHA
    849eca5 View commit details
    Browse the repository at this point in the history
  28. Update README.md

    hoffmann-stefan committed Apr 19, 2022
    Configuration menu
    Copy the full SHA
    79a338d View commit details
    Browse the repository at this point in the history

Commits on Jun 14, 2022

  1. Configuration menu
    Copy the full SHA
    06f231e View commit details
    Browse the repository at this point in the history

Commits on Jun 15, 2022

  1. Configuration menu
    Copy the full SHA
    fe31b3f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    6d3790b View commit details
    Browse the repository at this point in the history
  3. reduce warnings: Only use cdecl calling convention on i386 architectures

    This removes a warning when compiling on x64 plattforms.
    The C# DllImportAttribute ignores this calling canvention as well, but dosn't give a warning.
    hoffmann-stefan committed Jun 15, 2022
    Configuration menu
    Copy the full SHA
    a337ee5 View commit details
    Browse the repository at this point in the history
  4. reduce warnings: remove debug message in cmake script

    Removes stderr output on build.
    hoffmann-stefan committed Jun 15, 2022
    Configuration menu
    Copy the full SHA
    73975d2 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    6b51d27 View commit details
    Browse the repository at this point in the history
  6. codestyle: Format code using dotnet format

    This was done with an temporary *.csproj file in the root of the repository:
    
    ```xml
    <Project Sdk="Microsoft.NET.Sdk">
      <PropertyGroup>
        <TargetFramework>netstandard2.0</TargetFramework>
      </PropertyGroup>
    </Project>
    ```
    
    Then run command `dotnet format` (from .NET6) in the root of the repository.
    
    Did some manual whitespace changes as well, mainly indented wrapped parameters.
    hoffmann-stefan committed Jun 15, 2022
    Configuration menu
    Copy the full SHA
    534d2a3 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    fc68df1 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    be8439d View commit details
    Browse the repository at this point in the history

Commits on Jun 17, 2022

  1. Configuration menu
    Copy the full SHA
    093c045 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b7713c5 View commit details
    Browse the repository at this point in the history

Commits on Jun 21, 2022

  1. guard conditions: only try to take waitables if they are ready

    This avoids doing unnecessary allocations of native ROS messages only to check
    that there is no new data. This might be a good thing to do right now as with
    guard_conditions there could be probably more times the waitset is ready to fire
    some callbacks, so work should be minimized here especially.
    hoffmann-stefan committed Jun 21, 2022
    Configuration menu
    Copy the full SHA
    664ee0b View commit details
    Browse the repository at this point in the history

Commits on Jun 22, 2022

  1. Configuration menu
    Copy the full SHA
    adebb26 View commit details
    Browse the repository at this point in the history

Commits on Jun 23, 2022

  1. actions: extend idl generation to include interfaces for "action wrap…

    …per types"
    
    With "action wrapper types" this means the ROS messages and services that add the `GoalId`, `TimeStamp` or other fields on top of the user defined types for the action.
    The introduced methods in `IRosActionDefinition` are needed to work around the missing existential type support in C# (dotnet/csharplang#5556).
    hoffmann-stefan committed Jun 23, 2022
    Configuration menu
    Copy the full SHA
    2aa60ce View commit details
    Browse the repository at this point in the history
  2. actions: add accessors to UUID and Time properties for "action wr…

    …apper types"
    
    This uses the base type `IMessage` to get around the cyclic references.
    hoffmann-stefan committed Jun 23, 2022
    Configuration menu
    Copy the full SHA
    37845b0 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    ab8aff4 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    0b85387 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    eec1f7f View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    71ad79b View commit details
    Browse the repository at this point in the history

Commits on Jun 24, 2022

  1. Configuration menu
    Copy the full SHA
    83746eb View commit details
    Browse the repository at this point in the history

Commits on Jun 29, 2022

  1. Configuration menu
    Copy the full SHA
    e1b38da View commit details
    Browse the repository at this point in the history

Commits on Jul 19, 2022

  1. Configuration menu
    Copy the full SHA
    41cf05b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    fdab894 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    3b71121 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    b2e46d9 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    e6639a6 View commit details
    Browse the repository at this point in the history

Commits on Jul 28, 2022

  1. Configuration menu
    Copy the full SHA
    3ffbd2d View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    04b2019 View commit details
    Browse the repository at this point in the history
  3. actions: use return value from Interlocked.CompareExchange

    The field access after Interlocked.CompareExchange might not reflect the updated value.
    Or does it? Anyways this makes it more clear.
    hoffmann-stefan committed Jul 28, 2022
    Configuration menu
    Copy the full SHA
    02cf5a5 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    459c229 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    15156b0 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    866834a View commit details
    Browse the repository at this point in the history

Commits on Aug 17, 2022

  1. Configuration menu
    Copy the full SHA
    5fda852 View commit details
    Browse the repository at this point in the history

Commits on Sep 13, 2022

  1. Configuration menu
    Copy the full SHA
    0019358 View commit details
    Browse the repository at this point in the history

Commits on Oct 11, 2022

  1. bool pInvoke: Fix bool pInvokes in generated messages

    This does not change the C# side of the generated messages to avoid even more complexity in the templates.
    As bools in C# pInvokes get marshalled as 32 bit integer by default there is no strictly need to change the code for bool fields.
    hoffmann-stefan committed Oct 11, 2022
    Configuration menu
    Copy the full SHA
    275dc2b View commit details
    Browse the repository at this point in the history

Commits on Oct 13, 2022

  1. Configuration menu
    Copy the full SHA
    2f857a3 View commit details
    Browse the repository at this point in the history

Commits on Nov 30, 2022

  1. missing

    pabloinigoblasco committed Nov 30, 2022
    Configuration menu
    Copy the full SHA
    bb16831 View commit details
    Browse the repository at this point in the history

Commits on Jun 9, 2023

  1. first attempt

    pabloinigoblasco committed Jun 9, 2023
    Configuration menu
    Copy the full SHA
    328145e View commit details
    Browse the repository at this point in the history

Commits on Jun 13, 2023

  1. image performance

    pabloinigoblasco committed Jun 13, 2023
    Configuration menu
    Copy the full SHA
    fd7b86d View commit details
    Browse the repository at this point in the history

Commits on Feb 20, 2024

  1. Configuration menu
    Copy the full SHA
    5788f59 View commit details
    Browse the repository at this point in the history
  2. solvin merge errors

    cmv-81 committed Feb 20, 2024
    Configuration menu
    Copy the full SHA
    d2b7553 View commit details
    Browse the repository at this point in the history

Commits on Feb 21, 2024

  1. fixing unknown platform error

    cmv-81 committed Feb 21, 2024
    Configuration menu
    Copy the full SHA
    58b970b View commit details
    Browse the repository at this point in the history

Commits on Mar 19, 2024

  1. update net7.0

    cmv-81 committed Mar 19, 2024
    Configuration menu
    Copy the full SHA
    e328135 View commit details
    Browse the repository at this point in the history

Commits on Nov 9, 2024

  1. Configuration menu
    Copy the full SHA
    30bdf4f View commit details
    Browse the repository at this point in the history
  2. safe bytes

    pabloinigoblasco committed Nov 9, 2024
    Configuration menu
    Copy the full SHA
    08ec73a View commit details
    Browse the repository at this point in the history

Commits on Nov 13, 2024

  1. minor

    pabloinigoblasco committed Nov 13, 2024
    Configuration menu
    Copy the full SHA
    db91259 View commit details
    Browse the repository at this point in the history