📄 megaco_per_bin_media_gateway_control_prev3c.erl
字号:
{lists:reverse(Acc), Bytes};'dec_ModemDescriptor_mpl_components'(Num, Bytes, _, Acc) -> {Term,Remain} = 'dec_PropertyParm'(Bytes,telltype), 'dec_ModemDescriptor_mpl_components'(Num-1, Remain, telltype, [Term|Acc]).'dec_ModemDescriptor'(Bytes,_) ->{Opt,Bytes1} = ?RT_PER:getoptionals2(Bytes,1), %% attribute number 1 with type SEQUENCE OF{Term1,Bytes2} = 'dec_ModemDescriptor_mtl'(Bytes1, telltype),%% attribute number 2 with type SEQUENCE OF{Term2,Bytes3} = 'dec_ModemDescriptor_mpl'(Bytes2, telltype),%% attribute number 3 with type NonStandardData{Term3,Bytes4} = case Opt band (1 bsl 0) of_Opt1 when _Opt1 > 0 ->'dec_NonStandardData'(Bytes3,telltype);0 ->{asn1_NOVALUE,Bytes3}end,{{'ModemDescriptor',Term1,Term2,Term3},Bytes4}.'enc_RequestID'({'RequestID',Val}) ->'enc_RequestID'(Val);'enc_RequestID'(Val) ->?RT_PER:encode_integer([{'ValueRange',{0,4294967295}}],Val).'dec_RequestID'(Bytes,_) ->?RT_PER:decode_integer(Bytes,[{'ValueRange',{0,4294967295}}]).'enc_SigParameter'(Val) ->{Val1,Opt} = ?RT_PER:fixoptionals([4],1,Val),[?RT_PER:setext(false), Opt,%% attribute number 1 with type OCTET STRING?RT_PER:encode_octet_string([{'SizeConstraint',2}],?RT_PER:cindex(2,Val1,sigParameterName)),%% attribute number 2 with type Externaltypereference891megaco_per_bin_media_gateway_control_prev3cValue'enc_Value'(?RT_PER:cindex(3,Val1,value)),case ?RT_PER:cindex(4,Val1,extraInfo) ofasn1_NOVALUE -> [];Tmpval1 ->%% attribute number 3 with type CHOICE'enc_SigParameter_extraInfo'(Tmpval1)end].'enc_SigParameter_extraInfo'({'SigParameter_extraInfo',Val}) ->'enc_SigParameter_extraInfo'(Val);'enc_SigParameter_extraInfo'(Val) ->[?RT_PER:set_choice(element(1,Val),[relation,range,sublist], 3),case element(1,Val) ofrelation ->case (case element(2,Val) of {_,_}->element(2,element(2,Val));_->element(2,Val) end) of'greaterThan' -> [{bit,0},?RT_PER:encode_integer([{'ValueRange',{0,2}}], 0)];'smallerThan' -> [{bit,0},?RT_PER:encode_integer([{'ValueRange',{0,2}}], 1)];'unequalTo' -> [{bit,0},?RT_PER:encode_integer([{'ValueRange',{0,2}}], 2)];{asn1_enum,EnumV} when integer(EnumV), EnumV > 2 -> [{bit,1},?RT_PER:encode_small_number(EnumV)];EnumVal -> exit({error,{asn1, {enumerated_not_in_range, EnumVal}}})end;range ->?RT_PER:encode_boolean(element(2,Val));sublist ->?RT_PER:encode_boolean(element(2,Val))end].'dec_SigParameter_extraInfo'(Bytes,_) ->{Choice,Bytes1} = ?RT_PER:getchoice(Bytes,3, 0),{Cname,{Val,NewBytes}} = case Choice of0 -> {relation,?RT_PER:decode_enumerated(Bytes1,[{'ValueRange',{0,2}}],{{greaterThan,smallerThan,unequalTo},{}})};1 -> {range,?RT_PER:decode_boolean(Bytes1)};2 -> {sublist,?RT_PER:decode_boolean(Bytes1)}end,{{Cname,Val},NewBytes}.'dec_SigParameter'(Bytes,_) ->{Ext,Bytes1} = ?RT_PER:getext(Bytes),{Opt,Bytes2} = ?RT_PER:getoptionals2(Bytes1,1), %% attribute number 1 with type OCTET STRING{Term1,Bytes3} = ?RT_PER:decode_octet_string(Bytes2,[{'SizeConstraint',2}]),%% attribute number 2 with type Value{Term2,Bytes4} = 'dec_Value'(Bytes3,telltype),%% attribute number 3 with type CHOICE{Term3,Bytes5} = case Opt band (1 bsl 0) of_Opt1 when _Opt1 > 0 ->'dec_SigParameter_extraInfo'(Bytes4, telltype);0 ->{asn1_NOVALUE,Bytes4}end,{Extensions,Bytes6} = ?RT_PER:getextension(Ext,Bytes5),Bytes7= ?RT_PER:skipextensions(Bytes6,1,Extensions),{{'SigParameter',Term1,Term2,Term3},Bytes7}.'enc_NotifyCompletion'({'NotifyCompletion',Val}) ->'enc_NotifyCompletion'(Val);'enc_NotifyCompletion'(Val) ->?RT_PER:encode_bit_string([],Val,[{onTimeOut,0},{onInterruptByEvent,1},{onInterruptByNewSignalDescr,2},{otherReason,3},{onIteration,4}]).'dec_NotifyCompletion'(Bytes,_) ->?RT_PER:decode_bit_string(Bytes,[],[{onTimeOut,0},{onInterruptByEvent,1},{onInterruptByNewSignalDescr,2},{otherReason,3},{onIteration,4}]).'enc_SignalName'({'SignalName',Val}) ->'enc_SignalName'(Val);'enc_SignalName'(Val) ->?RT_PER:encode_octet_string([{'SizeConstraint',4}],Val).'dec_SignalName'(Bytes,_) ->?RT_PER:decode_octet_string(Bytes,[{'SizeConstraint',4}]).'enc_SignalDirection'({'SignalDirection',Val}) ->'enc_SignalDirection'(Val);'enc_SignalDirection'(Val) ->case (case Val of {_,_}->element(2,Val);_->Val end) of'internal' -> [{bit,0},?RT_PER:encode_integer([{'ValueRange',{0,2}}], 0)];'external' -> [{bit,0},?RT_PER:encode_integer([{'ValueRange',{0,2}}], 1)];'both' -> [{bit,0},?RT_PER:encode_integer([{'ValueRange',{0,2}}], 2)];{asn1_enum,EnumV} when integer(EnumV), EnumV > 2 -> [{bit,1},?RT_PER:encode_small_number(EnumV)];EnumVal -> exit({error,{asn1, {enumerated_not_in_range, EnumVal}}})end.'dec_SignalDirection'(Bytes,_) ->?RT_PER:decode_enumerated(Bytes,[{'ValueRange',{0,2}}],{{internal,external,both},{}}).'enc_SignalType'({'SignalType',Val}) ->'enc_SignalType'(Val);'enc_SignalType'(Val) ->case (case Val of {_,_}->element(2,Val);_->Val end) of'brief' -> [{bit,0},?RT_PER:encode_integer([{'ValueRange',{0,2}}], 0)];'onOff' -> [{bit,0},?RT_PER:encode_integer([{'ValueRange',{0,2}}], 1)];'timeOut' -> [{bit,0},?RT_PER:encode_integer([{'ValueRange',{0,2}}], 2)];{asn1_enum,EnumV} when integer(EnumV), EnumV > 2 -> [{bit,1},?RT_PER:encode_small_number(EnumV)];EnumVal -> exit({error,{asn1, {enumerated_not_in_range, EnumVal}}})end.'dec_SignalType'(Bytes,_) ->?RT_PER:decode_enumerated(Bytes,[{'ValueRange',{0,2}}],{{brief,onOff,timeOut},{}}).'enc_Signal'(Val) ->{Val1,Opt} = ?RT_PER:fixoptionals([3,4,5,6,7],5,Val),Extensions = ?RT_PER:fixextensions({ext,8,3}, Val1),[?RT_PER:setext(Extensions =/= []), Opt,%% attribute number 1 with type OCTET STRING?RT_PER:encode_octet_string([{'SizeConstraint',4}],?RT_PER:cindex(2,Val1,signalName)),case ?RT_PER:cindex(3,Val1,streamID) ofasn1_NOVALUE -> [];Tmpval1 ->%% attribute number 2 with type INTEGER?RT_PER:encode_integer([{'ValueRange',{0,65535}}],Tmpval1)end,case ?RT_PER:cindex(4,Val1,sigType) ofasn1_NOVALUE -> [];Tmpval2 ->%% attribute number 3 with type ENUMERATEDcase (case Tmpval2 of {_,_}->element(2,Tmpval2);_->Tmpval2 end) of'brief' -> [{bit,0},?RT_PER:encode_integer([{'ValueRange',{0,2}}], 0)];'onOff' -> [{bit,0},?RT_PER:encode_integer([{'ValueRange',{0,2}}], 1)];'timeOut' -> [{bit,0},?RT_PER:encode_integer([{'ValueRange',{0,2}}], 2)];{asn1_enum,EnumV} when integer(EnumV), EnumV > 2 -> [{bit,1},?RT_PER:encode_small_number(EnumV)];EnumVal -> exit({error,{asn1, {enumerated_not_in_range, EnumVal}}})endend,case ?RT_PER:cindex(5,Val1,duration) ofasn1_NOVALUE -> [];Tmpval3 ->%% attribute number 4 with type INTEGER?RT_PER:encode_integer([{'ValueRange',{0,65535}}],Tmpval3)end,case ?RT_PER:cindex(6,Val1,notifyCompletion) ofasn1_NOVALUE -> [];Tmpval4 ->%% attribute number 5 with type BIT STRING?RT_PER:encode_bit_string([],Tmpval4,[{onTimeOut,0},{onInterruptByEvent,1},{onInterruptByNewSignalDescr,2},{otherReason,3},{onIteration,4}])end,case ?RT_PER:cindex(7,Val1,keepActive) ofasn1_NOVALUE -> [];Tmpval5 ->%% attribute number 6 with type BOOLEAN?RT_PER:encode_boolean(Tmpval5)end,%% attribute number 7 with type SEQUENCE OF'enc_Signal_sigParList'(?RT_PER:cindex(8,Val1,sigParList)),Extensions,case ?RT_PER:cindex(9,Val1,direction) ofasn1_NOVALUE -> [];Tmpval6 ->%% attribute number 8 with type ENUMERATED?RT_PER:encode_open_type(dummy,?RT_PER:complete(case (case Tmpval6 of {_,_}->element(2,Tmpval6);_->Tmpval6 end) of'internal' -> [{bit,0},?RT_PER:encode_integer([{'ValueRange',{0,2}}], 0)];'external' -> [{bit,0},?RT_PER:encode_integer([{'ValueRange',{0,2}}], 1)];'both' -> [{bit,0},?RT_PER:encode_integer([{'ValueRange',{0,2}}], 2)];{asn1_enum,EnumV} when integer(EnumV), EnumV > 2 -> [{bit,1},?RT_PER:encode_small_number(EnumV)];EnumVal -> exit({error,{asn1, {enumerated_not_in_range, EnumVal}}})end))end,case ?RT_PER:cindex(10,Val1,requestID) ofasn1_NOVALUE -> [];Tmpval7 ->%% attribute number 9 with type INTEGER?RT_PER:encode_open_type(dummy,?RT_PER:complete(?RT_PER:encode_integer([{'ValueRange',{0,4294967295}}],Tmpval7)))end,case ?RT_PER:cindex(11,Val1,intersigDelay) ofasn1_NOVALUE -> [];Tmpval8 ->%% attribute number 10 with type INTEGER?RT_PER:encode_open_type(dummy,?RT_PER:complete(?RT_PER:encode_integer([{'ValueRange',{0,65535}}],Tmpval8)))end].'enc_Signal_sigParList'({'Signal_sigParList',Val}) ->'enc_Signal_sigParList'(Val);'enc_Signal_sigParList'(Val) ->[ ?RT_PER:encode_length(undefined,length(Val)), 'enc_Signal_sigParList_components'(Val, [])].'enc_Signal_sigParList_components'([], Acc) -> lists:reverse(Acc);'enc_Signal_sigParList_components'([H|T], Acc) ->'enc_Signal_sigParList_components'(T, ['enc_SigParameter'(H) | Acc]).'dec_Signal_sigParList'(Bytes,_) ->{Num,Bytes1} = ?RT_PER:decode_length(Bytes,undefined),'dec_Signal_sigParList_components'(Num, Bytes1, telltype, []).'dec_Signal_sigParList_components'(0, Bytes, _, Acc) -> {lists:reverse(Acc), Bytes};'dec_Signal_sigParList_components'(Num, Bytes, _, Acc) -> {Term,Remain} = 'dec_SigParameter'(Bytes,telltype), 'dec_Signal_sigParList_components'(Num-1, Remain, telltype, [Term|Acc]).'dec_Signal'(Bytes,_) ->{Ext,Bytes1} = ?RT_PER:getext(Bytes),{Opt,Bytes2} = ?RT_PER:getoptionals2(Bytes1,5), %% attribute number 1 with type OCTET STRING{Term1,Bytes3} = ?RT_PER:decode_octet_string(Bytes2,[{'SizeConstraint',4}]),%% attribute number 2 with type INTEGER{Term2,Bytes4} = case Opt band (1 bsl 4) of_Opt1 when _Opt1 > 0 ->?RT_PER:decode_integer(Bytes3,[{'ValueRange',{0,65535}}]);0 ->{asn1_NOVALUE,Bytes3}end,%% attribute number 3 with type ENUMERATED{Term3,Bytes5} = case Opt band (1 bsl 3) of_Opt2 when _Opt2 > 0 ->?RT_PER:decode_enumerated(Bytes4,[{'ValueRange',{0,2}}],{{brief,onOff,timeOut},{}});0 ->{asn1_NOVALUE,Bytes4}end,%% attribute number 4 with type INTEGER{Term4,Bytes6} = case Opt band (1 bsl 2) of_Opt3 when _Opt3 > 0 ->?RT_PER:decode_integer(Bytes5,[{'ValueRange',{0,65535}}]);0 ->{asn1_NOVALUE,Bytes5}end,%% attribute number 5 with type BIT STRING{Term5,Bytes7} = case Opt band (1 bsl 1) of_Opt4 when _Opt4 > 0 ->?RT_PER:decode_bit_string(Bytes6,[],[{onTimeOut,0},{onInterruptByEvent,1},{onInterruptByNewSignalDescr,2},{otherReason,3},{onIteration,4}]);0 ->{asn1_NOVALUE,Bytes6}end,%% attribute number 6 with type BOOLEAN{Term6,Bytes8} = case Opt band (1 bsl 0) of_Opt5 when _Opt5 > 0 ->?RT_PER:decode_boolean(Bytes7);0 ->{asn1_NOVALUE,Bytes7}end,%% attribute number 7 with type SEQUENCE OF{Term7,Bytes9} = 'dec_Signal_sigParList'(Bytes8, telltype),{Extensions,Bytes10} = ?RT_PER:getextension(Ext,Bytes9),%% attribute number 8 with type ENUMERATED{Term8,Bytes11} = case Extensions of_ when size(Extensions) >= 1,element(1,Extensions) == 1 ->begin{TmpVal8,Trem8}=?RT_PER:decode_open_type(Bytes10,[]),{TmpValx8,_}=?RT_PER:decode_enumerated(TmpVal8,[{'ValueRange',{0,2}}],{{internal,external,both},{}}), {TmpValx8,Trem8}end;_ ->{asn1_NOVALUE,Bytes10}end,%% attribute number 9 with type INTEGER{Term9,Bytes12} = case Extensions of_ when size(Extensions) >= 2,element(2,Extensions) == 1 ->begin{TmpVal9,Trem9}=?RT_PER:decode_open_type(Bytes11,[]),{TmpValx9,_}=?RT_PER:decode_integer(TmpVal9,[{'ValueRange',{0,4294967295}}]), {TmpValx9,Trem9}end;_ ->{asn1_NOVALUE,Bytes11}end,%% attribute number 10 with type INTEGER{Term10,Bytes13} = case Extensions of
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -