Skip to content

Non-functional requirements #1

@JojoEffect

Description

@JojoEffect
  • C++ 11 standard
  • Use PROTOBUF and proto definitions (be aware of newer features)
  • Minimal 3rd party libs versions:
    • Protobuf v3.19 in DEV
  • Configurable functions
    • buffer/memory size on init
    • Validation of given data fields/sets
    • Storage of linked raw data (should the library be responsible for the availability of the linked raw data inside the provided data sets?)
  • separate handling of reads and writes on the lib
    • write should be able to run in real-time context
      • real time mutex - ceiling priority, priority inheritance
        • int initRTMutex(pthread_mutex_t *mutex) { pthread_mutexattr_t mutexAttr; pthread_mutexattr_init(&mutexAttr); pthread_mutexattr_setpshared(&mutexAttr, PTHREAD_PROCESS_SHARED); pthread_mutexattr_setrobust_np(&mutexAttr, PTHREAD_MUTEX_ROBUST_NP); pthread_mutexattr_setprotocol(&mutexAttr, PTHREAD_PRIO_INHERIT); pthread_mutex_init(mutex, &mutexAttr); }
      • avoid memory alloc on write
    • read should run in NON-real-time
  • Deployment
    • Sources
    • Conan package
    • Microservices
      • with VLP API
      • optional with gRPC API
      • optional with OPC UA API

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions