From cabdeab0813bfacf4284c0da67d6e6048370abef Mon Sep 17 00:00:00 2001 From: skarg Date: Mon, 16 Jan 2006 15:00:22 +0000 Subject: [PATCH] Fixed up most warnings after bacdcode changes to unsigned and signed decoding. Fixed up the Visual C++ demo in ports/win32/bacnet/ --- bacnet-stack/arf.h | 8 +- bacnet-stack/awf.h | 6 +- bacnet-stack/bacapp.h | 4 +- bacnet-stack/bacdcode.c | 10 +- bacnet-stack/demo/handler/h_arf.c | 4 +- bacnet-stack/demo/handler/h_iam.c | 1 + bacnet-stack/demo/handler/h_wp.c | 2 - bacnet-stack/demo/handler/s_rp.c | 1 + bacnet-stack/demo/handler/s_whois.c | 1 + bacnet-stack/demo/handler/s_wp.c | 1 + bacnet-stack/demo/object/device.c | 9 +- bacnet-stack/demo/readfile/readfile.c | 2 + bacnet-stack/demo/readfile/readfile.ide | Bin 56378 -> 53170 bytes bacnet-stack/iam.c | 4 +- bacnet-stack/ports/win32/bacnet.ide | Bin 54260 -> 64426 bytes bacnet-stack/ports/win32/bacnet/bacnet.dsp | 50 ++++++++- bacnet-stack/ports/win32/bacnet/bacnet.ncb | Bin 230400 -> 238592 bytes bacnet-stack/ports/win32/bacnet/bacnet.opt | Bin 55808 -> 53760 bytes bacnet-stack/ports/win32/bacnet/bacnet.plg | 119 +++++++-------------- bacnet-stack/ports/win32/bip-init.c | 6 ++ bacnet-stack/ports/win32/main.c | 20 ++-- bacnet-stack/rp.c | 4 +- bacnet-stack/rpm.c | 4 +- bacnet-stack/whois.c | 2 +- bacnet-stack/wp.c | 5 +- 25 files changed, 138 insertions(+), 125 deletions(-) diff --git a/bacnet-stack/arf.h b/bacnet-stack/arf.h index cee8e75a..ab75ffee 100644 --- a/bacnet-stack/arf.h +++ b/bacnet-stack/arf.h @@ -48,14 +48,14 @@ typedef struct BACnet_Atomic_Read_File_Data { struct { - int fileStartPosition; - unsigned requestedOctetCount; + int32_t fileStartPosition; + uint32_t requestedOctetCount; } stream; struct { - int fileStartRecord; + int32_t fileStartRecord; // requested or returned record count - unsigned RecordCount; + uint32_t RecordCount; } record; } type; BACNET_OCTET_STRING fileData; diff --git a/bacnet-stack/awf.h b/bacnet-stack/awf.h index ec9cbfc7..136e703d 100644 --- a/bacnet-stack/awf.h +++ b/bacnet-stack/awf.h @@ -47,12 +47,12 @@ typedef struct BACnet_Atomic_Write_File_Data { struct { - int fileStartPosition; + int32_t fileStartPosition; } stream; struct { - int fileStartRecord; - unsigned returnedRecordCount; + int32_t fileStartRecord; + uint32_t returnedRecordCount; } record; } type; BACNET_OCTET_STRING fileData; diff --git a/bacnet-stack/bacapp.h b/bacnet-stack/bacapp.h index f7ba8fdc..5bb589ad 100644 --- a/bacnet-stack/bacapp.h +++ b/bacnet-stack/bacapp.h @@ -46,8 +46,8 @@ typedef struct BACnet_Application_Data_Value { /* NULL - not needed as it is encoded in the tag alone */ bool Boolean; - unsigned Unsigned_Int; - int Signed_Int; + uint32_t Unsigned_Int; + int32_t Signed_Int; float Real; double Double; BACNET_OCTET_STRING Octet_String; diff --git a/bacnet-stack/bacdcode.c b/bacnet-stack/bacdcode.c index 519ca6d2..8c7c985c 100644 --- a/bacnet-stack/bacdcode.c +++ b/bacnet-stack/bacdcode.c @@ -1110,10 +1110,10 @@ int encode_bacnet_unsigned(uint8_t * apdu, uint32_t value) int len = 0; // return value if (value < 0x100) { - apdu[0] = value; + apdu[0] = (uint8_t)value; len = 1; } else if (value < 0x10000) { - len = encode_unsigned16(&apdu[0],value); + len = encode_unsigned16(&apdu[0],(uint16_t)value); } else if (value < 0x1000000) { len = encode_unsigned24(&apdu[0],value); } else { @@ -1187,7 +1187,7 @@ int decode_unsigned(uint8_t * apdu, uint32_t len_value, uint32_t *value) // returns the number of apdu bytes consumed int decode_enumerated(uint8_t * apdu, uint32_t len_value, int *value) { - unsigned unsigned_value = 0; + uint32_t unsigned_value = 0; int len; len = decode_unsigned(apdu, len_value, &unsigned_value); @@ -1280,9 +1280,9 @@ int encode_bacnet_signed(uint8_t * apdu, int32_t value) octet is 0, and the first octet shall not be X'FF' if the most significant bit of the second octet is 1. */ if ((value >= -128) && (value < 128)) { - len = encode_signed8(&apdu[0],value); + len = encode_signed8(&apdu[0],(int8_t)value); } else if ((value >= -32768) && (value < 32768)) { - len = encode_signed16(&apdu[0],value); + len = encode_signed16(&apdu[0],(int16_t)value); } else if ((value > -8388608) && (value < 8388608)) { len = encode_signed24(&apdu[0],value); } else { diff --git a/bacnet-stack/demo/handler/h_arf.c b/bacnet-stack/demo/handler/h_arf.c index c71feb2b..8cb28c06 100644 --- a/bacnet-stack/demo/handler/h_arf.c +++ b/bacnet-stack/demo/handler/h_arf.c @@ -34,14 +34,12 @@ #include "apdu.h" #include "npdu.h" #include "abort.h" -#include "rp.h" +#include "arf.h" /* demo objects */ #include "device.h" #include "ai.h" #include "ao.h" -#if BACFILE #include "bacfile.h" -#endif void handler_atomic_read_file( uint8_t *service_request, diff --git a/bacnet-stack/demo/handler/h_iam.c b/bacnet-stack/demo/handler/h_iam.c index 559d5208..d3eedb4e 100644 --- a/bacnet-stack/demo/handler/h_iam.c +++ b/bacnet-stack/demo/handler/h_iam.c @@ -24,6 +24,7 @@ *********************************************************************/ #include #include +#include #include "config.h" #include "txbuf.h" #include "bacdef.h" diff --git a/bacnet-stack/demo/handler/h_wp.c b/bacnet-stack/demo/handler/h_wp.c index ef4103ec..e04c0601 100644 --- a/bacnet-stack/demo/handler/h_wp.c +++ b/bacnet-stack/demo/handler/h_wp.c @@ -43,8 +43,6 @@ #include "bacfile.h" #endif -static uint8_t Temp_Buf[MAX_APDU] = {0}; - void handler_write_property( uint8_t *service_request, uint16_t service_len, diff --git a/bacnet-stack/demo/handler/s_rp.c b/bacnet-stack/demo/handler/s_rp.c index d15224ef..daa63b0f 100644 --- a/bacnet-stack/demo/handler/s_rp.c +++ b/bacnet-stack/demo/handler/s_rp.c @@ -24,6 +24,7 @@ *********************************************************************/ #include #include +#include #include "config.h" #include "config.h" #include "txbuf.h" diff --git a/bacnet-stack/demo/handler/s_whois.c b/bacnet-stack/demo/handler/s_whois.c index 00c7102a..0f661d26 100644 --- a/bacnet-stack/demo/handler/s_whois.c +++ b/bacnet-stack/demo/handler/s_whois.c @@ -24,6 +24,7 @@ *********************************************************************/ #include #include +#include #include "config.h" #include "config.h" #include "txbuf.h" diff --git a/bacnet-stack/demo/handler/s_wp.c b/bacnet-stack/demo/handler/s_wp.c index 7316b161..8327b1b3 100644 --- a/bacnet-stack/demo/handler/s_wp.c +++ b/bacnet-stack/demo/handler/s_wp.c @@ -24,6 +24,7 @@ *********************************************************************/ #include #include +#include #include "config.h" #include "config.h" #include "txbuf.h" diff --git a/bacnet-stack/demo/object/device.c b/bacnet-stack/demo/object/device.c index 0165ac78..ba5c4a65 100644 --- a/bacnet-stack/demo/object/device.c +++ b/bacnet-stack/demo/object/device.c @@ -608,7 +608,8 @@ bool Device_Write_Property( case PROP_NUMBER_OF_APDU_RETRIES: if (wp_data->value.tag == BACNET_APPLICATION_TAG_UNSIGNED_INT) { - Device_Set_Number_Of_APDU_Retries(wp_data->value.type.Unsigned_Int); + /* FIXME: bounds check? */ + Device_Set_Number_Of_APDU_Retries((uint8_t)wp_data->value.type.Unsigned_Int); status = true; } else @@ -621,7 +622,8 @@ bool Device_Write_Property( case PROP_APDU_TIMEOUT: if (wp_data->value.tag == BACNET_APPLICATION_TAG_UNSIGNED_INT) { - Device_Set_APDU_Timeout(wp_data->value.type.Unsigned_Int); + /* FIXME: bounds check? */ + Device_Set_APDU_Timeout((uint16_t)wp_data->value.type.Unsigned_Int); status = true; } else @@ -634,7 +636,8 @@ bool Device_Write_Property( case PROP_VENDOR_IDENTIFIER: if (wp_data->value.tag == BACNET_APPLICATION_TAG_UNSIGNED_INT) { - Device_Set_Vendor_Identifier(wp_data->value.type.Unsigned_Int); + /* FIXME: bounds check? */ + Device_Set_Vendor_Identifier((uint16_t)wp_data->value.type.Unsigned_Int); status = true; } else diff --git a/bacnet-stack/demo/readfile/readfile.c b/bacnet-stack/demo/readfile/readfile.c index d930af5e..b0a98b94 100644 --- a/bacnet-stack/demo/readfile/readfile.c +++ b/bacnet-stack/demo/readfile/readfile.c @@ -27,7 +27,9 @@ #include #include #include +#include #include /* for time */ +#include #include "bactext.h" #include "iam.h" #include "arf.h" diff --git a/bacnet-stack/demo/readfile/readfile.ide b/bacnet-stack/demo/readfile/readfile.ide index 3d7b8ff417ae20c2c1a3ae66d5acca8491d9e2f0..2a179c9e96993268d3e667b6f817f73113245eda 100644 GIT binary patch delta 8639 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 B-i-hN diff --git a/bacnet-stack/iam.c b/bacnet-stack/iam.c index d0b61fb1..cfa0f67b 100755 --- a/bacnet-stack/iam.c +++ b/bacnet-stack/iam.c @@ -90,7 +90,7 @@ int iam_decode_service_request( uint32_t object_instance = 0; uint8_t tag_number = 0; uint32_t len_value = 0; - unsigned int decoded_value = 0; + uint32_t decoded_value = 0; int decoded_integer = 0; // OBJECT ID - object id @@ -134,7 +134,7 @@ int iam_decode_service_request( if (decoded_value > 0xFFFF) return -1; if (pVendor_id) - *pVendor_id = decoded_value; + *pVendor_id = (uint16_t)decoded_value; return apdu_len; } diff --git a/bacnet-stack/ports/win32/bacnet.ide b/bacnet-stack/ports/win32/bacnet.ide index bd48e09a952a10485091f908a76149107df98398..dd35334a8092da450768620859e052f8ea839326 100644 GIT binary patch literal 64426 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 delta 14055 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 K!G!-J$bSPk5ii#O diff --git a/bacnet-stack/ports/win32/bacnet/bacnet.dsp b/bacnet-stack/ports/win32/bacnet/bacnet.dsp index 1bf337b8..2a99065f 100644 --- a/bacnet-stack/ports/win32/bacnet/bacnet.dsp +++ b/bacnet-stack/ports/win32/bacnet/bacnet.dsp @@ -42,7 +42,7 @@ RSC=rc.exe # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /W3 /GX /O2 /I "c:\code\bacnet-stack\\" /I "c:\code\bacnet-stack\ports\win32\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c +# ADD CPP /nologo /W3 /GX /O2 /I "c:\code\bacnet-stack\\" /I "c:\code\bacnet-stack\ports\win32\\" /I "c:\code\bacnet-stack\demo\object\\" /I "c:\code\bacnet-stack\demo\handler\\" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "BACDL_BIP" /FD /c # SUBTRACT CPP /YX # ADD BASE RSC /l 0x409 /d "NDEBUG" # ADD RSC /l 0x409 /d "NDEBUG" @@ -67,7 +67,7 @@ LINK32=link.exe # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "c:\code\bacnet-stack\\" /I "c:\code\bacnet-stack\ports\win32\\" /I "c:\code\bacnet-stack\demo\object" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "BACDL_BIP" /FR /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "c:\code\bacnet-stack\demo\object" /I "c:\code\bacnet-stack\\" /I "c:\code\bacnet-stack\ports\win32\\" /I "c:\code\bacnet-stack\demo\object\\" /I "c:\code\bacnet-stack\demo\handler\\" /D "_DEBUG" /D "BACDL_BIP" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /FR /FD /GZ /c # SUBTRACT CPP /YX # ADD BASE RSC /l 0x409 /d "_DEBUG" # ADD RSC /l 0x409 /d "_DEBUG" @@ -161,7 +161,31 @@ SOURCE=..\..\..\demo\object\device.c # End Source File # Begin Source File -SOURCE=..\..\..\handlers.c +SOURCE=..\..\..\demo\handler\h_arf.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\demo\handler\h_arf_a.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\demo\handler\h_iam.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\demo\handler\h_rp.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\demo\handler\h_rp_a.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\demo\handler\h_whois.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\demo\handler\h_wp.c # End Source File # Begin Source File @@ -177,6 +201,10 @@ SOURCE=..\main.c # End Source File # Begin Source File +SOURCE=..\..\..\demo\handler\noserv.c +# End Source File +# Begin Source File + SOURCE=..\..\..\npdu.c # End Source File # Begin Source File @@ -193,10 +221,26 @@ SOURCE=..\..\..\rp.c # End Source File # Begin Source File +SOURCE=..\..\..\demo\handler\s_rp.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\demo\handler\s_whois.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\demo\handler\s_wp.c +# End Source File +# Begin Source File + SOURCE=..\..\..\tsm.c # End Source File # Begin Source File +SOURCE=..\..\..\demo\handler\txbuf.c +# End Source File +# Begin Source File + SOURCE=..\..\..\whois.c # End Source File # Begin Source File diff --git a/bacnet-stack/ports/win32/bacnet/bacnet.ncb b/bacnet-stack/ports/win32/bacnet/bacnet.ncb index c01364cfdaaf9d6800e623f76f34ddf6cbfde543..af86a066a339c46413d4d64ba62e15ac4f242ebf 100644 GIT binary patch delta 19024 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 delta 13421 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 F{|U4#%|ZYG diff --git a/bacnet-stack/ports/win32/bacnet/bacnet.opt b/bacnet-stack/ports/win32/bacnet/bacnet.opt index 099ee63f712a92876c0052868ec7471f141dab01..aa9fe80740fe0946b2f27486138b02d96a9e60ef 100644 GIT binary patch literal 53760 zcmeHQ&2!tv6^ATau^HQOT-VKaHf(HDwnS1Nc5GR3ERnLURJK&nj@+0o0|F}&76@Pf zP#=>?CWrQa=%JVP(o<&If1t-++hY$swAWmE?4i@Tzr_M10Z_E$X{U+xU_W8;@US0m z7Z1RX``-TPkFWmqSHFAXZ%Sgjp$seketJw9>ERC{EhyMdDLDW1sYpkAkp_#l?~n%m zg}O5I+c4-b=m<#k`AeXqpkts6=w*=T=M&hU1ib>n5KvwPod$gmbO!W&kdXTU_OF3n z2fYD$6Z977ZO}WQcR@mK5&JCYhoJXC=RoH{7eG1CDCie#UjyIlU&sh_WW{l*`LM7tu9HI(iu8;Ykm(1nKf zGw9Ms+7EOQ$?djh%Auh{I4Q=isK;({y?h}b3|8#sQM#>cp?r?i{YsJ*3@KpBHZP5&kiYlg|o*f?7g!mP~e?Z$YYEi+qaPTk1N z;!nwLwNy)IONPZg$u7AZ`B@F-^A^fh-5s`Wn4D!%yYh1B!QF)~C#s&mQJknQEtlq& zDmc6k(duetSgUA5~^xaMbfm#Pjp*Q>xmay=zgpDEXb)=cgOf@PMil^5n8+(spk zo}Vj~mumBiEAnt{@!r&=Ox8-v_bSUv3*ph-`BDYRTdUcis|q4*_oVfnbQ#+Elod3V z5&bZDl(baC%4^xo<4mV7wXmN}^fMG~=J_^fH}}({-MpS_T+H_$7aQEQxH&bMH;p=L zd)y6^4c!P+82FxJ+h!nvX6R-kJfrHHsuPKMO>Rc{*d`A}kW$-zc+hSedXS5)*R@Ch zNzDllwme(g2-BSb>$U6Nj)ykSU^siokQEF|b9oCRTQz5PxW@{PUY`m3O5THcaL}8& zxC2?CrD{#+eP(g$>J?V7+kQeAeF0%y;_ola+{TW=%~El7LrJ6YXl&(#mV5Ya>{F zuI*RFX1a=&4KuMROWxJO1)aTj8z-$(@I+j0`%c>zk5Jv-3ZIB}%Q28+BcIP_q;bvk zeOC28Y4AMHH*-_PQ8vT2RM!$u)Y5dZczK3hsN7#&EZx6=GcXOV&0MbYbuqN@7|*b9 zLkW&+H(a$9Jb%4v%YdwBulsD%@Y<@$Jio0Qc6C#`cC`wdWVZ3@0CS1FQ1ZlOQL@K5 zb6gB_yX~=VAm_d7K&6x*gaVVdKP?K_5Gq$pmLsxz{%R@M|HwmxZYvXGIp=Bsp(%j7>yV4@dam zfDytMN1<-(J7VATTjq_-pD+JLd<`iz<=5gv=8$uESP?`UY2YAe;6&yG9{1}G-Ut2l zoagJfea7%1A>K->{@u9}{;1n?E9D1O{~q_NR(AAyaE0x%oWVY1#p}#qv+VBN!`fWA zyt+`S)Jk)uI}2c6x-=?8KNo)(GuBy7m0u0D2KQ_Aotk)2*v=Va=k=hxnxT)e^DT9| zrsCm=WGFrwWYftgUEOo-s-GR}WFl)Q%3K$W^(H~dlJ@B2#56y zu1o0STygSYcC6>>M^7GiOZh@JFkLUysw!`Vd1+8xBc&m$KgM#q~|4(Gl zfq0iQtei-wZbKVmT2pn|MWi<$J%$d01_Bzmw{Sn|E9SWx)bn}qi|dRP3Xy`?R+GD& zweW?fHaOGN7H8|O-4YFLBmapjHJ_o6gc1Yo1}7}fXjoilzR}|N#Keh-B8CUDZ5gI% zcpRUvx+g>vm1ynMLfwurJPcG_Q$0UoVYrD)a+|iHkBWAI(Q~*N9LfP(t6*F$2S812 z(E@g5X}or?-KujpH!(Ra)wYP2TnM^igxBs!48_aIbEv9#2WEbgGw~k7#7jIg)gA7N zLJJoKptNo@+E9+jURPaRGzNWASX^P^<(pkB2+_LX)I8KiuyVz1$P{G};x>3soD~J- zqM_|_zwKIVB5Z8*4kd4tq(*Y*Q%aI~2ctI9TP`~vU6>u)?FxOk`-_fv{t^Dy2iWRC zw3S+2Fdl5MEG9{(e1u5KG(M);eUkxsT$#b0uinf{zv#9;eUkxHLBqc z9dY0XFR1c|jublqLlOR$g!Ksjd)5#1g#R4`WQp4NUC;pGe<8R?_#feaLIVd3|2vAA zzjv2D7E@aZ|D*YTH2;t0|Iz$E0g%!BKcNMh|5v5?e>DFO6P@Egm`d~iIQS$KZe;Dv98Ug)-B;&>59>)`Faa@VkP0NS##E~u(OYo4>}JB&YGLH*0aLj;PnQ%&kW5)3?XW_); z9k1AJ7os8$@Aw_AVmi7!kR^^t*S9_g&n&06HHkWs|2O%6M-JNL|4shi!30Ude+mB$ z1_I%~g#Qx$E74v|3rzswg#RWrLi0aq{%7A$HDZzmzI7TP{Fm@w!ha7g{yXQ9_Jop5 zh4#Zw0u=u-7H*T`Kc)r=#eaNO5MGM^n2P;O@gEWBHa?Y={J*0gI^ufi7a|eCYU4r_ z|1nGPAHQ{=4poRWutyCL{zv#9;eQ7g|NHD4iT|Amr{Tp`ZplcdT;=7cQd*I-_WH`6 zO=PgjvG9e*#acTZ8lsIzqO!?!r*p$Noawidhx@V^10LfvUV}+bE zN~z2ptS7-OZKs4aX%MHCyHU|%ZG+|zmelGI5;Gt>=eGu)KURmHeNP{lNANAUdl|%WMP2--*kFRBIz|0Dd5@IS);h9WOu7`nir zI%)94($a+gtxCX&@W0)_O2Yr-`p&febKpFw()!OK;1(_El~}J>E?Sphrk5~|;Q9Ds z&p|YVIE&VQPAiYrf2Q@HZPRYpSot1HTVlFbA^c&J@IS);q-Qg&|11OD#$jN>|B|0U zbW9p}ku*T~AK`z5{~cWXuY@>@s^a0_Cy4sU5%G~J`;Gs&-}s9k3j-R)Uo4}{IwC+e z@Q))720JdDGUHPzRe6H#I^N=!wG>Btlc>@fHRo&3My9G~_mC;xBh z^xosoPX6C@M)4mh{$udbMe{!i{|k^S8J!|C+nlE3Q~XDY|LA7BhL-TZY(5HqkqqQW^FL|+Cq88kIfsW8L9~$u z4uS><|0Dd5@V|qL|A~2vhm@Nmzdbyp{32%XN`=y;OUmirV?rplcku6LfCi)Ex0Sb* zou1=2l{c05U+tcMS9w?2taXpyQr=Q>01HnmGQZc9*Ob5a9KWu7fTJ0Z*ggvP@<>rG zly;x%fUlzVc2#~8o&S7l`s$S{*RGbwr>`x{k55dLZjI01n!Yk#EY8gpi_@iv$%V-; z6lE;TS(MW|eNv?V0-m7Hu%`JxMEJ@7vtmY2$#+79M0-&yu?r)I7Z{wKlBlFL;e zKqo_3XMmZiyTjHI3z=o{3Q%5tR*YYo{}(RQECb!fXLAw$NBCbf)30e8USchqV4?f? ch@ts^;w76l(!h(V0mAFF$tB+kt);jCd#Xyfd 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 diff --git a/bacnet-stack/ports/win32/bacnet/bacnet.plg b/bacnet-stack/ports/win32/bacnet/bacnet.plg index bac923d2..8366d25f 100644 --- a/bacnet-stack/ports/win32/bacnet/bacnet.plg +++ b/bacnet-stack/ports/win32/bacnet/bacnet.plg @@ -8,36 +8,8 @@

Command Lines

Creating temporary file "C:\DOCUME~1\stk01\LOCALS~1\Temp\RSP58A.tmp" with contents [ -/nologo /MLd /W3 /Gm /GX /ZI /Od /I "c:\code\bacnet-stack\\" /I "c:\code\bacnet-stack\ports\win32\\" /I "c:\code\bacnet-stack\demo\object" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "BACDL_BIP" /FR"Debug/" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c -"C:\code\bacnet-stack\abort.c" -"C:\code\bacnet-stack\address.c" -"C:\code\bacnet-stack\apdu.c" -"C:\code\bacnet-stack\arf.c" -"C:\code\bacnet-stack\bacapp.c" -"C:\code\bacnet-stack\bacdcode.c" -"C:\code\bacnet-stack\bacerror.c" -"C:\code\bacnet-stack\bacstr.c" -"C:\code\bacnet-stack\bactext.c" -"C:\code\bacnet-stack\bigend.c" -"C:\code\bacnet-stack\ports\win32\bip-init.c" -"C:\code\bacnet-stack\bip.c" -"C:\code\bacnet-stack\crc.c" -"C:\code\bacnet-stack\datalink.c" -"C:\code\bacnet-stack\handlers.c" -"C:\code\bacnet-stack\iam.c" -"C:\code\bacnet-stack\indtext.c" +/nologo /MLd /W3 /Gm /GX /ZI /Od /I "c:\code\bacnet-stack\demo\object" /I "c:\code\bacnet-stack\\" /I "c:\code\bacnet-stack\ports\win32\\" /I "c:\code\bacnet-stack\demo\object\\" /I "c:\code\bacnet-stack\demo\handler\\" /D "_DEBUG" /D "BACDL_BIP" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /FR"Debug/" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c "C:\code\bacnet-stack\ports\win32\main.c" -"C:\code\bacnet-stack\npdu.c" -"C:\code\bacnet-stack\reject.c" -"C:\code\bacnet-stack\ringbuf.c" -"C:\code\bacnet-stack\rp.c" -"C:\code\bacnet-stack\tsm.c" -"C:\code\bacnet-stack\whois.c" -"C:\code\bacnet-stack\wp.c" -"C:\code\bacnet-stack\demo\object\device.c" -"C:\code\bacnet-stack\demo\object\ai.c" -"C:\code\bacnet-stack\demo\object\ao.c" -"C:\code\bacnet-stack\demo\object\bacfile.c" ] Creating command line "cl.exe @C:\DOCUME~1\stk01\LOCALS~1\Temp\RSP58A.tmp" Creating temporary file "C:\DOCUME~1\stk01\LOCALS~1\Temp\RSP58B.tmp" with contents @@ -45,11 +17,14 @@ Creating temporary file "C:\DOCUME~1\stk01\LOCALS~1\Temp\RSP58B.tmp" with conten kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib /nologo /subsystem:console /incremental:yes /pdb:"Debug/bacnet.pdb" /debug /machine:I386 /out:"Debug/bacnet.exe" /pdbtype:sept ".\Debug\abort.obj" ".\Debug\address.obj" +".\Debug\ai.obj" +".\Debug\ao.obj" ".\Debug\apdu.obj" ".\Debug\arf.obj" ".\Debug\bacapp.obj" ".\Debug\bacdcode.obj" ".\Debug\bacerror.obj" +".\Debug\bacfile.obj" ".\Debug\bacstr.obj" ".\Debug\bactext.obj" ".\Debug\bigend.obj" @@ -57,7 +32,7 @@ kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32 ".\Debug\bip.obj" ".\Debug\crc.obj" ".\Debug\datalink.obj" -".\Debug\handlers.obj" +".\Debug\device.obj" ".\Debug\iam.obj" ".\Debug\indtext.obj" ".\Debug\main.obj" @@ -68,69 +43,39 @@ kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32 ".\Debug\tsm.obj" ".\Debug\whois.obj" ".\Debug\wp.obj" -".\Debug\device.obj" -".\Debug\ai.obj" -".\Debug\ao.obj" -".\Debug\bacfile.obj" +".\Debug\s_rp.obj" +".\Debug\s_whois.obj" +".\Debug\s_wp.obj" +".\Debug\txbuf.obj" +".\Debug\h_arf.obj" +".\Debug\h_arf_a.obj" +".\Debug\h_iam.obj" +".\Debug\h_rp.obj" +".\Debug\h_rp_a.obj" +".\Debug\h_whois.obj" +".\Debug\h_wp.obj" +".\Debug\noserv.obj" ] Creating command line "link.exe @C:\DOCUME~1\stk01\LOCALS~1\Temp\RSP58B.tmp"

Output Window

Compiling... -abort.c -address.c -apdu.c -arf.c -bacapp.c -bacdcode.c -bacerror.c -bacstr.c -bactext.c -bigend.c -bip-init.c -bip.c -crc.c -datalink.c -handlers.c -iam.c -indtext.c main.c c:\code\bacnet-stack\ports\win32\net.h(30) : warning C4005: 'STRICT' : macro redefinition c:\program files\microsoft visual studio\vc98\include\windef.h(15) : see previous definition of 'STRICT' -npdu.c -reject.c -Generating Code... -c:\code\bacnet-stack\npdu.c(332) : warning C4761: integral size mismatch in argument; conversion supplied -c:\code\bacnet-stack\handlers.c(194) : warning C4761: integral size mismatch in argument; conversion supplied -c:\code\bacnet-stack\handlers.c(271) : warning C4761: integral size mismatch in argument; conversion supplied -Compiling... -ringbuf.c -rp.c -tsm.c -whois.c -wp.c -device.c -ai.c -c:\code\bacnet-stack\demo\object\ai.c(76) : warning C4305: 'initializing' : truncation from 'const double ' to 'float ' -ao.c -c:\code\bacnet-stack\demo\object\ao.c(157) : warning C4305: 'initializing' : truncation from 'const double ' to 'float ' -bacfile.c -Generating Code... -c:\code\bacnet-stack\demo\object\bacfile.c(285) : warning C4761: integral size mismatch in argument; conversion supplied -c:\code\bacnet-stack\demo\object\device.c(611) : warning C4761: integral size mismatch in argument; conversion supplied -c:\code\bacnet-stack\demo\object\device.c(624) : warning C4761: integral size mismatch in argument; conversion supplied -c:\code\bacnet-stack\demo\object\device.c(637) : warning C4761: integral size mismatch in argument; conversion supplied -c:\code\bacnet-stack\wp.c(129) : warning C4761: integral size mismatch in argument; conversion supplied Linking... -Creating temporary file "C:\DOCUME~1\stk01\LOCALS~1\Temp\RSP58D.tmp" with contents +Creating temporary file "C:\DOCUME~1\stk01\LOCALS~1\Temp\RSP58C.tmp" with contents [ /nologo /o"Debug/bacnet.bsc" ".\Debug\abort.sbr" ".\Debug\address.sbr" +".\Debug\ai.sbr" +".\Debug\ao.sbr" ".\Debug\apdu.sbr" ".\Debug\arf.sbr" ".\Debug\bacapp.sbr" ".\Debug\bacdcode.sbr" ".\Debug\bacerror.sbr" +".\Debug\bacfile.sbr" ".\Debug\bacstr.sbr" ".\Debug\bactext.sbr" ".\Debug\bigend.sbr" @@ -138,7 +83,7 @@ Creating temporary file "C:\DOCUME~1\stk01\LOCALS~1\Temp\RSP58D.tmp" with conten ".\Debug\bip.sbr" ".\Debug\crc.sbr" ".\Debug\datalink.sbr" -".\Debug\handlers.sbr" +".\Debug\device.sbr" ".\Debug\iam.sbr" ".\Debug\indtext.sbr" ".\Debug\main.sbr" @@ -149,18 +94,26 @@ Creating temporary file "C:\DOCUME~1\stk01\LOCALS~1\Temp\RSP58D.tmp" with conten ".\Debug\tsm.sbr" ".\Debug\whois.sbr" ".\Debug\wp.sbr" -".\Debug\device.sbr" -".\Debug\ai.sbr" -".\Debug\ao.sbr" -".\Debug\bacfile.sbr"] -Creating command line "bscmake.exe @C:\DOCUME~1\stk01\LOCALS~1\Temp\RSP58D.tmp" +".\Debug\s_rp.sbr" +".\Debug\s_whois.sbr" +".\Debug\s_wp.sbr" +".\Debug\txbuf.sbr" +".\Debug\h_arf.sbr" +".\Debug\h_arf_a.sbr" +".\Debug\h_iam.sbr" +".\Debug\h_rp.sbr" +".\Debug\h_rp_a.sbr" +".\Debug\h_whois.sbr" +".\Debug\h_wp.sbr" +".\Debug\noserv.sbr"] +Creating command line "bscmake.exe @C:\DOCUME~1\stk01\LOCALS~1\Temp\RSP58C.tmp" Creating browse info file...

