From cefc6b4d6d7cf71cd4789413496aaa2b1bbe88bc Mon Sep 17 00:00:00 2001 From: skarg Date: Mon, 7 Aug 2006 21:00:58 +0000 Subject: [PATCH] Refactored. --- bacnet-stack/bacapp.c | 102 +++++++++++++++++++++++----------------- bacnet-stack/bacapp.ide | Bin 32878 -> 32878 bytes 2 files changed, 60 insertions(+), 42 deletions(-) diff --git a/bacnet-stack/bacapp.c b/bacnet-stack/bacapp.c index bbef53f4..7ea39b0c 100644 --- a/bacnet-stack/bacapp.c +++ b/bacnet-stack/bacapp.c @@ -48,48 +48,66 @@ int bacapp_encode_application_data(uint8_t * apdu, { int apdu_len = 0; /* total length of the apdu, return value */ - if (apdu) { - if (value->tag == BACNET_APPLICATION_TAG_NULL) - apdu[apdu_len++] = value->tag; - else if (value->tag == BACNET_APPLICATION_TAG_BOOLEAN) - apdu_len += encode_tagged_boolean(&apdu[apdu_len], - value->type.Boolean); - else if (value->tag == BACNET_APPLICATION_TAG_UNSIGNED_INT) - apdu_len += encode_tagged_unsigned(&apdu[apdu_len], - value->type.Unsigned_Int); - else if (value->tag == BACNET_APPLICATION_TAG_SIGNED_INT) - apdu_len += encode_tagged_signed(&apdu[apdu_len], - value->type.Signed_Int); - else if (value->tag == BACNET_APPLICATION_TAG_REAL) - apdu_len += encode_tagged_real(&apdu[apdu_len], - value->type.Real); -#if 0 - else if (value->tag == BACNET_APPLICATION_TAG_DOUBLE) - apdu_len += encode_tagged_double(&apdu[apdu_len], - value->type.Double); -#endif - else if (value->tag == BACNET_APPLICATION_TAG_OCTET_STRING) - apdu_len += encode_tagged_octet_string(&apdu[apdu_len], - &value->type.Octet_String); - else if (value->tag == BACNET_APPLICATION_TAG_CHARACTER_STRING) - apdu_len += encode_tagged_character_string(&apdu[apdu_len], - &value->type.Character_String); - else if (value->tag == BACNET_APPLICATION_TAG_BIT_STRING) - apdu_len += encode_tagged_bitstring(&apdu[apdu_len], - &value->type.Bit_String); - else if (value->tag == BACNET_APPLICATION_TAG_ENUMERATED) - apdu_len += encode_tagged_enumerated(&apdu[apdu_len], - value->type.Enumerated); - else if (value->tag == BACNET_APPLICATION_TAG_DATE) - apdu_len += encode_tagged_date(&apdu[apdu_len], - &value->type.Date); - else if (value->tag == BACNET_APPLICATION_TAG_TIME) - apdu_len += encode_tagged_time(&apdu[apdu_len], - &value->type.Time); - else if (value->tag == BACNET_APPLICATION_TAG_OBJECT_ID) - apdu_len += encode_tagged_object_id(&apdu[apdu_len], - value->type.Object_Id.type, - value->type.Object_Id.instance); + if (value && apdu) + { + switch (value->tag) { + case BACNET_APPLICATION_TAG_NULL: + apdu[0] = value->tag; + apdu_len++; + break; + case BACNET_APPLICATION_TAG_BOOLEAN: + apdu_len = encode_tagged_boolean(&apdu[0], + value->type.Boolean); + break; + case BACNET_APPLICATION_TAG_UNSIGNED_INT: + apdu_len = encode_tagged_unsigned(&apdu[0], + value->type.Unsigned_Int); + break; + case BACNET_APPLICATION_TAG_SIGNED_INT: + apdu_len = encode_tagged_signed(&apdu[0], + value->type.Signed_Int); + break; + case BACNET_APPLICATION_TAG_REAL: + apdu_len = encode_tagged_real(&apdu[0], + value->type.Real); + break; + case BACNET_APPLICATION_TAG_ENUMERATED: + apdu_len = encode_tagged_enumerated(&apdu[0], + value->type.Enumerated); + break; + case BACNET_APPLICATION_TAG_DATE: + apdu_len = encode_tagged_date(&apdu[0], + &value->type.Date); + break; + case BACNET_APPLICATION_TAG_TIME: + apdu_len = encode_tagged_time(&apdu[0], + &value->type.Time); + break; + case BACNET_APPLICATION_TAG_OBJECT_ID: + apdu_len = encode_tagged_object_id(&apdu[0], + value->type.Object_Id.type, + value->type.Object_Id.instance); + break; + case BACNET_APPLICATION_TAG_OCTET_STRING: + apdu_len = encode_tagged_octet_string(&apdu[0], + &value->type.Octet_String); + break; + case BACNET_APPLICATION_TAG_CHARACTER_STRING: + apdu_len = encode_tagged_character_string(&apdu[0], + &value->type.Character_String); + break; + case BACNET_APPLICATION_TAG_BIT_STRING: + apdu_len = encode_tagged_bitstring(&apdu[0], + &value->type.Bit_String); + break; + case BACNET_APPLICATION_TAG_DOUBLE: + /* FIXME: double is not implemented yet. + apdu_len = encode_tagged_double(&apdu[0], + value->type.Double); + */ + default: + break; + } } return apdu_len; diff --git a/bacnet-stack/bacapp.ide b/bacnet-stack/bacapp.ide index d83f57c6807b780d3de829aca4dbe782cdddfce0..e79ca367c4a5f8961d19776c62395b059885f15e 100644 GIT binary patch delta 3982 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 K6}Ygz)ABD;CfKk5 delta 3982 zcmai1eNa@_6~AvEAG?Bz5lWhvur6^zB4ihL0}{Sg5Efx&A;PGL0`jdQAS^`Gk)&j5 zt4>W$+UT^@PV-Tj#wm8&(WbSr)0!bojAmGjPIa0gcElNz`iD-mlg{*S`*Vz0*a4ArfD#@suOZE3EOPBYN#S9T^IrQMgL+nQC05aJjc{SR}{u}-?gW;kV%|0Vl~ z{M>bxROJf+qsRj4CXga+&`sH6~5^{T1`PQfKyXDo!35d%XG{ezhcsVC%Cd7o{--w41gUr5wW%?XkJ1*S5$4h4=Kf|W@20zN{WMK72;{c z1BlPAPj~?dFA}3A)y7Bg&yrMgH;$4@ ztBrHeUYcs&#?ir2o>ZnMeOBr)kIfB3w2z5$O|0`dO#8er>`{bY6Bm#;jKm#9RBEEE z%whgzei*vSI8>D;&Xm0`|BGDsY6=dnx*jE8{|n`5vG(Y&5LPFo1d`#8<>hoRAg-c| z9d=i=uyU>9uvFd{_8V*&S?yxwlvZx8PK&ojQM6QwF2G)?Txu%Q;yWaRKZnHZt5k7s zRi>FEc#i7Euog@{f6A|rAIEp$u$j9 zKl8*zc&uit{L=Q<{Ma&N38mGJTcTbw^9{JN_Fd_81)WCMIi=J2b=lJP=IA8MUGJ2- z%X1Nm*M}s3Z+*5zcb!k-o;o)#)Heku>k8SYu0o=3LxaSz4Q`2lSC~}KF#`2$e_7%0 zmHkdV$I0HveAh-E|7s)8yP@nUn|Qo_6X!s624y?9iStWt;2d@~RLDFh2B+Y|hBY#u z#f<@JTZgv6#tqUo)yQilH*p=V;J#{`ilyIY6Vq_CiPyZ`lq>y{H#62Mgw46qcjo3a zOeuXlFb&DgYo*;^H4VXLj&~Phzt_xryrXbw3-2Yde+pV#_?^72Y%a8YqHJa>&&z4$ zSbpTb)5`w8ZRH#~(Ds$GJ=Mnk4Q*V95#&y^vH$07yw{(hZE-ulbE@UqcFyGwXn#fN zWdATikM7|5ws&y+QH7HVZJiwZ62|a#&c@!;$#s6Olh?S7{JjX?xrOZs!71q6;$A@g zAj#YhqQoP@um+&1JqdPiw!&Yx#LLQ3W>>fPq@IqmmTu*h$=erP1%+YOhHmN+kD;ZH;lFyyJstRQt>ysd4ChgKiMO47NBBOrgZHpz2hX{S{J|ZwvHq<1dkUR>?B}hR zhR(iOzoUJ;&L@iBhkRWBEWe_k`M!Rhe*yX95&Y-<{B>spIiF^QM--k9^1O%r(_kCm zxQkw&gu(%pH~!-7RQf*rr3(!>W9Wp1H^Iz+OTN-Y=@%hokf*wiPD1S@G7c@ec8gG2I6udFty)_A&_B&__B@|4yPyN;fnTodEU9 zB$}rlI&!>PjoB(h