Newer
Older
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
/* Forward declaration of the ORI_Object_s structure. */
typedef struct ORI_Object_s ORI_Object_s;
/**
* @struct ORI_ObjectTypeRef_s
* @brief Object type reference structure.
*
* This structure represents an ORI ObjectTypeRef, which does not fully describe an ORI object
* because it is not associated to an instance number.
*/
typedef struct
{
ORI_Object_s * parent; /**< Parent object reference, may be NULL if no parent. */
ORI_ObjectType_e type; /**< Object type. */
} ORI_ObjectTypeRef_s;
/*-----------------------------------------------------------------------------------------
* OBJECT PARAMETERS
*-----------------------------------------------------------------------------------------*/
/**
* @struct ORI_ObjectParams_RE_s
* @brief Structure containing the parameters of a RE object.
*/
typedef struct
{
char vendorID[4]; /**< RO. Vendor ID as signaled in DHCP code 201, normally 3 characters */
char productID[81]; /**< RO. RE product ID.*/
char productRev[81]; /**< RO. RE product revision. */
char serialNumber[41]; /**< RO. RE serial number. */
char protocolVer[11]; /**< RO. OCP protocol supported. */
ORI_agcGranularity_e agcTargetLevCfgGran; /**< RO. UL AGC target RMS level config granularity. */
ORI_agcGranularity_e agcSettlTimeCfgGran; /**< RO. UL AGC settling time config granularity. */
uint16_t agcSettlTimeCap; /**< RO. UL AGC settling time capability. */
uint32_t AWS_uptime; /**< RO. AW2S Vendor specific: Uptime since boot in seconds. */
int32_t AWS_inputVoltage; /**< RO. AW2S Vendor specific: RE input voltage in mV. */
int32_t AWS_inputCurrent; /**< RO. AW2S Vendor specific: RE input current in mA. */
int16_t AWS_productTemp; /**< RO. AW2S Vendor specific: RE temperature in degC. */
int16_t AWS_cpuTemp; /**< RO. AW2S Vendor specific: CPU temperature in degC. */
int16_t AWS_paTemp; /**< RO. AW2S Vendor specific: Power amplifier temperature in degC. */
int16_t AWS_rxPwrOffset; /**< RO. AW2S Vendor specific: Receiver dBFS to dBm power conversion offset, unit is dB/10 (e.g. -340 for -34 dB). */
} ORI_ObjectParams_RE_s;
/**
* @struct ORI_ObjectParams_AntennaPort_s
* @brief Structure containing the parameters of an Antenna Port object.
*/
typedef struct
{
char portLabel[81]; /**< RO. Physical antenna port label.*/
int16_t AWS_outputPwr; /**< RO. AW2S Vendor specific: Measured output power for this antenna, unit is dBm/10 (e.g. 400 for 40 dBm). */
int16_t AWS_inputPwr; /**< RO. AW2S Vendor specific: Measured input power for this antenna, unit is dBm/10 (e.g. -650 for -65 dBm). */
int16_t AWS_returnLoss; /**< RO. AW2S Vendor specific: Measured return loss for this antenna, unit is dB/10 (e.g. 50 for 5 dB). */
} ORI_ObjectParams_AntennaPort_s;
/**
* @struct ORI_ObjectParams_TxSigPathUtra_s
* @brief Structure containing the parameters of a TxSigPath UTRAFDD object.
*/
typedef struct
{
uint16_t dlCalREMax; /**< RO. Max possible buffer in RE for DL timing calibration in Tc/16.*/
uint32_t t2a; /**< RO. RE time delay. */
uint16_t dlCalRE; /**< RW-Locked. Time delay to enable DL timing calibration in Tc/16. */
int16_t maxTxPwr; /**< RW. Max tx power for this path, unit is dBm/10 (e.g. 400 for 40 dBm). */
uint8_t axcW; /**< RW-Locked. AxC W parameter. */
uint8_t axcB; /**< RW-Locked. AxC B parameter. */
ORI_Object_s * oriLink; /**< RW-Locked. ORI Link on which the AxC is mapped. */
uint32_t uarfcn; /**< RW-Locked. Downlink UARFCN. */
ORI_Object_s * antPort; /**< RW-Locked. Reference Antenna port for this signal. */
int16_t AWS_measuredPwr; /**< RO. AW2S Vendor specific: Measured Tx power for this path, unit is dBm/10 (e.g. 400 for 40 dBm). */
uint16_t AWS_axcIncr; /**< RW-Locked. AW2S Vendor specific: AxC increment for each sample, 0 means auto (= packed, no interleaving). */
ORI_Boolean_e AWS_enPeakCancel; /**< RW-Locked. AW2S Vendor specific: Peak-Cancellation CFR enablement. */
} ORI_ObjectParams_TxSigPathUtra_s;
/**
* @struct ORI_ObjectParams_TxSigPathEUtraFDD_s
* @brief Structure containing the parameters of a TxSigPath EUTRAFDD object.
*/
typedef struct
{
uint16_t chanBW; /**< RW-Locked. Channel bandwith in MHz/10 (14 / 30 / 50 / 100 / 150 / 200). */
uint16_t dlCalREMax; /**< RO. Max possible buffer in RE for DL timing calibration in Tc/16.*/
uint32_t t2a; /**< RO. RE time delay. */
uint16_t dlCalRE; /**< RW-Locked. Time delay to enable DL timing calibration in Tc/16. */
int16_t maxTxPwr; /**< RW. Max tx power for this path, unit is dBm/10 (e.g. 400 for 40 dBm). */
uint8_t axcW; /**< RW-Locked. AxC W parameter. */
uint8_t axcB; /**< RW-Locked. AxC B parameter. */
ORI_Object_s * oriLink; /**< RW-Locked. ORI Link on which the AxC is mapped. */
uint32_t earfcn; /**< RW-Locked. Downlink EARFCN. */
ORI_Object_s * antPort; /**< RW-Locked. Reference Antenna port for this signal. */
ORI_Boolean_e enableIQDLComp; /**< RW-Locked. IQ data compression enablement. */
uint32_t sigmaIQ; /**< RW-Locked. Sigma IQ value for IQ data compression. */
ORI_Boolean_e AWS_enableCompRateChange; /**< RW-Locked. AW2S Vendor specific: Enable IQ data compression sample rate change. */
ORI_Boolean_e AWS_enableCompBitChange; /**< RW-Locked. AW2S Vendor specific: Enable IQ data compression bit width change. */
int16_t AWS_measuredPwr; /**< RO. AW2S Vendor specific: Measured Tx power for this path, unit is dBm/10 (e.g. 400 for 40 dBm). */
uint16_t AWS_axcIncr; /**< RW-Locked. AW2S Vendor specific: AxC increment for each sample, 0 means auto (= packed, no interleaving). */
ORI_Boolean_e AWS_enPeakCancel; /**< RW-Locked. AW2S Vendor specific: Peak-Cancellation CFR enablement. */
} ORI_ObjectParams_TxSigPathEUtraFDD_s;
/**
* @struct ORI_ObjectParams_TxSigPathEUtraTDD_s
* @brief Structure containing the parameters of a TxSigPath EUTRATDD object.
*/
typedef struct
{
uint16_t chanBW; /**< RW-Locked. Channel bandwith in MHz/10 (14 / 30 / 50 / 100 / 150 / 200). */
uint8_t tddULDLConfig; /**< RW-Locked. TDD UL/DL config. */
uint8_t tddSpecialSFConfig; /**< RW-Locked. TDD SSF config. */
ORI_tddCPLength_e tddCPLengthDL; /**< RW-Locked. TDD Cyclic prefix length. */
uint16_t dlCalREMax; /**< RO. Max possible buffer in RE for DL timing calibration in Tc/16.*/
uint32_t t2a; /**< RO. RE time delay. */
uint16_t dlCalRE; /**< RW-Locked. Time delay to enable DL timing calibration in Tc/16. */
int16_t maxTxPwr; /**< RW. Max tx power for this path, unit is dBm/10 (e.g. 400 for 40 dBm). */
uint8_t axcW; /**< RW-Locked. AxC W parameter. */
uint8_t axcB; /**< RW-Locked. AxC B parameter. */
ORI_Object_s * oriLink; /**< RW-Locked. ORI Link on which the AxC is mapped. */
uint32_t earfcn; /**< RW-Locked. Downlink EARFCN. */
ORI_Object_s * antPort; /**< RW-Locked. Reference Antenna port for this signal. */
ORI_Boolean_e enableIQDLComp; /**< RW-Locked. IQ data compression enablement. */
uint32_t sigmaIQ; /**< RW-Locked. Sigma IQ value for IQ data compression. */
ORI_Boolean_e AWS_enableCompRateChange; /**< RW-Locked. AW2S Vendor specific: Enable IQ data compression sample rate change. */
ORI_Boolean_e AWS_enableCompBitChange; /**< RW-Locked. AW2S Vendor specific: Enable IQ data compression bit width change. */
int16_t AWS_measuredPwr; /**< RO. AW2S Vendor specific: Measured Tx power for this path, unit is dBm/10 (e.g. 400 for 40 dBm). */
uint16_t AWS_axcIncr; /**< RW-Locked. AW2S Vendor specific: AxC increment for each sample, 0 means auto (= packed, no interleaving). */
ORI_Boolean_e AWS_enPeakCancel; /**< RW-Locked. AW2S Vendor specific: Peak-Cancellation CFR enablement. */
} ORI_ObjectParams_TxSigPathEUtraTDD_s;
/**
* @struct ORI_ObjectParams_TxSigPathGSM_s
* @brief Structure containing the parameters of a TxSigPath GSM object.
*/
typedef struct
{
uint16_t dlCalREMax; /**< RO. Max possible buffer in RE for DL timing calibration in Tc/16.*/
ORI_freqBand_e freqBandInd; /**< GSM frequency band indicator. */
uint32_t t2a; /**< RO. RE time delay. */
uint16_t dlCalRE; /**< RW-Locked. Time delay to enable DL timing calibration in Tc/16. */
int16_t maxTxPwr; /**< RW. Max tx power for this path, unit is dBm/10 (e.g. 400 for 40 dBm). */
uint8_t axcW; /**< RW-Locked. AxC W parameter. */
uint8_t axcB; /**< RW-Locked. AxC B parameter. */
ORI_Object_s * oriLink; /**< RW-Locked. ORI Link on which the AxC is mapped. */
ORI_Object_s * antPort; /**< RW-Locked. Reference Antenna port for this signal. */
int16_t AWS_measuredPwr; /**< RO. AW2S Vendor specific: Measured Tx power for this path, unit is dBm/10 (e.g. 400 for 40 dBm). */
uint16_t AWS_axcIncr; /**< RW-Locked. AW2S Vendor specific: AxC increment for each sample, 0 means auto (= packed, no interleaving). */
ORI_Boolean_e AWS_enPeakCancel; /**< RW-Locked. AW2S Vendor specific: Peak-Cancellation CFR enablement. */
} ORI_ObjectParams_TxSigPathGSM_s;
/**
* @struct ORI_ObjectParams_TxSigPathNRFDD_s
* @brief Structure containing the parameters of a TxSigPath NRFDD object.
*/
typedef struct
{
uint16_t chanBW; /**< RW-Locked. Channel bandwith in MHz/10. */
uint16_t dlCalREMax; /**< RO. Max possible buffer in RE for DL timing calibration in Tc/16.*/
uint32_t t2a; /**< RO. RE time delay. */
uint16_t dlCalRE; /**< RW-Locked. Time delay to enable DL timing calibration in Tc/16. */
int16_t maxTxPwr; /**< RW. Max tx power for this path, unit is dBm/10 (e.g. 400 for 40 dBm). */
uint8_t axcW; /**< RW-Locked. AxC W parameter. */
uint8_t axcB; /**< RW-Locked. AxC B parameter. */
ORI_Object_s * oriLink; /**< RW-Locked. ORI Link on which the AxC is mapped. */
ORI_Object_s * antPort; /**< RW-Locked. Reference Antenna port for this signal. */
ORI_Boolean_e AWS_enableCompRateChange; /**< RW-Locked. AW2S Vendor specific: Enable IQ data compression sample rate change. */
int16_t AWS_measuredPwr; /**< RO. AW2S Vendor specific: Measured Tx power for this path, unit is dBm/10 (e.g. 400 for 40 dBm). */
uint16_t AWS_axcIncr; /**< RW-Locked. AW2S Vendor specific: AxC increment for each sample, 0 means auto (= packed, no interleaving). */
ORI_Boolean_e AWS_enPeakCancel; /**< RW-Locked. AW2S Vendor specific: Peak-Cancellation CFR enablement. */
uint32_t AWS_arfcn; /**< RW-Locked. ARFCN of the NR carrier. */
} ORI_ObjectParams_TxSigPathNRFDD_s;
/**
* @struct ORI_ObjectParams_TxSigPathNRTDD_s
* @brief Structure containing the parameters of a TxSigPath NRTDD object.
*/
typedef struct
{
uint16_t chanBW; /**< RW-Locked. Channel bandwith in MHz/10. */
uint16_t dlCalREMax; /**< RO. Max possible buffer in RE for DL timing calibration in Tc/16.*/
uint32_t t2a; /**< RO. RE time delay. */
uint16_t dlCalRE; /**< RW-Locked. Time delay to enable DL timing calibration in Tc/16. */
int16_t maxTxPwr; /**< RW. Max tx power for this path, unit is dBm/10 (e.g. 400 for 40 dBm). */
uint8_t axcW; /**< RW-Locked. AxC W parameter. */
uint8_t axcB; /**< RW-Locked. AxC B parameter. */
ORI_Object_s * oriLink; /**< RW-Locked. ORI Link on which the AxC is mapped. */
ORI_Object_s * antPort; /**< RW-Locked. Reference Antenna port for this signal. */
ORI_Boolean_e AWS_enableCompRateChange; /**< RW-Locked. AW2S Vendor specific: Enable IQ data compression sample rate change. */
int16_t AWS_measuredPwr; /**< RO. AW2S Vendor specific: Measured Tx power for this path, unit is dBm/10 (e.g. 400 for 40 dBm). */
uint16_t AWS_axcIncr; /**< RW-Locked. AW2S Vendor specific: AxC increment for each sample, 0 means auto (= packed, no interleaving). */
ORI_Boolean_e AWS_enPeakCancel; /**< RW-Locked. AW2S Vendor specific: Peak-Cancellation CFR enablement. */
uint32_t AWS_arfcn; /**< RW-Locked. ARFCN of the NR carrier. */
} ORI_ObjectParams_TxSigPathNRTDD_s;
/**
* @struct ORI_ObjectParams_RxSigPathUtra_s
* @brief Structure containing the parameters of a RxSigPath UTRAFDD object.
*/
typedef struct
{
uint16_t ulCalREMax; /**< RO. Max possible buffer in RE for UL timing calibration in Tc/2.*/
uint32_t ta3; /**< RO. RE time delay. */
uint16_t ulCalRE; /**< RW-Locked. Time delay to enable UL timing calibration in Tc/2. */
uint8_t axcW; /**< RW-Locked. AxC W parameter. */
uint8_t axcB; /**< RW-Locked. AxC B parameter. */
uint8_t rtwpGroup; /**< RW-Locked. Location of the RTWP measurements for this AxC. */
ORI_Object_s * oriLink; /**< RW-Locked. ORI Link on which the AxC is mapped. */
ORI_Object_s * antPort; /**< RW-Locked. Reference Antenna port for this signal. */
uint32_t uarfcn; /**< RW-Locked. Uplink UARFCN. */
int16_t ulFeedAdj; /**< RW. Uplink feeder adjustment in dB/10 (e.g. 200 for 20 dB). */
uint8_t ulTgtRMSLvl; /**< RW-Locked. Uplink target RMS level. */
uint8_t ulAGCSetlgTime; /**< RW-Locked. Uplink AGC settling time. */
int16_t AWS_measuredPwr; /**< RO. AW2S Vendor specific: Measured Rx power for this path, unit is dBm/10 (e.g. -650 for -65 dBm). */
uint16_t AWS_axcIncr; /**< RW-Locked. AW2S Vendor specific: AxC increment for each sample, 0 means auto (= packed, no interleaving). */
} ORI_ObjectParams_RxSigPathUtra_s;
/**
* @struct ORI_ObjectParams_RxSigPathEUtraFDD_s
* @brief Structure containing the parameters of a RxSigPath EUTRAFDD object.
*
*/
typedef struct
{
uint16_t chanBW; /**< RW-Locked. Channel bandwith in MHz/10 (14 / 30 / 50 / 100 / 150 / 200). */
uint16_t ulCalREMax; /**< RO. Max possible buffer in RE for UL timing calibration in Tc/2.*/
uint32_t ta3; /**< RO. RE time delay. */
uint16_t ulCalRE; /**< RW-Locked. Time delay to enable UL timing calibration in Tc/2. */
uint8_t axcW; /**< RW-Locked. AxC W parameter. */
uint8_t axcB; /**< RW-Locked. AxC B parameter. */
ORI_Object_s * oriLink; /**< RW-Locked. ORI Link on which the AxC is mapped. */
ORI_Object_s * antPort; /**< RW-Locked. Reference Antenna port for this signal. */
uint32_t earfcn; /**< RW-Locked. Uplink EARFCN. */
ORI_Boolean_e enableIQULComp; /**< RW-Locked. IQ data compression enablement. */
uint32_t sigmaIQ; /**< RW-Locked. Sigma IQ value for IQ data compression. */
ORI_Boolean_e AWS_enableCompRateChange; /**< RW-Locked. AW2S Vendor specific: Enable IQ data compression sample rate change. */
ORI_Boolean_e AWS_enableCompBitChange; /**< RW-Locked. AW2S Vendor specific: Enable IQ data compression bit width change. */
int16_t AWS_measuredPwr; /**< RO. AW2S Vendor specific: Measured Rx power for this path, unit is dBm/10 (e.g. -650 for -65 dBm). */
uint16_t AWS_axcIncr; /**< RW-Locked. AW2S Vendor specific: AxC increment for each sample, 0 means auto (= packed, no interleaving). */
} ORI_ObjectParams_RxSigPathEUtraFDD_s;
/**
* @struct ORI_ObjectParams_RxSigPathEUtraTDD_s
* @brief Structure containing the parameters of a RxSigPath EUTRATDD object.
*
*/
typedef struct
{
uint16_t chanBW; /**< RW-Locked. Channel bandwith in MHz/10 (14 / 30 / 50 / 100 / 150 / 200). */
uint8_t tddULDLConfig; /**< RW-Locked. TDD UL/DL config. */
uint8_t tddSpecialSFConfig; /**< RW-Locked. TDD SSF config. */
ORI_tddCPLength_e tddCPLengthUL; /**< RW-Locked. TDD Cyclic prefix length. */
uint16_t ulCalREMax; /**< RO. Max possible buffer in RE for UL timing calibration in Tc/2.*/
uint32_t ta3; /**< RO. RE time delay. */
uint16_t ulCalRE; /**< RW-Locked. Time delay to enable UL timing calibration in Tc/2. */
uint8_t axcW; /**< RW-Locked. AxC W parameter. */
uint8_t axcB; /**< RW-Locked. AxC B parameter. */
ORI_Object_s * oriLink; /**< RW-Locked. ORI Link on which the AxC is mapped. */
ORI_Object_s * antPort; /**< RW-Locked. Reference Antenna port for this signal. */
uint32_t earfcn; /**< RW-Locked. Uplink EARFCN. */
ORI_Boolean_e enableIQULComp; /**< RW-Locked. IQ data compression enablement. */
uint32_t sigmaIQ; /**< RW-Locked. Sigma IQ value for IQ data compression. */
ORI_Boolean_e AWS_enableCompRateChange; /**< RW-Locked. AW2S Vendor specific: Enable IQ data compression sample rate change. */
ORI_Boolean_e AWS_enableCompBitChange; /**< RW-Locked. AW2S Vendor specific: Enable IQ data compression bit width change. */
int16_t AWS_measuredPwr; /**< RO. AW2S Vendor specific: Measured Rx power for this path, unit is dBm/10 (e.g. -650 for -65 dBm). */
uint16_t AWS_axcIncr; /**< RW-Locked. AW2S Vendor specific: AxC increment for each sample, 0 means auto (= packed, no interleaving). */
} ORI_ObjectParams_RxSigPathEUtraTDD_s;
/**
* @struct ORI_ObjectParams_RxSigPathGSM_s
* @brief Structure containing the parameters of a RxSigPath GSM object.
*/
typedef struct
{
uint16_t ulCalREMax; /**< RO. Max possible buffer in RE for UL timing calibration in Tc/2.*/
ORI_freqBand_e freqBandInd; /**< GSM frequency band indicator. */
uint32_t ta3; /**< RO. RE time delay. */
uint16_t ulCalRE; /**< RW-Locked. Time delay to enable UL timing calibration in Tc/2. */
uint8_t axcW; /**< RW-Locked. AxC W parameter. */
uint8_t axcB; /**< RW-Locked. AxC B parameter. */
ORI_Object_s * oriLink; /**< RW-Locked. ORI Link on which the AxC is mapped. */
ORI_Object_s * antPort; /**< RW-Locked. Reference Antenna port for this signal. */
int16_t ulFeedAdj; /**< RW. Uplink feeder adjustment in dB/10 (e.g. 200 for 20 dB). */
ORI_Object_s * TxSigPath; /**< RW-Locked. Associated TxSigPath for frequency hopping information. */
int16_t AWS_measuredPwr; /**< RO. AW2S Vendor specific: Measured Rx power for this path, unit is dBm/10 (e.g. -650 for -65 dBm). */
uint16_t AWS_axcIncr; /**< RW-Locked. AW2S Vendor specific: AxC increment for each sample, 0 means auto (= packed, no interleaving). */
} ORI_ObjectParams_RxSigPathGSM_s;
/**
* @struct ORI_ObjectParams_RxSigPathNRFDD_s
* @brief Structure containing the parameters of a RxSigPath NRFDD object.
*
*/
typedef struct
{
uint16_t chanBW; /**< RW-Locked. Channel bandwith in MHz/10. */
uint16_t ulCalREMax; /**< RO. Max possible buffer in RE for UL timing calibration in Tc/2.*/
uint32_t ta3; /**< RO. RE time delay. */
uint16_t ulCalRE; /**< RW-Locked. Time delay to enable UL timing calibration in Tc/2. */
uint8_t axcW; /**< RW-Locked. AxC W parameter. */
uint8_t axcB; /**< RW-Locked. AxC B parameter. */
ORI_Object_s * oriLink; /**< RW-Locked. ORI Link on which the AxC is mapped. */
ORI_Object_s * antPort; /**< RW-Locked. Reference Antenna port for this signal. */
ORI_Boolean_e AWS_enableCompRateChange; /**< RW-Locked. AW2S Vendor specific: Enable IQ data compression sample rate change. */
int16_t AWS_measuredPwr; /**< RO. AW2S Vendor specific: Measured Rx power for this path, unit is dBm/10 (e.g. -650 for -65 dBm). */
uint16_t AWS_axcIncr; /**< RW-Locked. AW2S Vendor specific: AxC increment for each sample, 0 means auto (= packed, no interleaving). */
uint32_t AWS_arfcn; /**< RW-Locked. ARFCN of the NR carrier. */
} ORI_ObjectParams_RxSigPathNRFDD_s;
/**
* @struct ORI_ObjectParams_RxSigPathNRTDD_s
* @brief Structure containing the parameters of a RxSigPath NRTDD object.
*
*/
typedef struct
{
uint16_t chanBW; /**< RW-Locked. Channel bandwith in MHz/10. */
uint16_t ulCalREMax; /**< RO. Max possible buffer in RE for UL timing calibration in Tc/2.*/
uint32_t ta3; /**< RO. RE time delay. */
uint16_t ulCalRE; /**< RW-Locked. Time delay to enable UL timing calibration in Tc/2. */
uint8_t axcW; /**< RW-Locked. AxC W parameter. */
uint8_t axcB; /**< RW-Locked. AxC B parameter. */
ORI_Object_s * oriLink; /**< RW-Locked. ORI Link on which the AxC is mapped. */
ORI_Object_s * antPort; /**< RW-Locked. Reference Antenna port for this signal. */
ORI_Boolean_e AWS_enableCompRateChange; /**< RW-Locked. AW2S Vendor specific: Enable IQ data compression sample rate change. */
int16_t AWS_measuredPwr; /**< RO. AW2S Vendor specific: Measured Rx power for this path, unit is dBm/10 (e.g. -650 for -65 dBm). */
uint16_t AWS_axcIncr; /**< RW-Locked. AW2S Vendor specific: AxC increment for each sample, 0 means auto (= packed, no interleaving). */
uint32_t AWS_arfcn; /**< RW-Locked. ARFCN of the NR carrier. */
} ORI_ObjectParams_RxSigPathNRTDD_s;
/**
* @struct ORI_ObjectParams_ORILink_s
* @brief Structure containing the parameters of an ORI Link object.
*/
typedef struct
{
char portLabel[81]; /**< RO. Physical ORI link port label. */
ORI_portRoleCapability_e portRoleCapability; /**< RO. Port role capability. */
ORI_portRole_e portRole; /**< RW-Locked. Port role. */
int16_t bitRateSupport; /**< RO. Supported line bit rate. */
uint8_t bitRateRequested; /**< RW-Locked. Requested line bit rate. 0 for auto-negotitation. */
uint8_t bitRateOperational; /**< RO. Current line bit rate. 0 for link down. */
uint64_t localPortID; /**< RO. Local end port ID. */
uint64_t remotePortID; /**< RO. Remote end port ID. */
uint32_t toffset; /**< RO. CPRI time delay component. */
ORI_linkType_e oriLinkType; /**< RW-Locked. ORI Link type. */
uint8_t AWS_localMAC[6]; /**< R0. AW2S Vendor specific: Local MAC address of the ORI link. */
uint8_t AWS_remoteMAC[6]; /**< RW. AW2S Vendor specific: Remote MAC address of the ORI link. */
uint32_t AWS_t14; /**< RO. AW2S Vendor specific: CPRI time delay component. */
uint32_t AWS_sfpTxPow; /**< RO. AW2S Vendor specific: SFP Tx power. */
uint32_t AWS_sfpRxPow; /**< RO. AW2S Vendor specific: SFP Rx power. */
uint8_t AWS_remoteIP[4]; /**< RW. AW2S Vendor specific: IP of REC for ECPRI Ethernet frame */
uint8_t AWS_localIP[4]; /**< RW. AW2S Vendor specific: IP of RE for ECPRI Ethernet frame */
uint16_t AWS_remoteUdpPort; /**< RW. AW2S Vendor specific: UDP port of REC for ECPRI Ethernet frame */
uint16_t AWS_localUdpPort; /**< RO. AW2S Vendor specific: UDP port of RE for ECPRI Ethernet frame */
} ORI_ObjectParams_ORILink_s;
/**
* @struct ORI_ObjectParams_ExternalEventPort_s
* @brief Structure containing the parameters of an External Event Port object.
*/
typedef struct
{
char portLabel[81]; /**< RO. External event port label. */
} ORI_ObjectParams_ExternalEventPort_s;
/**
* @struct ORI_ObjectParams_AISGPort_s
* @brief Structure containing the parameters of an AISG Port object.
*/
typedef struct
{
char portLabel[81]; /**< RO. AISG port label. */
ORI_Boolean_e busPowerEnable; /**< RW-Locked. Bus power enablement. */
} ORI_ObjectParams_AISGPort_s;
/**
* @struct ORI_ObjectParams_AISGALD_s
* @brief Structure containing the parameters of an AISG ALD object.
*/
typedef struct
{
uint8_t deviceType; /**< RW-Locked. Device type of the ALD. */
uint8_t UID[20]; /**< RW-Locked. Unique ID array. */
uint8_t releaseID; /**< RO. 3GPP protocol release. */
uint8_t aisgVersion; /**< RO. AISG protocol version. */
uint8_t deviceTypeVersion[3]; /**< RO. Device type substance version. */
uint16_t frameLength; /**< RO. Maximum frame length for AISG Layer 7 message payload. */
uint8_t hdlcAdress; /**< RO. Actual HLDC address. */
} ORI_ObjectParams_AISGALD_s;
/**
* @struct ORI_ObjectParams_Log_s
* @brief Structure containing the parameters of a Log object.
*/
typedef struct
{
char logTypeID[41]; /**< RO. Log type identifier. */
char description[81]; /**< RO. Log description. */
ORI_logCategory_e logCategory; /**< RO. Log category. */
uint32_t maxREfileSize; /**< RO. Max RE file size in kB. */
uint32_t maxRECfileSize; /**< RW. Max REC file size in kB. */
ORI_Boolean_e enableNotification; /**< RW. Enable REC notification on file transfer availability. */
ORI_Boolean_e fileAvailable; /**< RO. File is available. */
ORI_overflowBehaviour_e overflowBehaviour; /**< RW. Behaviour on overflow. */
ORI_Boolean_e recordingEnabled; /**< RW. Recording enablement. */
uint64_t logPeriod; /**< RW. Log expiration period in seconds. */
ORI_timerType_e timerType; /**< RW. Log expiration behaviour. */
} ORI_ObjectParams_Log_s;
/**
* @struct ORI_ObjectParams_DLRoutedIQData_s
* @brief Structure containing the parameters of a DL Routed IQ Data object.
*/
typedef struct
{
uint16_t IQsubBlockSize; /**< RW-Locked. Number of bits contained in the IQ data sub-block. */
ORI_Object_s * MasterPortOriLink; /**< RW-Locked. Reference to the master port ORI Link. */
uint8_t MasterPortIQblkW; /**< RW-Locked. Sub-block start W parameter for master port. */
uint16_t MasterPortIQblkB; /**< RW-Locked. Sub-block start B parameter for master port. */
ORI_Object_s * SlavePortOriLink; /**< RW-Locked. Reference to the slave port ORI Link. */
uint8_t SlavePortIQW; /**< RW-Locked. Sub-block start W parameter for slave port. */
uint16_t SlavePortIQB; /**< RW-Locked. Sub-block start B parameter for slave port. */
uint16_t TBDelayDL; /**< RO. Internal RE delay from slave port to master port. */
} ORI_ObjectParams_DLRoutedIQData_s;
/**
* @struct ORI_ObjectParams_ULRoutedIQData_s
* @brief Structure containing the parameters of a UL Routed IQ Data object.
*/
typedef struct
{
uint16_t IQsubBlockSize; /**< RW-Locked. Number of bits contained in the IQ data sub-block. */
ORI_Object_s * MasterPortOriLink; /**< RW-Locked. Reference to the master port ORI Link. */
uint8_t MasterPortIQblkW; /**< RW-Locked. Sub-block start W parameter for master port. */
uint16_t MasterPortIQblkB; /**< RW-Locked. Sub-block start B parameter for master port. */
ORI_Object_s * SlavePortOriLink; /**< RW-Locked. Reference to the slave port ORI Link. */
uint8_t SlavePortIQW; /**< RW-Locked. Sub-block start W parameter for slave port. */
uint16_t SlavePortIQB; /**< RW-Locked. Sub-block start B parameter for slave port. */
uint16_t TBDelayUL; /**< RO. Internal RE delay from master port to slave port. */
} ORI_ObjectParams_ULRoutedIQData_s;
/**
* @struct ORI_ObjectParams_DLRoutedCWBlock_s
* @brief Structure containing the parameters of a DL Routed CW Block object.
*/
typedef struct
{
uint8_t CtrlBlockSize; /**< RW-Locked. Number of consecutive sub-channels in the CW block. */
uint8_t SubChannelStart; /**< RW-Locked. Lowest sub-channel of the CW block. */
uint8_t Ydepth; /**< RW-Locked. Number of consecutive Y locations of the sub-channels in the CW block. */
uint8_t SlavePortYoffset; /**< RW-Locked. Lowest Y location of the sub-channel(s) at the slave port. */
uint8_t MasterPortYoffset; /**< RW-Locked. Lowest Y location of the sub-channel(s) at the master port. */
ORI_Object_s * SlavePortOriLink; /**< RW-Locked. Reference to the slave port ORI Link. */
ORI_Object_s * MasterPortOriLink; /**< RW-Locked. Reference to the master port ORI Link. */
} ORI_ObjectParams_DLRoutedCWBlock_s;
/**
* @struct ORI_ObjectParams_ULRoutedCWBlock_s
* @brief Structure containing the parameters of a UL Routed CW Block object.
*/
typedef struct
{
uint8_t CtrlBlockSize; /**< RW-Locked. Number of consecutive sub-channels in the CW block. */
uint8_t SubChannelStart; /**< RW-Locked. Lowest sub-channel of the CW block. */
uint8_t Ydepth; /**< RW-Locked. Number of consecutive Y locations of the sub-channels in the CW block. */
uint8_t SlavePortYoffset; /**< RW-Locked. Lowest Y location of the sub-channel(s) at the slave port. */
uint8_t MasterPortYoffset; /**< RW-Locked. Lowest Y location of the sub-channel(s) at the master port. */
ORI_Object_s * SlavePortOriLink; /**< RW-Locked. Reference to the slave port ORI Link. */
ORI_Object_s * MasterPortOriLink; /**< RW-Locked. Reference to the master port ORI Link. */
} ORI_ObjectParams_ULRoutedCWBlock_s;
/**
* @union ORI_ObjectParams_u
* @brief Union of all the parameters of the ORI objects. Access each field based on the object type.
*/
typedef union
{
ORI_ObjectParams_RE_s RE; /**< Parameters for ::ORI_ObjectType_RE. */
ORI_ObjectParams_AntennaPort_s AntPort; /**< Parameters for ::ORI_ObjectType_AntennaPort. */
ORI_ObjectParams_TxSigPathUtra_s TxUtra; /**< Parameters for ::ORI_ObjectType_TxUtra. */
ORI_ObjectParams_TxSigPathEUtraFDD_s TxEUtraFDD; /**< Parameters for ::ORI_ObjectType_TxEUtraFDD. */
ORI_ObjectParams_TxSigPathEUtraTDD_s TxEUtraTDD; /**< Parameters for ::ORI_ObjectType_TxEUtraTDD. */
ORI_ObjectParams_TxSigPathGSM_s TxGSM; /**< Parameters for ::ORI_ObjectType_TxGSM. */
ORI_ObjectParams_TxSigPathNRFDD_s TxNRFDD; /**< Parameters for ::ORI_ObjectType_TxNRFDD. */
ORI_ObjectParams_TxSigPathNRTDD_s TxNRTDD; /**< Parameters for ::ORI_ObjectType_TxNRTDD. */
ORI_ObjectParams_RxSigPathUtra_s RxUtra; /**< Parameters for ::ORI_ObjectType_RxUtra. */
ORI_ObjectParams_RxSigPathEUtraFDD_s RxEUtraFDD; /**< Parameters for ::ORI_ObjectType_RxEUtraFDD. */
ORI_ObjectParams_RxSigPathEUtraTDD_s RxEUtraTDD; /**< Parameters for ::ORI_ObjectType_RxEUtraTDD. */
ORI_ObjectParams_RxSigPathGSM_s RxGSM; /**< Parameters for ::ORI_ObjectType_RxGSM. */
ORI_ObjectParams_RxSigPathNRFDD_s RxNRFDD; /**< Parameters for ::ORI_ObjectType_RxNRFDD. */
ORI_ObjectParams_RxSigPathNRTDD_s RxNRTDD; /**< Parameters for ::ORI_ObjectType_RxNRTDD. */
ORI_ObjectParams_ORILink_s ORILink; /**< Parameters for ::ORI_ObjectType_ORILink. */
ORI_ObjectParams_ExternalEventPort_s ExternalEventPort; /**< Parameters for ::ORI_ObjectType_ExternalEventPort. */
ORI_ObjectParams_AISGPort_s AISGPort; /**< Parameters for ::ORI_ObjectType_AISGPort. */
ORI_ObjectParams_AISGALD_s AISGALD; /**< Parameters for ::ORI_ObjectType_AISGALD. */
ORI_ObjectParams_Log_s Log; /**< Parameters for ::ORI_ObjectType_Log. */
ORI_ObjectParams_DLRoutedIQData_s DLRoutedIQData; /**< Parameters for ::ORI_ObjectType_DLRoutedIQData. */
ORI_ObjectParams_ULRoutedIQData_s ULRoutedIQData; /**< Parameters for ::ORI_ObjectType_ULRoutedIQData. */
ORI_ObjectParams_DLRoutedCWBlock_s DLRoutedCWBlock; /**< Parameters for ::ORI_ObjectType_DLRoutedCWBlock. */
ORI_ObjectParams_ULRoutedCWBlock_s ULRoutedCWBlock; /**< Parameters for ::ORI_ObjectType_ULRoutedCWBlock. */
} ORI_ObjectParams_u;
/*-----------------------------------------------------------------------------------------
* OBJECT FAULTS
*-----------------------------------------------------------------------------------------*/
#define FAULT_MAX_AFFECTED_OBJ 20
/**
* @struct ORI_Fault_s
* @brief Structure detailing a fault, its state, severity, description and affected objects.
*/
typedef struct
{
ORI_FaultState_e state; /**< Current state of the fault. */
ORI_FaultSeverity_e severity; /**< Severity of the fault. */
char timestamp[256]; /**< Time stamp string of the fault (RE time reference). */
char desc[256]; /**< Short text description associated to the fault. */
uint32_t numAffectedObjects; /**< Number of additional objects affected by the fault. */
ORI_Object_s * affectedObjects[FAULT_MAX_AFFECTED_OBJ]; /**< List of additional objects affected by the fault. */
} ORI_Fault_s;
/**
* @struct ORI_ObjectFaults_RE_s
* @brief Structure containing the faults of a RE object.
*/
typedef struct
{
ORI_Fault_s extSuplyUndervolt; /**< Power supply under voltage. FaultType is ::ORI_FaultType_RE_ExtSupplyUnderVolt */
ORI_Fault_s overTemp; /**< Over temperature. FaultType is ::ORI_FaultType_RE_OverTemp */
ORI_Fault_s digInOverdrive; /**< Input digital signal level overdrive. FaultType is ::ORI_FaultType_RE_DigInOverdrive */
ORI_Fault_s rfOutOverdrive; /**< RF output power overdrive. FaultType is ::ORI_FaultType_RE_RFOutOverdrive */
ORI_Fault_s txGainFail; /**< Tx gain control failure. FaultType is ::ORI_FaultType_RE_TXGainFail */
ORI_Fault_s rxGainFail; /**< Rx gain control failure. FaultType is ::ORI_FaultType_RE_RXGainFail */
} ORI_ObjectFaults_RE_s;
/**
* @struct ORI_ObjectFaults_AntennaPort_s
* @brief Structure containing the faults of an Antenna Port object.
*/
typedef struct
{
ORI_Fault_s vswrOutOfRange; /**< VSWR at the antenna port exceeded limit. FaultType is ::ORI_FaultType_AntennaPort_VSWROutOfRange */
ORI_Fault_s nonAisgTmaMalfct; /**< Non AISG TMA malfunction. FaultType is ::ORI_FaultType_AntennaPort_NonAisgTmaMalfct */
} ORI_ObjectFaults_AntennaPort_s;
/**
* @struct ORI_ObjectFaults_ORILink_s
* @brief Structure containing the faults of an ORI Link object.
*/
typedef struct
{
ORI_Fault_s linkFailure; /**< LOS, LOF, SDI or RAI received on the ORI Link. FaultType is ::ORI_FaultType_ORILink_LinkFail */
ORI_Fault_s portFailure; /**< Local ORI slave port failure. FaultType is ::ORI_FaultType_ORILink_PortFail */
ORI_Fault_s syncFailure; /**< Synchronization lost on slave port. FaultType is ::ORI_FaultType_ORILink_SyncFail */
} ORI_ObjectFaults_ORILink_s;
/**
* @struct ORI_ObjectFaults_AISGPort_s
* @brief Structure containing the faults of an AISG Port object.
*/
typedef struct
{
ORI_Fault_s aisgMalfct; /**< Hardware malfunction on AISG port. FaultType is ::ORI_FaultType_AISGPort_AisgMalfct */
} ORI_ObjectFaults_AISGPort_s;
/**
* @union ORI_ObjectFaults_u
* @brief Union of all the faults of the ORI objects. Access each field based on the object type.
*/
typedef union
{
ORI_ObjectFaults_RE_s RE; /**< Faults for ::ORI_ObjectType_RE. */
ORI_ObjectFaults_AntennaPort_s AntPort; /**< Faults for ::ORI_ObjectType_AntennaPort. */
ORI_ObjectFaults_ORILink_s ORILink; /**< Faults for ::ORI_ObjectType_ORILink. */
ORI_ObjectFaults_AISGPort_s AISGPort; /**< Faults for ::ORI_ObjectType_AISGPort. */
} ORI_ObjectFaults_u;
/*-----------------------------------------------------------------------------------------
* INDICATION DATA STRUCTURES
*-----------------------------------------------------------------------------------------*/
/**
* @struct ORI_Ind_TransferFileCmplt_s
* @brief ORI file transfer complete indication structure.
*
* This structure is passed on a file transfer complete indication and gives the result
* of a file transfer completion.
*/
typedef struct
{
ORI_Result_e result; /**< Result of the file transfer. */
char failInfo[256]; /**< String indicating the file transfer failure reason, if applicable. */
} ORI_Ind_TransferFileCmplt_s;
/**
* @struct ORI_Ind_ObjectStateChange_s
* @brief ORI object state change indication structure.
*
* This structure is passed on an object state change indication and gives the affected object and the type of the
* state that changed. <br>
* The new state value is updated in the model and can be accessed directly in the object.
*/
typedef struct
{
ORI_Object_s * object; /**< Object for which the state changed. */
ORI_StateType_e stateType; /**< Type of the state that changed. */
} ORI_Ind_ObjectStateChange_s;
/**
* @struct ORI_Ind_FaultChange_s
* @brief ORI fault change indication structure.
*
* This structure is passed on a fault change indication (activated or cleared) and gives the primary affected object, the fault type and the actual fault structure. <br>
* The new fault structure is updated in the model and can be accessed directly in the object based on the fault type.
*/
typedef struct
{
ORI_Object_s * object; /**< Primary object affected by the fault. */
ORI_FaultType_e faultType; /**< Type of the fault that changed. */
ORI_Fault_s * fault; /**< Reference to the object's fault structure for the given fault type. */
} ORI_Ind_FaultChange_s;
/**
* @struct ORI_Ind_FileAvailable_s
* @brief ORI File Available indication structure.
*
* This structure is passed on a file available indication and gives the object concerned by the file available.
*/
typedef struct
{
ORI_Object_s * object; /**< Object concerned by file availability. Valid objects : Log:X. */
} ORI_Ind_FileAvailable_s;
/**
* @struct ORI_Ind_UploadFileCmpl_s
* @brief ORI Upload File Complete indication structure.
*
* This structure is passed on an upload file complete indication and gives the result and the object concerned by the file upload.
*/
typedef struct
{
ORI_Result_e result; /**< Result of the file transfer. */
ORI_Object_s * object; /**< Object concerned by the file upload. Valid objects : RE:0 or Log:X. */
char failInfo[256]; /**< String indicating the file transfer failure reason, if applicable. */
} ORI_Ind_UploadFileCmpl_s;
/**
* @struct ORI_Ind_DeviceScanCmpl_s
* @brief ORI AISG Device Scan Complete indication structure.
*
* This structure is passed on an aisg device scan complete indication and gives the result and the object concerned by the device scan.
*/
typedef struct
{
ORI_Object_s * object; /**< Object concerned by the device scan. Valid objects : aisgPort:X. */
int numAlds; /**< integer indicating the number of ALDs found by the device scan. */
} ORI_Ind_DeviceScanCmpl_s;
/**
* @struct ORI_Ind_L7respGetAlarm_s
* @brief ORI AISG Transmit L7 message indication with command Get Alarm Status.
*
* This structure is passed on an aisg ALD receive indication and gives layer 7 message Get Alarm Status fields.
*/
typedef struct
{
unsigned char returnCode[16]; // returnCode, until 16 values supported
}ORI_Ind_L7respGetAlarm_s;
/**
* @struct ORI_Ind_L7respGetInfo_s
* @brief ORI AISG Transmit L7 message indication with command Get Info.
*
* This structure is passed on an aisg ALD receive indication and gives layer 7 message Get Info fields.
*/
typedef struct
{
int PNlen; // Product Number's length
char PN[64]; // Product Number
int SNlen; // Serial Number's length
char SN[64]; // Serial Number
int HWverLen; // Hardware Version's length
char HWver[64]; // Hardware Version
int SWverLen; // Software Version's length
char SWver[64]; // Software Version
}ORI_Ind_L7respGetInfo_s;
typedef struct
{
unsigned char data[80];
}ORI_Ind_L7respReadUserData_s;
/**
* @struct ORI_Ind_L7respGetAlarm_s
* @brief ORI AISG Transmit L7 message indication with command Get Alarm Status.
*
* This structure is passed on an aisg ALD receive indication and gives layer 7 message Get Alarm Status fields.
*/
typedef struct
{
unsigned char alarmCode[16]; // alarmCode, until 16 values supported
}ORI_Ind_L7respSelfTest_s;
/**
* @struct ORI_Ind_L7respGetTilt_s
* @brief ORI AISG Transmit L7 message indication with command Get Tilt.
*
* This structure is passed on an aisg ALD receive indication and gives layer 7 message Get Tilt fields.
*/
typedef struct
{
int Tilt; // tilt value
}ORI_Ind_L7respGetTilt_s;
/**
* @struct ORI_Ind_L7respGetDeviceData_s
* @brief ORI AISG Transmit L7 message indication with command Get Device Data.
*
* This structure is passed on an aisg ALD receive indication and gives layer 7 message Get Device Data fields.
*/
typedef struct
{
unsigned char fieldNbr;
char antModelNbr[32]; // Antenna Model Number
char antSerialNbr[32]; // Antenna Serial Number
unsigned short antFreqBand; // Antenna Frequency Band
unsigned short beamwidthBand[4]; // Beamwidth for each Band
unsigned char gainBand[4]; // Gain for each Band
short maxTilt; // Maximum Supported Tilt
short minTilt; // Minimum Supported Tilt
char installationDate[32]; // Installation Date
char installerID[32]; // Installer ID
char basestationID[32]; // BaseStation ID
char sectorID[32]; // sector ID
unsigned short antBearing; // Antenna Bearing
short mechanicalTilt; // Mechanical Tilt
}ORI_Ind_L7respGetDeviceData_s;
/**
* @struct ORI_Ind_L7indAlarmIndication_s
* @brief ORI AISG Transmit L7 message indication with alarm indication.
*
* This structure is passed on an aisg ALD receive indication and gives layer 7 message Alarm Indication Data fields.
*/
typedef struct
{
unsigned char returnCode;
unsigned char stateFlag;
}ret_alarm_s;
typedef struct
{
ret_alarm_s alarm[32];
}ORI_Ind_L7indAlarmIndication_s;
/**
* @struct ORI_Ind_L7respAntGetNbr_s
* @brief ORI AISG Transmit L7 message indication with command Antenna Get Number Of Antennas.
*
* This structure is passed on an aisg ALD receive indication and gives layer 7 message Antenna Get Number Of Antennas Data fields.
*/
typedef struct
{
unsigned char nbr;
}ORI_Ind_L7respAntGetNbr_s;
/**
* @struct ORI_Ind_respGetParam_s
* @brief ORI AISG getParam message indication .
*
* This structure is passed on a getParam command to obtain the ALD's deviceType.
*/
typedef struct
{
unsigned char deviceType;
}ORI_Ind_respGetParam_s;
/**
* @struct ORI_Ind_respCheckPortExist_s
* @brief ORI AISG check AISG Port existence .
*
* This structure is passed on a check aisg port exist command to know if there is an aisg port in this product or not.
*/
typedef struct
{
ORI_Boolean_e exist;
}ORI_Ind_respCheckPortExist_s;
/**
* @struct ORI_Ind_L7msg_s
* @brief ORI AISG Transmit L7 message indication struct.
*
* This struct is passed on an aisg ALD receive indication and gives a layer 7 message.
*/
typedef struct
{
char raw[256];
ORI_AisgLayer7Command_e command;
ORI_AisgReturnCode_e returnCode;
unsigned char multiAntennaNbr;
ORI_Ind_L7respGetAlarm_s getAlarm;
ORI_Ind_L7respGetInfo_s getInfo;
ORI_Ind_L7respReadUserData_s readUserData;
ORI_Ind_L7respSelfTest_s selfTest;
ORI_Ind_L7respGetTilt_s getTilt;
ORI_Ind_L7respGetDeviceData_s getDeviceData;
ORI_Ind_L7indAlarmIndication_s alarmIndication;
ORI_Ind_L7respAntGetNbr_s getNbrAntennas;
ORI_Ind_respGetParam_s getParam;
ORI_Ind_respCheckPortExist_s checkAisgPortExist;
}ORI_Ind_L7msg_s;
/**
* @struct ORI_Ind_AisgALDRx_s
* @brief ORI AISG ALD receive indication structure.
*
* This structure is passed on an aisg ALD receive indication and gives a layer 7 message and the object concerned.
*/
typedef struct
{
ORI_Object_s * object; /**< Object concerned by the device scan. Valid objects : aisgPort:X/aisgALD:Y. */
ORI_Ind_L7msg_s L7message; /**< string of a layer7 message sent by the ALD. */
} ORI_Ind_AisgALDRx_s;
/**
* @union ORI_IndicationValue_u
* @brief ORI indication value union.
*
* This union can be accessed based on the indication type. Its members give details on the received indication.
*/
typedef union
{
ORI_Ind_TransferFileCmplt_s transferFileCmplt; /**< File transfer complete structure, access it on an ::ORI_IndicationType_FileTransferComplete. */
ORI_Ind_ObjectStateChange_s objectStateChange; /**< Object state change structure, access it on an ::ORI_IndicationType_ObjectStateChange. */
ORI_Ind_FaultChange_s faultChange; /**< Fault change structure, access it on an ::ORI_IndicationType_FaultChange. */
ORI_Ind_FileAvailable_s fileAvailable; /**< File available structure, access it on an ::ORI_IndicationType_FileAvailable. */
ORI_Ind_UploadFileCmpl_s uploadFileCmpl; /**< Upload file complete structure, access it on an ::ORI_IndicationType_UploadFileCmpl. */
ORI_Ind_DeviceScanCmpl_s deviceScanCmpl; /**< AISG device scan complete structure, access it on an ::ORI_IndicationType_AisgScanDeviceCompl. */
ORI_Ind_AisgALDRx_s aisgALDRx; /**< AISG ALD receive structure, access it on an ::ORI_IndicationType_AisgAldRx. */
} ORI_IndicationValue_u;
/**
* @typedef ORI_IndCallback_f
* @brief ORI indication callback function prototype.
*
* This is the prototype of the user callback function that is called when an indication has been received on the ORI Link. <br>
* The indication callback passes in its arguments the @p type describing the type of the indication, such as file transfer completion, RE fault, etc. <br>
* The @p value parameter shall be used to obtain more details on the indication.
*
* @param userData The user data that is from the ORI context structure.
* @param type An ::ORI_IndicationType_e.
* @param value An ::ORI_IndicationValue_u.
* @return Void.
*
* @warning The indication callback is called in a separate thread.
* @warning The state of the model is guaranteed to stay constant during the indication callback.
* @warning ORI functions (except for ORI MODEL functions) must not be called during the indication callback.
*/
typedef void (ORI_IndCallback_f) (void * userData, ORI_IndicationType_e type, ORI_IndicationValue_u value);
/*-----------------------------------------------------------------------------------------
* RE VERSION STRUCTURE
*-----------------------------------------------------------------------------------------*/
/**
* @struct ORI_REVersion_s
* @brief ORI RE version query information structure.
*
* This structure contains the RE vendor specific version information obtained during a ORI_VersionQuery() procedure.
*/
typedef struct
{
char vendorID[64]; /**< Vendor ID as signaled in DHCP code 201, normally 3 characters */
char productID[64]; /**< */
char productRev[64]; /**< */
char serialNumber[64]; /**< */
char hardwareVer[64]; /**< */
char activeSwUpgradePkgVer[64]; /**< */
char activeSwImgVer[64]; /**< */
char passiveSwUpgradePkgVer[64]; /**< */
char passiveSwImgVer[64]; /**< */
} ORI_REVersion_s;
/*-----------------------------------------------------------------------------------------
* ORI OBJECT STRUCTURE
*-----------------------------------------------------------------------------------------*/
/**
* @struct ORI_Object_s
* @brief Structure of an ORI Object.
*
* ORI Objects are internally created by the ORI library and represent an object present in the RE. <br>
* Those objects represent and define the resource model of the RE, of which an image is present in the REC (via this library). <br>
* Such objects can be accessed (for reading and navigating) by the user but must not be modified, created or deleted directly
* as they are an 'image' of the RE objects. <br>
* To update the parameters of the object, see ORI_ObjectParamReport(). <br>
* To modify the parameters of the object, see ORI_ObjectParamModify(). <br>
* To create an object, see ORI_ObjectCreation(). <br>
* To delete an object, see ORI_ObjectDeletion(). <br>
* To update the state of the object, see ORI_ObjectStateReport(). <br>
* To modify the state of the object, see ORI_ObjectStateModify(). <br>
* To update the faults of the object, see ORI_ObjectFaultReport(). <br>
* To find an object in the model, see ORI_FindObject(). <br>
* To retrieve a specific fault of an object, see ORI_ObjectFault().
*/
struct ORI_Object_s
{
ORI_ObjectTypeRef_s typeRef; /**< Type reference of the object. */
uint8_t instanceNumber; /**< Instance number of the object. */
ORI_Object_s * prev; /**< Previous sibling. */
ORI_Object_s * next; /**< Next sibling. */
ORI_Object_s * children; /**< First child reference. */
ORI_ObjectParams_u params; /**< Parameters union of this object. */
ORI_AST_e ast; /**< Administrative state. */
ORI_FST_e fst; /**< Functional state. */
ORI_ObjectFaults_u faults; /**< Faults union of this object. */
};
/*-----------------------------------------------------------------------------------------
* CONTEXT
*-----------------------------------------------------------------------------------------*/
/**
* @struct ORI_Version_s
* @brief ORI version structure.
*
* This structure contains ORI library version information.
*/
typedef struct
{
uint8_t major; /**< Version major number. */
uint8_t minor; /**< Version minor number. */
} ORI_Version_s;
/**
* @struct ORI_s
* @brief ORI context data structure.
*
* This structure represents the context data for the ORI C library and shall be passed in ORI function calls. <br>
* The @p opaque field is a library specific field and must not be modified by the user application. <br>
* Other fields may be set (and changed) at run-time by the user application.
*
* @warning The indication callback is called in a separate thread.
* @warning The state of the model is guaranteed to stay constant during the indication callback.
* @warning ORI functions (except for ORI MODEL functions) must not be called during the indication callback.
*/
typedef struct
{
void * opaque; /**< Set by the library, DO NOT MODIFY. */
ORI_IndCallback_f * indicationCallback; /**< Pointer to user set ORI indication callback, this function is called when an indication is received on the ORI Link. If @c NULL (default), indications are discarded. */
void * userData; /**< User data for passing into the ORI indication callback */
} ORI_s;
/*-----------------------------------------------------------------------------------------
* ORI CREATION / DELETION / (DIS)CONNECTION
*-----------------------------------------------------------------------------------------*/
/**
* @brief Retrieve ORI library version structure.
*
* This functions returns the ORI library version structure (constant).
*
* @return Version structure.
*/
ORI_Version_s ORI_LibVersion(void);
/**
* @brief Create an ORI context.
*
* This function creates and initializes an ORI context structure that is to be used when calling
* other ORI library functions. This function also starts threads for data receiving and callbacks handling.
*
* @return The ORI context if creation successful, else @c NULL.
*
* @warning The returned ORI context must be free'd with a call to ORI_Free() when the user application is done with ORI.
*/
ORI_s * ORI_Create(void);
/**