Output Window

Results

-bacnet.exe - 0 error(s), 11 warning(s) +bacnet.exe - 0 error(s), 1 warning(s) diff --git a/bacnet-stack/ports/win32/bip-init.c b/bacnet-stack/ports/win32/bip-init.c index 5dc0d1e0..4a3180a4 100644 --- a/bacnet-stack/ports/win32/bip-init.c +++ b/bacnet-stack/ports/win32/bip-init.c @@ -85,6 +85,12 @@ static void cleanup(void) WSACleanup(); } +void bip_set_interface(char *ifname) +{ + (void)ifname; + /* dummy function */ +} + bool bip_init(void) { int rv = 0; // return from socket lib calls diff --git a/bacnet-stack/ports/win32/main.c b/bacnet-stack/ports/win32/main.c index c0c16f4d..6987b210 100644 --- a/bacnet-stack/ports/win32/main.c +++ b/bacnet-stack/ports/win32/main.c @@ -24,7 +24,7 @@ *********************************************************************/ // This is one way to use the embedded BACnet stack under Win32 -// compiled with Borland C++ 5.02 +// compiled with Borland C++ 5.02 or Visual C++ 6.0 #include #include #include @@ -38,10 +38,14 @@ #include "apdu.h" #include "device.h" #include "handlers.h" +#include "client.h" #include "datalink.h" +#include "txbuf.h" // buffer used for receive static uint8_t Rx_Buf[MAX_MPDU] = {0}; +/* send a whois to see who is on the network */ +static bool Who_Is_Request = true; static void Read_Properties(void) { @@ -164,7 +168,7 @@ static void Init_Service_Handlers(void) // we need to handle who-is to support dynamic device binding apdu_set_unconfirmed_handler( SERVICE_UNCONFIRMED_WHO_IS, - WhoIsHandler); + handler_who_is); apdu_set_unconfirmed_handler( SERVICE_UNCONFIRMED_I_AM, LocalIAmHandler); @@ -172,18 +176,18 @@ static void Init_Service_Handlers(void) // set the handler for all the services we don't implement // It is required to send the proper reject message... apdu_set_unrecognized_service_handler_handler( - UnrecognizedServiceHandler); + handler_unrecognized_service); // we must implement read property - it's required! apdu_set_confirmed_handler( SERVICE_CONFIRMED_READ_PROPERTY, - ReadPropertyHandler); + handler_read_property); apdu_set_confirmed_handler( SERVICE_CONFIRMED_WRITE_PROPERTY, - WritePropertyHandler); + handler_write_property); // handle the data coming back from confirmed requests apdu_set_confirmed_ack_handler( SERVICE_CONFIRMED_READ_PROPERTY, - ReadPropertyAckHandler); + handler_read_property_ack); } static void print_address( @@ -274,11 +278,11 @@ int main(int argc, char *argv[]) if (I_Am_Request) { I_Am_Request = false; - Send_IAm(); + iam_send(&Handler_Transmit_Buffer[0]); } else if (Who_Is_Request) { Who_Is_Request = false; - Send_WhoIs(); + Send_WhoIs(-1,-1); } else { diff --git a/bacnet-stack/rp.c b/bacnet-stack/rp.c index 381a293e..e611a483 100644 --- a/bacnet-stack/rp.c +++ b/bacnet-stack/rp.c @@ -82,7 +82,7 @@ int rp_decode_service_request( uint32_t len_value_type = 0; int type = 0; // for decoding int property = 0; // for decoding - unsigned array_value = 0; // for decoding + uint32_t array_value = 0; // for decoding // check for value pointers if (apdu_len && data) @@ -198,7 +198,7 @@ int rp_ack_decode_service_request( int tag_len = 0; // length of tag decode int len = 0; // total length of decodes int object = 0, property = 0; // for decoding - unsigned array_value = 0; // for decoding + uint32_t array_value = 0; // for decoding // FIXME: check apdu_len against the len during decode // Tag 0: Object ID diff --git a/bacnet-stack/rpm.c b/bacnet-stack/rpm.c index 54eb385d..f661f32d 100644 --- a/bacnet-stack/rpm.c +++ b/bacnet-stack/rpm.c @@ -164,7 +164,7 @@ int rpm_decode_object_property( uint8_t tag_number = 0; uint32_t len_value_type = 0; int property = 0; /* for decoding */ - unsigned array_value = 0; /* for decoding */ + uint32_t array_value = 0; /* for decoding */ /* check for valid pointers */ if (apdu && apdu_len && object_property && array_index) @@ -396,7 +396,7 @@ int rpm_ack_decode_object_property( uint8_t tag_number = 0; uint32_t len_value_type = 0; int property = 0; /* for decoding */ - unsigned array_value = 0; /* for decoding */ + uint32_t array_value = 0; /* for decoding */ /* check for valid pointers */ if (apdu && apdu_len && object_property && array_index) diff --git a/bacnet-stack/whois.c b/bacnet-stack/whois.c index 5a18fa26..58537b03 100644 --- a/bacnet-stack/whois.c +++ b/bacnet-stack/whois.c @@ -79,7 +79,7 @@ int whois_decode_service_request( int len = 0; uint8_t tag_number = 0; uint32_t len_value = 0; - unsigned int decoded_value = 0; + uint32_t decoded_value = 0; // optional limits - must be used as a pair if (apdu_len) diff --git a/bacnet-stack/wp.c b/bacnet-stack/wp.c index 46f644ed..8582212b 100644 --- a/bacnet-stack/wp.c +++ b/bacnet-stack/wp.c @@ -88,7 +88,7 @@ int wp_decode_service_request( uint32_t len_value_type = 0; int type = 0; // for decoding int property = 0; // for decoding - unsigned unsigned_value = 0; + uint32_t unsigned_value = 0; // check for value pointers if (apdu_len && data) @@ -143,7 +143,8 @@ int wp_decode_service_request( { len += tag_len; len = decode_unsigned(&apdu[len], len_value_type, &unsigned_value); - data->priority = unsigned_value; + /* FIXME: bounds check */ + data->priority = (uint8_t)unsigned_value; } } }