megaco_per_bin_drv_media_gateway_control_v1.erl

来自「OTP是开放电信平台的简称」· ERL 代码 · 共 1,949 行 · 第 1/5 页

ERL
1,949
字号
%% attribute number 2 with type INTEGER  %%INTEGER with effective constraint: [{'ValueRange',{0,99},100,{bits,7}}]  begin  case Tmpval3 of    Tmpval4 when Tmpval4=<99,Tmpval4>=0 ->      [10,7,Tmpval4- 0];    Tmpval4 ->      exit({error,{value_out_of_bounds,Tmpval4}})  end  endend,case element(4,Val1) ofasn1_NOVALUE -> [];Tmpval5 ->%% attribute number 3 with type INTEGER  %%INTEGER with effective constraint: [{'ValueRange',{0,99},100,{bits,7}}]  begin  case Tmpval5 of    Tmpval6 when Tmpval6=<99,Tmpval6>=0 ->      [10,7,Tmpval6- 0];    Tmpval6 ->      exit({error,{value_out_of_bounds,Tmpval6}})  end  endend,%% attribute number 4 with type IA5String?RT_PER:encode_known_multiplier_string('IA5String',no,8,{0,127,notab},element(5,Val1))].'dec_DigitMapValue'(Bytes,_) ->{Ext,Bytes1} = ?RT_PER:getext(Bytes),{Opt,Bytes2} = ?RT_PER:getoptionals2(Bytes1,3), %% attribute number 1 with type INTEGER{Term1,Bytes3} = case Opt band (1 bsl 2) of_Opt1 when _Opt1 > 0 ->  begin    {Tmpterm1,Tmpremain1}=?RT_PER:getbits(Bytes2,7),    {Tmpterm1+0,Tmpremain1}  end;0 ->{asn1_NOVALUE,Bytes2}end,%% attribute number 2 with type INTEGER{Term2,Bytes4} = case Opt band (1 bsl 1) of_Opt2 when _Opt2 > 0 ->  begin    {Tmpterm2,Tmpremain2}=?RT_PER:getbits(Bytes3,7),    {Tmpterm2+0,Tmpremain2}  end;0 ->{asn1_NOVALUE,Bytes3}end,%% attribute number 3 with type INTEGER{Term3,Bytes5} = case Opt band (1 bsl 0) of_Opt3 when _Opt3 > 0 ->  begin    {Tmpterm3,Tmpremain3}=?RT_PER:getbits(Bytes4,7),    {Tmpterm3+0,Tmpremain3}  end;0 ->{asn1_NOVALUE,Bytes4}end,%% attribute number 4 with type IA5String{Term4,Bytes6} = ?RT_PER:decode_known_multiplier_string('IA5String',no,8,{0,127,notab},Bytes5),{Extensions,Bytes7} = ?RT_PER:getextension(Ext,Bytes6),Bytes8= ?RT_PER:skipextensions(Bytes7,1,Extensions),{{'DigitMapValue',Term1,Term2,Term3,Term4},Bytes8}.'enc_DigitMapName'({'DigitMapName',Val}) ->'enc_DigitMapName'(Val);'enc_DigitMapName'(Val) ->  begin    [Tmpval1,Tmpval2] = Val,    [[10,8,Tmpval1],[10,8,Tmpval2]]  end.'dec_DigitMapName'(Bytes,_) ->  ?RT_PER:decode_octet_string(Bytes,2,false).'enc_DigitMapDescriptor'(Val) ->{Val1,Opt} = ?RT_PER:fixoptionals([2,3],2,Val),[Opt,case element(2,Val1) ofasn1_NOVALUE -> [];Tmpval1 ->%% attribute number 1 with type OCTET STRING  begin    [Tmpval2,Tmpval3] = Tmpval1,    [[10,8,Tmpval2],[10,8,Tmpval3]]  endend,case element(3,Val1) ofasn1_NOVALUE -> [];Tmpval4 ->%% attribute number 2 with type Externaltypereference857megaco_per_bin_drv_media_gateway_control_v1DigitMapValue'enc_DigitMapValue'(Tmpval4)end].'dec_DigitMapDescriptor'(Bytes,_) ->{Opt,Bytes1} = ?RT_PER:getoptionals2(Bytes,2), %% attribute number 1 with type OCTET STRING{Term1,Bytes2} = case Opt band (1 bsl 1) of_Opt1 when _Opt1 > 0 ->  ?RT_PER:decode_octet_string(Bytes1,2,false);0 ->{asn1_NOVALUE,Bytes1}end,%%  attribute number 2 with type DigitMapValue{Term2,Bytes3} = case Opt band (1 bsl 0) of_Opt2 when _Opt2 > 0 ->'dec_DigitMapValue'(Bytes2,telltype);0 ->{asn1_NOVALUE,Bytes2}end,{{'DigitMapDescriptor',Term1,Term2},Bytes3}.'enc_ModemType'({'ModemType',Val}) ->'enc_ModemType'(Val);'enc_ModemType'(Val) ->case (case Val of {_,_}->element(2,Val);_->Val end) of'v18' -> [0,?RT_PER:encode_integer([{'ValueRange',{0,8}}], 0)];'v22' -> [0,?RT_PER:encode_integer([{'ValueRange',{0,8}}], 1)];'v22bis' -> [0,?RT_PER:encode_integer([{'ValueRange',{0,8}}], 2)];'v32' -> [0,?RT_PER:encode_integer([{'ValueRange',{0,8}}], 3)];'v32bis' -> [0,?RT_PER:encode_integer([{'ValueRange',{0,8}}], 4)];'v34' -> [0,?RT_PER:encode_integer([{'ValueRange',{0,8}}], 5)];'v90' -> [0,?RT_PER:encode_integer([{'ValueRange',{0,8}}], 6)];'v91' -> [0,?RT_PER:encode_integer([{'ValueRange',{0,8}}], 7)];'synchISDN' -> [0,?RT_PER:encode_integer([{'ValueRange',{0,8}}], 8)];{asn1_enum,EnumV} when integer(EnumV), EnumV > 8 -> [1,?RT_PER:encode_small_number(EnumV)];EnumVal -> exit({error,{asn1, {enumerated_not_in_range, EnumVal}}})end.'dec_ModemType'(Bytes,_) ->?RT_PER:decode_enumerated(Bytes,[{'ValueRange',{0,8}}],{{v18,v22,v22bis,v32,v32bis,v34,v90,v91,synchISDN},{}}).'enc_ModemDescriptor'(Val) ->{Val1,Opt} = ?RT_PER:fixoptionals([4],1,Val),[Opt,%% attribute number 1 with type SEQUENCE OF'enc_ModemDescriptor_mtl'(element(2,Val1)),%% attribute number 2 with type SEQUENCE OF'enc_ModemDescriptor_mpl'(element(3,Val1)),case element(4,Val1) ofasn1_NOVALUE -> [];Tmpval1 ->%% attribute number 3 with type Externaltypereference837megaco_per_bin_drv_media_gateway_control_v1NonStandardData'enc_NonStandardData'(Tmpval1)end].'enc_ModemDescriptor_mtl'({'ModemDescriptor_mtl',Val}) ->'enc_ModemDescriptor_mtl'(Val);'enc_ModemDescriptor_mtl'(Val) ->[   ?RT_PER:encode_length(undefined,length(Val)),   'enc_ModemDescriptor_mtl_components'(Val, [])].'enc_ModemDescriptor_mtl_components'([], Acc) -> lists:reverse(Acc);'enc_ModemDescriptor_mtl_components'([H|T], Acc) ->'enc_ModemDescriptor_mtl_components'(T, [case (case H of {_,_}->element(2,H);_->H end) of'v18' -> [0,?RT_PER:encode_integer([{'ValueRange',{0,8}}], 0)];'v22' -> [0,?RT_PER:encode_integer([{'ValueRange',{0,8}}], 1)];'v22bis' -> [0,?RT_PER:encode_integer([{'ValueRange',{0,8}}], 2)];'v32' -> [0,?RT_PER:encode_integer([{'ValueRange',{0,8}}], 3)];'v32bis' -> [0,?RT_PER:encode_integer([{'ValueRange',{0,8}}], 4)];'v34' -> [0,?RT_PER:encode_integer([{'ValueRange',{0,8}}], 5)];'v90' -> [0,?RT_PER:encode_integer([{'ValueRange',{0,8}}], 6)];'v91' -> [0,?RT_PER:encode_integer([{'ValueRange',{0,8}}], 7)];'synchISDN' -> [0,?RT_PER:encode_integer([{'ValueRange',{0,8}}], 8)];{asn1_enum,EnumV} when integer(EnumV), EnumV > 8 -> [1,?RT_PER:encode_small_number(EnumV)];EnumVal -> exit({error,{asn1, {enumerated_not_in_range, EnumVal}}})end | Acc]).'dec_ModemDescriptor_mtl'(Bytes,_) ->{Num,Bytes1} = ?RT_PER:decode_length(Bytes,undefined),'dec_ModemDescriptor_mtl_components'(Num, Bytes1, telltype, []).'dec_ModemDescriptor_mtl_components'(0, Bytes, _, Acc) ->   {lists:reverse(Acc), Bytes};'dec_ModemDescriptor_mtl_components'(Num, Bytes, _, Acc) ->   {Term,Remain} = ?RT_PER:decode_enumerated(Bytes,[{'ValueRange',{0,8}}],{{v18,v22,v22bis,v32,v32bis,v34,v90,v91,synchISDN},{}}),   'dec_ModemDescriptor_mtl_components'(Num-1, Remain, telltype, [Term|Acc]).'enc_ModemDescriptor_mpl'({'ModemDescriptor_mpl',Val}) ->'enc_ModemDescriptor_mpl'(Val);'enc_ModemDescriptor_mpl'(Val) ->[   ?RT_PER:encode_length(undefined,length(Val)),   'enc_ModemDescriptor_mpl_components'(Val, [])].'enc_ModemDescriptor_mpl_components'([], Acc) -> lists:reverse(Acc);'enc_ModemDescriptor_mpl_components'([H|T], Acc) ->'enc_ModemDescriptor_mpl_components'(T, ['enc_PropertyParm'(H) | Acc]).'dec_ModemDescriptor_mpl'(Bytes,_) ->{Num,Bytes1} = ?RT_PER:decode_length(Bytes,undefined),'dec_ModemDescriptor_mpl_components'(Num, Bytes1, telltype, []).'dec_ModemDescriptor_mpl_components'(0, Bytes, _, Acc) ->   {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) ->  %%INTEGER with effective constraint: [{'ValueRange',{0,4294967295}}]  ?RT_PER:encode_integer([{'ValueRange',{0,4294967295}}],Val).'dec_RequestID'(Bytes,_) ->?RT_PER:decode_constrained_number(Bytes,{0,4294967295},4294967296).'enc_SigParameter'(Val) ->{Val1,Opt} = ?RT_PER:fixoptionals([4],1,Val),[?RT_PER:setext(false), Opt,%% attribute number 1 with type OCTET STRING  begin    [Tmpval1,Tmpval2] = element(2,Val1),    [[10,8,Tmpval1],[10,8,Tmpval2]]  end,%% attribute number 2 with type Externaltypereference819megaco_per_bin_drv_media_gateway_control_v1Value'enc_Value'(element(3,Val1)),case element(4,Val1) ofasn1_NOVALUE -> [];Tmpval3 ->%% attribute number 3 with type CHOICE'enc_SigParameter_extraInfo'(Tmpval3)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' -> [0,?RT_PER:encode_integer([{'ValueRange',{0,2}}], 0)];'smallerThan' -> [0,?RT_PER:encode_integer([{'ValueRange',{0,2}}], 1)];'unequalTo' -> [0,?RT_PER:encode_integer([{'ValueRange',{0,2}}], 2)];{asn1_enum,EnumV} when integer(EnumV), EnumV > 2 -> [1,?RT_PER:encode_small_number(EnumV)];EnumVal -> exit({error,{asn1, {enumerated_not_in_range, EnumVal}}})end;range ->case element(2,Val) of  true -> [1];  false -> [0];  _ -> exit({error,{asn1,{encode_boolean,element(2,Val)}}})end;sublist ->case element(2,Val) of  true -> [1];  false -> [0];  _ -> exit({error,{asn1,{encode_boolean,element(2,Val)}}})endend].'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,2,false),%%  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(no,Val,[{onTimeOut,0},{onInterruptByEvent,1},{onInterruptByNewSignalDescr,2},{otherReason,3}]).'dec_NotifyCompletion'(Bytes,_) ->?RT_PER:decode_bit_string(Bytes,[],[{onTimeOut,0},{onInterruptByEvent,1},{onInterruptByNewSignalDescr,2},{otherReason,3}]).'enc_SignalName'({'SignalName',Val}) ->'enc_SignalName'(Val);'enc_SignalName'(Val) ->  begin    case length(Val) of      Tmpval1 when Tmpval1 == 4 -> [2,20,Tmpval1,Val];      _ -> exit({error,{value_out_of_bounds,Val}})    end  end.'dec_SignalName'(Bytes,_) ->  ?RT_PER:decode_octet_string(Bytes,4,false).'enc_SignalType'({'SignalType',Val}) ->'enc_SignalType'(Val);'enc_SignalType'(Val) ->case (case Val of {_,_}->element(2,Val);_->Val end) of'brief' -> [0,?RT_PER:encode_integer([{'ValueRange',{0,2}}], 0)];'onOff' -> [0,?RT_PER:encode_integer([{'ValueRange',{0,2}}], 1)];'timeOut' -> [0,?RT_PER:encode_integer([{'ValueRange',{0,2}}], 2)];{asn1_enum,EnumV} when integer(EnumV), EnumV > 2 -> [1,?RT_PER:encode_small_number(EnumV)];EnumVal -> exit({error,{asn1, {enumerated_not_in_range, EnumVal}}})end.'dec_SignalType'(Bytes,_) ->

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?