Commit 1e812a4b authored by Robert Schmidt's avatar Robert Schmidt

Merge remote-tracking branch 'origin/nrppa_new' into integration_2023_w02

parents 2c3e4ef4 89bddc76
...@@ -525,7 +525,6 @@ target_link_libraries(f1ap PRIVATE ngap nr_rrc) ...@@ -525,7 +525,6 @@ target_link_libraries(f1ap PRIVATE ngap nr_rrc)
############## ##############
# target asn1_lpp in openair3/LPP/MESSAGES/CMakeLists.txt used below # target asn1_lpp in openair3/LPP/MESSAGES/CMakeLists.txt used below
# Hardware dependant options # Hardware dependant options
################################### ###################################
add_list1_option(NB_ANTENNAS_RX "4" "Number of antennas in reception" "1" "2" "4") add_list1_option(NB_ANTENNAS_RX "4" "Number of antennas in reception" "1" "2" "4")
......
...@@ -2,3 +2,4 @@ add_subdirectory(LPP) ...@@ -2,3 +2,4 @@ add_subdirectory(LPP)
add_subdirectory(M3AP) add_subdirectory(M3AP)
add_subdirectory(S1AP) add_subdirectory(S1AP)
add_subdirectory(NGAP) add_subdirectory(NGAP)
add_subdirectory(NRPPA)
add_subdirectory(MESSAGES)
add_executable(test_nrppa ${OPENAIR3_DIR}/NRPPA/test_nrppa.c )
target_link_libraries(test_nrppa asn1_nrppa)
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
#set(NRPPA_VERSION 16 78 0)
#make_version(NRPPA_cc ${NRPPA_VERSION})
#add_definitions(-DNRPPA_VERSION=${NRPPA_cc})
#string(REPLACE ";" "." NRPPA_RELEASE "${NRPPA_VERSION}")
#if(NRPPA_RELEASE VERSION_EQUAL "16.78.0")
include(ASN1/38455.cmake)
#else()
# message(FATAL_ERROR "unknown NRPPA_RELEASE ${NRPPA_RELEASE}")
#endif()
add_custom_command(OUTPUT ${nrppa_source} ${nrppa_headers}
COMMAND ASN1C_PREFIX=NRPPA_ asn1c -gen-PER -no-gen-OER -fcompound-names -no-gen-example -findirect-choice -fno-include-deps -D ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/${NRPPA_GRAMMAR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${NRPPA_GRAMMAR}
COMMENT "Generating NRPPA source files from ${CMAKE_CURRENT_SOURCE_DIR}/${NRPPA_GRAMMAR}"
)
add_library(asn1_nrppa ${nrppa_source})
target_include_directories(asn1_nrppa PUBLIC "${CMAKE_CURRENT_BINARY_DIR}")
target_compile_options(asn1_nrppa PRIVATE -DASN_DISABLE_OER_SUPPORT -w)
#include <stdio.h>
#include <NRPPA_MeasurementRequest.h>
#include <NRPPA_ProtocolIE-Field.h>
#include <asn_SEQUENCE_OF.h>
/*
* This is a custom function which writes the
* encoded output into some FILE stream.
*/
static int write_out(const void *buffer, size_t size, void *app_key)
{
FILE *out_fp = app_key;
size_t wrote;
wrote = fwrite(buffer, 1, size, out_fp);
return (wrote == size) ? 0 : -1;
}
int main(int ac, char **av)
{
NRPPA_MeasurementRequest_t *NRPPA_MeasurementRequest; /* Type to encode */
asn_enc_rval_t ec; /* Encoder return value */
/* Allocate the NRPPA_MeasurementRequest_t */
NRPPA_MeasurementRequest = calloc(1, sizeof(NRPPA_MeasurementRequest_t)); /* not malloc! */
if (!NRPPA_MeasurementRequest) {
perror("calloc() failed");
exit(71); /* better, EX_OSERR */
}
NRPPA_MeasurementRequest_IEs_t xyz;
ASN_SEQUENCE_ADD(&NRPPA_MeasurementRequest->protocolIEs.list, &xyz);
/* MeasurementRequest ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{MeasurementRequest-IEs}},
...
} */
/* Protocl IE container
id-LMF-Measurement-ID ProtocolIE-ID ::= 39
id-RAN-Measurement-ID ProtocolIE-ID ::= 40
ID id-TRP-MeasurementRequestList ProtocolIE-ID ::= 41
ID id-ReportCharacteristics ProtocolIE-ID ::= 3
ID id-MeasurementPeriodicity ProtocolIE-ID ::= 4
ID id-TRPMeasurementQuantities ProtocolIE-ID ::= 52
*/
//NRPPA_MeasurementRequest->protocolIEs;
/* Context for parsing across buffer boundaries */
//NRPPA_MeasurementRequest->_asn_ctx;
/* BER encode the data if filename is given */
if (ac < 2) {
fprintf(stderr, "Specify filename for BER output\n");
} else {
const char *filename = av[1];
FILE *fp = fopen(filename, "wb"); /* for BER output */
if (!fp) {
perror(filename);
exit(71); /* better, EX_OSERR */
}
// asn_enc_rval_t der_encode(const struct asn_TYPE_descriptor_s *type_descriptor,
// const void *struct_ptr, /* Structure to be encoded */
// asn_app_consume_bytes_f *consume_bytes_cb,
// void *app_key /* Arbitrary callback argument */);
/* Encode the NRPPA_MeasurementRequest type as BER (DER) */
ec = der_encode(&asn_DEF_NRPPA_MeasurementRequest, NRPPA_MeasurementRequest, write_out, fp);
fclose(fp);
if (ec.encoded == -1) {
fprintf(stderr, "Could not encode NRPPA_MeasurementRequest (at %s)\n", ec.failed_type ? ec.failed_type->name : "unknown");
exit(65); /* better, EX_DATAERR */
} else {
fprintf(stderr, "Created %s with BER encoded NRPPA_MeasurementRequest\n", filename);
}
}
/* Also print the constructed NRPPA_MeasurementRequest XER encoded (XML) */
xer_fprint(stdout, &asn_DEF_NRPPA_MeasurementRequest, NRPPA_MeasurementRequest);
return 0; /* Encoding finished successfully */
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment