Skip to content

Commit

Permalink
Add sender monitoring models
Browse files Browse the repository at this point in the history
  • Loading branch information
cristian-recoseanu committed Sep 20, 2024
1 parent 922fbe7 commit b751b87
Show file tree
Hide file tree
Showing 4 changed files with 336 additions and 0 deletions.
66 changes: 66 additions & 0 deletions monitoring/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,16 @@ Includes models for control classes and datatypes used for monitoring.
- [NcOverallStatus](#ncoverallstatus)
- [NcLinkStatus](#nclinkstatus)
- [NcConnectionStatus](#ncconnectionstatus)
- [NcTransmissionStatus](#nctransmissionstatus)
- [NcSynchronizationStatus](#ncsynchronizationstatus)
- [NcStreamStatus](#ncstreamstatus)
- [NcEssenceStatus](#ncessencestatus)
- [NcPacketCounter](#ncpacketcounter)
- [NcMethodResultCounters](#ncmethodresultcounters)
- [Control classes](#control-classes)
- [NcStatusMonitor](#ncstatusmonitor)
- [NcReceiverMonitor](#ncreceivermonitor)
- [NcSenderMonitor](#ncsendermonitor)

## Datatypes

Expand Down Expand Up @@ -52,6 +55,18 @@ enum NcConnectionStatus {
};
```

### NcTransmissionStatus

```typescript
// Transmission status enum data type
enum NcTransmissionStatus {
"Inactive", // 0 Inactive
"Healthy", // 1 Active and healthy
"PartiallyHealthy", // 2 Active and partially healthy
"Unhealthy" // 3 Active and unhealthy
};
```

### NcSynchronizationStatus

```typescript
Expand All @@ -76,6 +91,18 @@ enum NcStreamStatus {
};
```

### NcEssenceStatus

```typescript
// Essence status enum data type
enum NcEssenceStatus {
"Inactive", // 0 Inactive
"Healthy", // 1 Active and healthy
"PartiallyHealthy", // 2 Active and partially healthy
"Unhealthy" // 3 Active and unhealthy
};
```

### NcPacketCounter

```typescript
Expand Down Expand Up @@ -150,3 +177,42 @@ Receiver monitors MUST maintain a 1 to 1 relationship between their role and the
[element("4m4")] NcMethodResult ResetSynchronizationSourceChanges();
};
```
### NcSenderMonitor
Sender monitoring class required for expressing statuses of different domains (connectivity, synchronization, essence validation).
Because it derives from the baseline [NcStatusMonitor](#ncstatusmonitor) it will also expose an `overallStatus` property.
It uses the Touchpoint mechanism inherited from NcObject to attach to the correct sender identity.
Sender monitors MUST maintain a 1 to 1 relationship between their role and the touchpoint sender entity they monitor as long as the sender entity hasn't been disposed by the device.
```typescript
// Sender monitor class descriptor
[control-class("1.2.2.2")] interface NcSenderMonitor: NcStatusMonitor {
[element("4p1")] readonly attribute NcLinkStatus linkStatus; // Link status property
[element("4p2")] readonly attribute NcString? linkStatusMessage; // Link status message property
[element("4p3")] readonly attribute NcTransmissionStatus transmissionStatus; // Transmission status property
[element("4p4")] readonly attribute NcString? transmissionStatusMessage; // Transmission status message property
[element("4p5")] readonly attribute NcSynchronizationStatus externalSynchronizationStatus; // External synchronization status property
[element("4p6")] readonly attribute NcString? externalSynchronizationStatusMessage; // External synchronization status message property
[element("4p7")] readonly attribute NcString? synchronizationSourceId; // Synchronization source id property
[element("4p8")] readonly attribute NcUint64 synchronizationSourceChanges; // Synchronization source changes counter
[element("4p9")] readonly attribute NcEssenceStatus essenceStatus; // Essence status property
[element("4p10")] readonly attribute NcString? essenceStatusMessage; // Essence status message property
[element("4p11")] attribute NcBoolean autoResetPacketCounters; // Automatic reset packet counters property (default: true)

// Gets the lost packet counters
[element("4m1")] NcMethodResultCounters GetLostPacketCounters();

// Gets the late packet counters
[element("4m2")] NcMethodResultCounters GetLatePacketCounters();

// Resets the packet counters
[element("4m3")] NcMethodResult ResetPacketCounters();

// Resets the synchronization source changes counter property
[element("4m4")] NcMethodResult ResetSynchronizationSourceChanges();
};
```
214 changes: 214 additions & 0 deletions monitoring/models/classes/1.2.2.2.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,214 @@
{
"description": "Sender monitor class descriptor",
"classId": [
1,
2,
2,
2
],
"name": "NcSenderMonitor",
"fixedRole": null,
"properties": [
{
"description": "Link status property",
"id": {
"level": 4,
"index": 1
},
"name": "linkStatus",
"typeName": "NcLinkStatus",
"isReadOnly": true,
"isNullable": false,
"isSequence": false,
"isDeprecated": false,
"constraints": null
},
{
"description": "Link status message property",
"id": {
"level": 4,
"index": 2
},
"name": "linkStatusMessage",
"typeName": "NcString",
"isReadOnly": true,
"isNullable": true,
"isSequence": false,
"isDeprecated": false,
"constraints": null
},
{
"description": "Transmission status property",
"id": {
"level": 4,
"index": 3
},
"name": "transmissionStatus",
"typeName": "NcTransmissionStatus",
"isReadOnly": true,
"isNullable": false,
"isSequence": false,
"isDeprecated": false,
"constraints": null
},
{
"description": "Transmission status message property",
"id": {
"level": 4,
"index": 4
},
"name": "transmissionStatusMessage",
"typeName": "NcString",
"isReadOnly": true,
"isNullable": true,
"isSequence": false,
"isDeprecated": false,
"constraints": null
},
{
"description": "External synchronization status property",
"id": {
"level": 4,
"index": 5
},
"name": "externalSynchronizationStatus",
"typeName": "NcSynchronizationStatus",
"isReadOnly": true,
"isNullable": false,
"isSequence": false,
"isDeprecated": false,
"constraints": null
},
{
"description": "External synchronization status message property",
"id": {
"level": 4,
"index": 6
},
"name": "externalSynchronizationStatusMessage",
"typeName": "NcString",
"isReadOnly": true,
"isNullable": true,
"isSequence": false,
"isDeprecated": false,
"constraints": null
},
{
"description": "Synchronization source id property",
"id": {
"level": 4,
"index": 7
},
"name": "synchronizationSourceId",
"typeName": "NcString",
"isReadOnly": true,
"isNullable": true,
"isSequence": false,
"isDeprecated": false,
"constraints": null
},
{
"description": "Synchronization source changes counter",
"id": {
"level": 4,
"index": 8
},
"name": "synchronizationSourceChanges",
"typeName": "NcUint64",
"isReadOnly": true,
"isNullable": false,
"isSequence": false,
"isDeprecated": false,
"constraints": null
},
{
"description": "Essence status property",
"id": {
"level": 4,
"index": 9
},
"name": "essenceStatus",
"typeName": "NcEssenceStatus",
"isReadOnly": true,
"isNullable": false,
"isSequence": false,
"isDeprecated": false,
"constraints": null
},
{
"description": "Essence status message property",
"id": {
"level": 4,
"index": 10
},
"name": "essenceStatusMessage",
"typeName": "NcString",
"isReadOnly": true,
"isNullable": true,
"isSequence": false,
"isDeprecated": false,
"constraints": null
},
{
"description": "Automatic reset packet counters property (default: true)",
"id": {
"level": 4,
"index": 11
},
"name": "autoResetPacketCounters",
"typeName": "NcBoolean",
"isReadOnly": true,
"isNullable": false,
"isSequence": false,
"isDeprecated": false,
"constraints": null
}
],
"methods": [
{
"description": "Gets the lost packet counters",
"id": {
"level": 4,
"index": 1
},
"name": "GetLostPacketCounters",
"resultDatatype": "NcMethodResultCounters",
"parameters": [],
"isDeprecated": false
},
{
"description": "Gets the late packet counters",
"id": {
"level": 4,
"index": 2
},
"name": "GetLatePacketCounters",
"resultDatatype": "NcMethodResultCounters",
"parameters": [],
"isDeprecated": false
},
{
"description": "Resets the packet counters",
"id": {
"level": 4,
"index": 3
},
"name": "ResetPacketCounters",
"resultDatatype": "NcMethodResult",
"parameters": [],
"isDeprecated": false
},
{
"description": "Resets the synchronization source changes counter property",
"id": {
"level": 4,
"index": 4
},
"name": "ResetSynchronizationSourceChanges",
"resultDatatype": "NcMethodResult",
"parameters": [],
"isDeprecated": false
}
],
"events": []
}
28 changes: 28 additions & 0 deletions monitoring/models/datatypes/NcEssenceStatus.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"description": "Essence status enum data type",
"name": "NcEssenceStatus",
"type": 3,
"items": [
{
"description": "Inactive",
"name": "Inactive",
"value": 0
},
{
"description": "Active and healthy",
"name": "Healthy",
"value": 1
},
{
"description": "Active and partially healthy",
"name": "PartiallyHealthy",
"value": 2
},
{
"description": "Active and unhealthy",
"name": "Unhealthy",
"value": 3
}
],
"constraints": null
}
28 changes: 28 additions & 0 deletions monitoring/models/datatypes/NcTransmissionStatus.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"description": "Transmission status enum data type",
"name": "NcTransmissionStatus",
"type": 3,
"items": [
{
"description": "Inactive",
"name": "Inactive",
"value": 0
},
{
"description": "Active and healthy",
"name": "Healthy",
"value": 1
},
{
"description": "Active and partially healthy",
"name": "PartiallyHealthy",
"value": 2
},
{
"description": "Active and unhealthy",
"name": "Unhealthy",
"value": 3
}
],
"constraints": null
}

0 comments on commit b751b87

Please sign in to comment.