HI Jim,
Since I am unable to load the files, pasting the content below
"hci-mod.asn"
HciMod
DEFINITIONS IMPLICIT TAGS ::=
BEGIN
HCIPACKET ::= CLASS {
&packetType OCTET STRING (SIZE(2)),
&headerCode OCTET STRING UNIQUE,
&packetLength OCTET STRING OPTIONAL,
&Params OPTIONAL
} WITH SYNTAX {
PACKET TYPE &packetType
CODE &headerCode
[PACKET LENGTH &packetLength]
[PARAMETERS &Params]
}
onecmd HCIPACKET ::= {
PACKET TYPE '01'H
CODE '0101'H
PACKET LENGTH '04'H
PARAMETERS SEQUENCE {a INTEGER, b INTEGER}
}
twocmd HCIPACKET ::= {
PACKET TYPE '01'H
CODE '0102'H
PACKET LENGTH '02'H
PARAMETERS SEQUENCE {c INTEGER, d INTEGER}
}
oneevt HCIPACKET ::= {
PACKET TYPE '02'H
CODE '01'H
}
CmdEvtSet HCIPACKET ::= {
onecmd | twocmd | oneevt
}
CmdEvtPDU ::= SEQUENCE {
packetTy HCIPACKET.&packetType ({CmdEvtSet}),
listCmdsEvts SEQUENCE {
code HCIPACKET.&headerCode ({CmdEvtSet}{@packetTy}),
len HCIPACKET.&packetLength ({CmdEvtSet}{@packetTy,
@listCmdsEvts.code}),
parameters HCIPACKET.&Params ({CmdEvtSet}{@packetTy,
@listCmdsEvts.code})
}
}
END
-------------
"hci-mod.c"
#include "hci-mod.h"
A2C_COMPONENT_RELATIONS_TABLE
CmdEvtPDU__listCmdsEvts_code_Relationship_table[] = {
{"&packetType", 0, OFFSET_OF(CmdEvtPDU, packetTy)}
};
A2C_COMPONENT_RELATIONS CmdEvtPDU__listCmdsEvts_code_Relationship = {
&CmdEvtSet, "&headerCode", 1,
CmdEvtPDU__listCmdsEvts_code_Relationship_table
};
A2C_ERROR CmdEvtPDU__listCmdsEvts_code_decode_der(A2C_OPEN_TYPE * pos,
PC_A2C_DESCRIPTOR pdesc, int flags, A2C_CONTEXT * pcxt,
A2C_TAG const * ptag, A2C_STREAM_MEMORY * pstm)
{
return
A2C_RELATION_decode_der(&CmdEvtPDU__listCmdsEvts_code_Relationship,
pos, pdesc, flags, pcxt, ptag, pstm);
}
A2C_ERROR CmdEvtPDU__listCmdsEvts_code_decode_ber(A2C_OPEN_TYPE * pos,
PC_A2C_DESCRIPTOR pdesc, int flags, A2C_CONTEXT * pcxt,
A2C_TAG const * ptag, A2C_STREAM_MEMORY * pstm)
{
return
A2C_RELATION_decode_ber(&CmdEvtPDU__listCmdsEvts_code_Relationship,
pos, pdesc, flags, pcxt, ptag, pstm);
}
A2C_COMPONENT_RELATIONS_TABLE
CmdEvtPDU__listCmdsEvts_len_Relationship_table[] = {
{"&headerCode", 0, OFFSET_OF(CmdEvtPDU, listCmdsEvts.code)}
{"&packetType", 0, OFFSET_OF(CmdEvtPDU, packetTy)}
};
A2C_COMPONENT_RELATIONS CmdEvtPDU__listCmdsEvts_len_Relationship = {
&CmdEvtSet, "&packetLength", 2,
CmdEvtPDU__listCmdsEvts_len_Relationship_table
};
A2C_ERROR CmdEvtPDU__listCmdsEvts_len_decode_der(A2C_OPEN_TYPE * pos,
PC_A2C_DESCRIPTOR pdesc, int flags, A2C_CONTEXT * pcxt,
A2C_TAG const * ptag, A2C_STREAM_MEMORY * pstm)
{
return
A2C_RELATION_decode_der(&CmdEvtPDU__listCmdsEvts_len_Relationship,
pos, pdesc, flags, pcxt, ptag, pstm);
}
A2C_ERROR CmdEvtPDU__listCmdsEvts_len_decode_ber(A2C_OPEN_TYPE * pos,
PC_A2C_DESCRIPTOR pdesc, int flags, A2C_CONTEXT * pcxt,
A2C_TAG const * ptag, A2C_STREAM_MEMORY * pstm)
{
return
A2C_RELATION_decode_ber(&CmdEvtPDU__listCmdsEvts_len_Relationship,
pos, pdesc, flags, pcxt, ptag, pstm);
}
A2C_COMPONENT_RELATIONS_TABLE
CmdEvtPDU__listCmdsEvts_parameters_Relationship_table[] = {
{"&headerCode", 0, OFFSET_OF(CmdEvtPDU, listCmdsEvts.code)}
{"&packetType", 0, OFFSET_OF(CmdEvtPDU, packetTy)}
};
A2C_COMPONENT_RELATIONS
CmdEvtPDU__listCmdsEvts_parameters_Relationship = {
&CmdEvtSet, "&Params", 2,
CmdEvtPDU__listCmdsEvts_parameters_Relationship_table
};
A2C_ERROR CmdEvtPDU__listCmdsEvts_parameters_decode_der(A2C_OPEN_TYPE
* pos, PC_A2C_DESCRIPTOR pdesc, int flags, A2C_CONTEXT * pcxt,
A2C_TAG const * ptag, A2C_STREAM_MEMORY * pstm)
{
return
A2C_RELATION_decode_der(&CmdEvtPDU__listCmdsEvts_parameters_Relationship,
pos, pdesc, flags, pcxt, ptag, pstm);
}
A2C_ERROR CmdEvtPDU__listCmdsEvts_parameters_decode_ber(A2C_OPEN_TYPE
* pos, PC_A2C_DESCRIPTOR pdesc, int flags, A2C_CONTEXT * pcxt,
A2C_TAG const * ptag, A2C_STREAM_MEMORY * pstm)
{
return
A2C_RELATION_decode_ber(&CmdEvtPDU__listCmdsEvts_parameters_Relationship,
pos, pdesc, flags, pcxt, ptag, pstm);
}
const A2C_ITEM HCIPACKET_description_table[] = {
{"&packetType", OFFSET_OF(HCIPACKET, packetType),
{A2C_TAG_CLASS_UNIVERSAL, 4}, &A2C_OCTET_STRING_descriptor, 0,
A2C_FLAGS_TAG_IMPLICIT, 0},
{"&headerCode", OFFSET_OF(HCIPACKET, headerCode),
{A2C_TAG_CLASS_UNIVERSAL, 4}, &A2C_OCTET_STRING_descriptor, 0,
A2C_FLAGS_TAG_IMPLICIT | A2C_FLAGS_UNIQUE, 0},
{"&packetLength", OFFSET_OF(HCIPACKET, packetLength),
{A2C_TAG_CLASS_UNIVERSAL, 4}, &A2C_OCTET_STRING_descriptor, 0,
A2C_FLAGS_TAG_IMPLICIT | A2C_FLAGS_OPTIONAL, 0},
{"&Params", OFFSET_OF(HCIPACKET, Params),
{A2C_TAG_CLASS_UNIVERSAL, 0}, &A2C_OPEN_TYPE_descriptor, 0,
A2C_FLAGS_OPTIONAL, 0},
};
const A2C_ITEM_HEADER HCIPACKET_description = {
sizeof(HCIPACKET), 0, countof(HCIPACKET_description_table),
HCIPACKET_description_table
};
const A2C_DESCRIPTOR HCIPACKET_descriptor = {
A2C_zero, A2C_nop,
(A2C_decoder_f) A2C_CLASS_decode_der, (A2C_encoder_f)
A2C_CLASS_encode_der,
(A2C_decoder_f) A2C_CLASS_decode_ber, (A2C_encoder_f)
A2C_CLASS_encode_ber,
(A2C_compare_f) A2C_CLASS_compare,
(A2C_copy_f) A2C_CLASS_copy,
(A2C_print_f) A2C_CLASS_print,
A2C_CLASS_validate,
&HCIPACKET_description
};
const HCIPACKET onecmd = { &onecmd__packetType, &onecmd__headerCode,
&onecmd__packetLength, &HCIPACKET_descripto };
const HCIPACKET twocmd = { &twocmd__packetType, &twocmd__headerCode,
&twocmd__packetLength, &HCIPACKET_descripto };
const HCIPACKET oneevt = { &oneevt__packetType, &oneevt__headerCode,
NULL, NULL };
const PCVOID CmdEvtSet_table[] = {
&onecmd, &twocmd, &oneevt,
};
const A2C_OBJECT_SET CmdEvtSet = {
3, &HCIPACKET_description,
CmdEvtSet_table
};
const A2C_DESCRIPTOR CmdEvtPDU__listCmdsEvts_code_descriptor = {
A2C_zero, A2C_OCTET_STRING_release,
(A2C_decoder_f) CmdEvtPDU__listCmdsEvts_code_decode_der,
(A2C_encoder_f) A2C_OCTET_STRING_encode_der,
(A2C_decoder_f) CmdEvtPDU__listCmdsEvts_code_decode_ber,
(A2C_encoder_f) A2C_OCTET_STRING_encode_ber,
(A2C_compare_f) A2C_OCTET_STRING_compare,
(A2C_copy_f) A2C_OCTET_STRING_copy,
(A2C_print_f) A2C_OCTET_STRING_print,
A2C_OCTET_STRING_validate,
&A2C_OCTET_STRING_description
};
const A2C_DESCRIPTOR CmdEvtPDU__listCmdsEvts_len_descriptor = {
A2C_zero, A2C_OCTET_STRING_release,
(A2C_decoder_f) CmdEvtPDU__listCmdsEvts_len_decode_der,
(A2C_encoder_f) A2C_OCTET_STRING_encode_der,
(A2C_decoder_f) CmdEvtPDU__listCmdsEvts_len_decode_ber,
(A2C_encoder_f) A2C_OCTET_STRING_encode_ber,
(A2C_compare_f) A2C_OCTET_STRING_compare,
(A2C_copy_f) A2C_OCTET_STRING_copy,
(A2C_print_f) A2C_OCTET_STRING_print,
A2C_OCTET_STRING_validate,
&A2C_OCTET_STRING_description
};
const A2C_DESCRIPTOR CmdEvtPDU__listCmdsEvts_parameters_descriptor = {
A2C_zero, A2C_OPEN_TYPE_release,
(A2C_decoder_f) CmdEvtPDU__listCmdsEvts_parameters_decode_der,
(A2C_encoder_f) A2C_OPEN_TYPE_encode_der,
(A2C_decoder_f) CmdEvtPDU__listCmdsEvts_parameters_decode_ber,
(A2C_encoder_f) A2C_OPEN_TYPE_encode_ber,
(A2C_compare_f) A2C_OPEN_TYPE_compare,
(A2C_copy_f) A2C_OPEN_TYPE_copy,
(A2C_print_f) A2C_OPEN_TYPE_print,
A2C_OPEN_TYPE_validate,
&A2C_OPEN_TYPE_description
};
const A2C_ITEM CmdEvtPDU__listCmdsEvts_description_table[] = {
{"code", REL_OFFSET_OF(CmdEvtPDU, listCmdsEvts.code,
listCmdsEvts), {A2C_TAG_CLASS_UNIVERSAL, 0},
&CmdEvtPDU__listCmdsEvts_code_descriptor, 0, 0, 0},
{"len", REL_OFFSET_OF(CmdEvtPDU, listCmdsEvts.len, listCmdsEvts),
{A2C_TAG_CLASS_UNIVERSAL, 0}, &CmdEvtPDU__listCmdsEvts_len_descriptor,
0, 0, 0},
{"parameters", REL_OFFSET_OF(CmdEvtPDU, listCmdsEvts.parameters,
listCmdsEvts), {A2C_TAG_CLASS_UNIVERSAL, 0},
&CmdEvtPDU__listCmdsEvts_parameters_descriptor, 0, 0, 0},
};
const A2C_ITEM_HEADER CmdEvtPDU__listCmdsEvts_description = {
0, 0, countof(CmdEvtPDU__listCmdsEvts_description_table),
CmdEvtPDU__listCmdsEvts_description_table
};
const A2C_DESCRIPTOR CmdEvtPDU__listCmdsEvts_descriptor = {
A2C_SEQUENCE_init, A2C_SEQUENCE_release,
(A2C_decoder_f) A2C_SEQUENCE_decode_der, (A2C_encoder_f)
A2C_SEQUENCE_encode_der,
(A2C_decoder_f) A2C_SEQUENCE_decode_ber, (A2C_encoder_f)
A2C_SEQUENCE_encode_ber,
(A2C_compare_f) A2C_SEQUENCE_compare,
(A2C_copy_f) A2C_SEQUENCE_copy,
(A2C_print_f) A2C_SEQUENCE_print,
A2C_SEQUENCE_validate,
&CmdEvtPDU__listCmdsEvts_description
};
const A2C_ITEM CmdEvtPDU_description_table[] = {
{"packetTy", OFFSET_OF(CmdEvtPDU, packetTy),
{A2C_TAG_CLASS_UNIVERSAL, 0}, &A2C_OCTET_STRING_descriptor, 0, 0, 0},
{"listCmdsEvts", OFFSET_OF(CmdEvtPDU, listCmdsEvts),
{A2C_TAG_CLASS_UNIVERSAL, 16}, &CmdEvtPDU__listCmdsEvts_descriptor, 0,
A2C_FLAGS_TAG_IMPLICIT, 0},
};
const A2C_ITEM_HEADER CmdEvtPDU_description = {
sizeof(CmdEvtPDU), 0, countof(CmdEvtPDU_description_table),
CmdEvtPDU_description_table
};
const A2C_DESCRIPTOR CmdEvtPDU_descriptor = {
A2C_SEQUENCE_init, A2C_SEQUENCE_release,
(A2C_decoder_f) A2C_SEQUENCE_decode_der, (A2C_encoder_f)
A2C_SEQUENCE_encode_der,
(A2C_decoder_f) A2C_SEQUENCE_decode_ber, (A2C_encoder_f)
A2C_SEQUENCE_encode_ber,
(A2C_compare_f) A2C_SEQUENCE_compare,
(A2C_copy_f) A2C_SEQUENCE_copy,
(A2C_print_f) A2C_SEQUENCE_print,
A2C_SEQUENCE_validate,
&CmdEvtPDU_description
};
static const BYTE onecmd__packetType___array[] = {0x1};
const A2C_OCTET_STRING onecmd__packetType={ 1, (PBYTE)
onecmd__packetType___array};
static const BYTE onecmd__headerCode___array[] = {0x1, 0x1};
const A2C_OCTET_STRING onecmd__headerCode={ 2, (PBYTE)
onecmd__headerCode___array};
static const BYTE onecmd__packetLength___array[] = {0x4};
const A2C_OCTET_STRING onecmd__packetLength={ 1, (PBYTE)
onecmd__packetLength___array};
static const BYTE twocmd__packetType___array[] = {0x1};
const A2C_OCTET_STRING twocmd__packetType={ 1, (PBYTE)
twocmd__packetType___array};
static const BYTE twocmd__headerCode___array[] = {0x1, 0x2};
const A2C_OCTET_STRING twocmd__headerCode={ 2, (PBYTE)
twocmd__headerCode___array};
static const BYTE twocmd__packetLength___array[] = {0x2};
const A2C_OCTET_STRING twocmd__packetLength={ 1, (PBYTE)
twocmd__packetLength___array};
static const BYTE oneevt__packetType___array[] = {0x2};
const A2C_OCTET_STRING oneevt__packetType={ 1, (PBYTE)
oneevt__packetType___array};
static const BYTE oneevt__headerCode___array[] = {0x1};
const A2C_OCTET_STRING oneevt__headerCode={ 1, (PBYTE)
oneevt__headerCode___array};
-------------------
regards,
Amey