Skip to content

uavcan.node.GetInfo service client scanner in CyphalApp #45

Description

@emrainey

Summary

Add the client side of uavcan.node.GetInfo.1.0 (port-ID 430) to CyphalApp: intermittently scan a range of server node-IDs (e.g. 2..10), send GetInfo requests, and log the responses that come back.

Builds on the server-side service infra (i.e. the UdpardRxServiceDispatcher from the server issue):

  • Register a service response RX port for port-ID 430 (udpvRxServiceDispatcherListen(..., is_request=false, ...)).
  • Maintain per-(service-ID, server-node-ID) transfer-ID counters for the request/response rendezvous.
  • Periodically (e.g. every ~5 s or on a slow scan cycle) send a GetInfo request to the next node-ID in the scan window using udpardTxRequest and the same MTU/deadline patterns as PublishHeartbeat.
  • On a completed response whose source node matches the pending scan: deserialize, print name / version / unique-id.

Tests

  • Unit tests for request serialize (empty payload), response round-trip; test the scan schedule/target selection logic factorized if feasible; lag a test plan + mock for the rendezvous (not host-testable behind hypha/ethernet).

Depends

Server-side service infra from the server issue (id #44).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions