Fixed Refresh click to clear object and property windows. Added icon. (#1065)
This commit is contained in:
@@ -0,0 +1,193 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
id="svg2"
|
||||||
|
sodipodi:version="0.32"
|
||||||
|
inkscape:version="0.91 r13725"
|
||||||
|
width="81.106468"
|
||||||
|
height="70.240265"
|
||||||
|
version="1.0"
|
||||||
|
sodipodi:docname="BACnet-Icon.svg"
|
||||||
|
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||||
|
inkscape:export-filename="D:\clipart\BACnet\BACnet-Icon.png"
|
||||||
|
inkscape:export-xdpi="397.25562"
|
||||||
|
inkscape:export-ydpi="397.25562">
|
||||||
|
<metadata
|
||||||
|
id="metadata7">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<defs
|
||||||
|
id="defs5">
|
||||||
|
<inkscape:perspective
|
||||||
|
sodipodi:type="inkscape:persp3d"
|
||||||
|
inkscape:vp_x="0 : 526.18109 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||||
|
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||||
|
id="perspective9" />
|
||||||
|
<inkscape:perspective
|
||||||
|
id="perspective3545"
|
||||||
|
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||||
|
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_x="0 : 526.18109 : 1"
|
||||||
|
sodipodi:type="inkscape:persp3d" />
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
inkscape:window-height="776"
|
||||||
|
inkscape:window-width="1166"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
guidetolerance="10.0"
|
||||||
|
gridtolerance="10.0"
|
||||||
|
objecttolerance="10.0"
|
||||||
|
borderopacity="1.0"
|
||||||
|
bordercolor="#666666"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
id="base"
|
||||||
|
showgrid="true"
|
||||||
|
inkscape:zoom="8.6844778"
|
||||||
|
inkscape:cx="23.223464"
|
||||||
|
inkscape:cy="35.120132"
|
||||||
|
inkscape:window-x="198"
|
||||||
|
inkscape:window-y="121"
|
||||||
|
inkscape:current-layer="svg2"
|
||||||
|
inkscape:snap-global="true"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
fit-margin-top="0"
|
||||||
|
fit-margin-left="0"
|
||||||
|
fit-margin-right="0"
|
||||||
|
fit-margin-bottom="0">
|
||||||
|
<inkscape:grid
|
||||||
|
type="xygrid"
|
||||||
|
id="grid3209"
|
||||||
|
visible="true"
|
||||||
|
enabled="true"
|
||||||
|
originx="-21.510189"
|
||||||
|
originy="-179.74785" />
|
||||||
|
</sodipodi:namedview>
|
||||||
|
<g
|
||||||
|
id="g3289"
|
||||||
|
transform="translate(-29.21047,-188.04387)">
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:2.49708986;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
transform="matrix(0.5476842,0,0,0.5476842,-723.61556,329.90577)"
|
||||||
|
d="m 1376.004,-194.89656 36.3016,-62.87624 72.6032,0 36.3016,62.87624 -36.3016,62.87624 -72.6032,0 z"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:arg2="3.6651914"
|
||||||
|
sodipodi:arg1="3.1415927"
|
||||||
|
sodipodi:r2="62.876236"
|
||||||
|
sodipodi:r1="72.603226"
|
||||||
|
sodipodi:cy="-194.89656"
|
||||||
|
sodipodi:cx="1448.6072"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
id="path2437"
|
||||||
|
sodipodi:type="star" />
|
||||||
|
<g
|
||||||
|
transform="translate(31.700281,-79.015259)"
|
||||||
|
id="g3281">
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.01922166;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 27.580969,284.90625 -9.875,17.0625 9.875,17.09375 19.71875,0 9.84375,-17.09375 -9.84375,-17.0625 -19.71875,0 z m 9.84375,8.65625 c 4.653939,0 8.4375,3.82247 8.4375,8.5 -3e-6,4.67753 -3.78356,8.46875 -8.4375,8.46875 -4.653942,0 -8.4375,-3.79122 -8.4375,-8.46875 0,-4.67753 3.78356,-8.5 8.4375,-8.5 z"
|
||||||
|
id="path3211" />
|
||||||
|
<g
|
||||||
|
id="g3278"
|
||||||
|
transform="translate(-32,79.000001)"
|
||||||
|
style="stroke:#ffffff;stroke-opacity:1">
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
d="m 52.012781,223.04724 34.987219,0 0,0 m -26,-15 17,30 m -8.472477,-28.04745 0,25.95459 0,0 M 81,216.04724 l -23,14 m 20,-22 -17,30 m -3,-22 23,14"
|
||||||
|
style="opacity:1;fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
id="path3241" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<circle
|
||||||
|
r="2.5"
|
||||||
|
cy="220.54724"
|
||||||
|
cx="68.5"
|
||||||
|
transform="matrix(0.8074057,0,0,0.8074057,14.19271,45.001782)"
|
||||||
|
id="path3213"
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1.92344439;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
|
</g>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:900;font-stretch:normal;font-size:20px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial, Heavy';text-align:start;writing-mode:lr;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
|
||||||
|
x="32.146084"
|
||||||
|
y="16.538191"
|
||||||
|
id="text3297"
|
||||||
|
sodipodi:linespacing="125%"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan3453">A</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:900;font-stretch:normal;font-size:20px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial, Heavy';text-align:start;writing-mode:lr;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
|
||||||
|
x="41.534122"
|
||||||
|
y="-35.713566"
|
||||||
|
id="text3301"
|
||||||
|
sodipodi:linespacing="125%"
|
||||||
|
transform="matrix(0.5,0.8660254,-0.8660254,0.5,0,0)"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan3455">C</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:900;font-stretch:normal;font-size:20px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial, Heavy';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
x="49.670067"
|
||||||
|
y="64.771278"
|
||||||
|
id="text3307"
|
||||||
|
sodipodi:linespacing="125%"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan3461"
|
||||||
|
x="49.670067"
|
||||||
|
y="64.771278">t</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:900;font-stretch:normal;font-size:20px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial, Heavy';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
x="35.525581"
|
||||||
|
y="64.689491"
|
||||||
|
id="text3313"
|
||||||
|
sodipodi:linespacing="125%"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan3459"
|
||||||
|
x="35.525581"
|
||||||
|
y="64.689491">e</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:900;font-stretch:normal;font-size:20px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial, Heavy';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
x="22.171034"
|
||||||
|
y="64.864128"
|
||||||
|
id="text3319"
|
||||||
|
sodipodi:linespacing="125%"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan3457"
|
||||||
|
x="22.171034"
|
||||||
|
y="64.864128">n</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:900;font-stretch:normal;font-size:20px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial, Heavy';text-align:start;writing-mode:lr;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
|
||||||
|
x="-17.86729"
|
||||||
|
y="33.987972"
|
||||||
|
id="text3325"
|
||||||
|
sodipodi:linespacing="125%"
|
||||||
|
transform="matrix(0.5,-0.8660254,0.8660254,0.5,0,0)"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan3451">B</tspan></text>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 8.2 KiB |
@@ -0,0 +1,16 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Name=BACnet GTK Discovery
|
||||||
|
Comment=Graphical discovery for BACnet devices, objects, and properties
|
||||||
|
Exec=/usr/local/bin/bacdiscover-gtk
|
||||||
|
Icon=network-workgroup
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
Categories=Network;Development;Utility;
|
||||||
|
Keywords=BACnet;Building Automation;HVAC;Industrial;Network;Protocol;
|
||||||
|
StartupNotify=true
|
||||||
|
MimeType=application/x-bacnet;
|
||||||
|
|
||||||
|
# Additional metadata
|
||||||
|
GenericName=BACnet Device Discovery
|
||||||
|
StartupWMClass=bacnet-gtk-discovery
|
||||||
|
X-GNOME-UsesNotifications=true
|
||||||
@@ -0,0 +1,140 @@
|
|||||||
|
/* XPM */
|
||||||
|
static const char *bacnet_icon[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"81 70 64 1 ",
|
||||||
|
" c black",
|
||||||
|
". c #060906090609",
|
||||||
|
"X c gray3",
|
||||||
|
"o c #0D150D150D15",
|
||||||
|
"O c #111B111B111B",
|
||||||
|
"+ c #173C173C173C",
|
||||||
|
"@ c #1B0F1B0F1B0F",
|
||||||
|
"# c #1EFB1EFB1EFB",
|
||||||
|
"$ c #203320332033",
|
||||||
|
"% c #242524252425",
|
||||||
|
"& c #294429442944",
|
||||||
|
"* c #2D412D412D41",
|
||||||
|
"= c gray20",
|
||||||
|
"- c #351035103510",
|
||||||
|
"; c #3A333A333A33",
|
||||||
|
": c #3D623D623D62",
|
||||||
|
"> c #414141414141",
|
||||||
|
", c #477347734773",
|
||||||
|
"< c #4A4C4A4C4A4C",
|
||||||
|
"1 c #4E3E4E3E4E3E",
|
||||||
|
"2 c #503E503E503E",
|
||||||
|
"3 c #54C054C054C0",
|
||||||
|
"4 c #5A665A665A66",
|
||||||
|
"5 c #5F825F825F82",
|
||||||
|
"6 c #606060606060",
|
||||||
|
"7 c #653F653F653F",
|
||||||
|
"8 c #6A6A6A6A6A6A",
|
||||||
|
"9 c #6FC46FC46FC4",
|
||||||
|
"0 c #72B272B272B2",
|
||||||
|
"q c #767376737673",
|
||||||
|
"w c #799279927992",
|
||||||
|
"e c #7DA67DA67DA6",
|
||||||
|
"r c #805B805B805B",
|
||||||
|
"t c #857585758575",
|
||||||
|
"y c #888888888888",
|
||||||
|
"u c #8E968E968E96",
|
||||||
|
"i c #927E927E927E",
|
||||||
|
"p c #946794679467",
|
||||||
|
"a c #9B659B659B65",
|
||||||
|
"s c #9D9E9D9E9D9E",
|
||||||
|
"d c #A0D9A0D9A0D9",
|
||||||
|
"f c #A569A569A569",
|
||||||
|
"g c #ABE1ABE1ABE1",
|
||||||
|
"h c #AEDFAEDFAEDF",
|
||||||
|
"j c #B2C9B2C9B2C9",
|
||||||
|
"k c #B799B799B799",
|
||||||
|
"l c #B97EB97EB97E",
|
||||||
|
"z c gray",
|
||||||
|
"x c #C3ECC3ECC3EC",
|
||||||
|
"c c #C5A4C5A4C5A4",
|
||||||
|
"v c #CBCBCBCBCBCB",
|
||||||
|
"b c #CFB6CFB6CFB6",
|
||||||
|
"n c #D1C2D1C2D1C2",
|
||||||
|
"m c gray83",
|
||||||
|
"M c #DBBFDBBFDBBF",
|
||||||
|
"N c gainsboro",
|
||||||
|
"B c #E0F7E0F7E0F7",
|
||||||
|
"V c #E841E841E841",
|
||||||
|
"C c #EA2BEA2BEA2B",
|
||||||
|
"Z c #EF17EF17EF17",
|
||||||
|
"A c #F200F200F200",
|
||||||
|
"S c #F4EEF4EEF4EE",
|
||||||
|
"D c #FC4BFC4BFC4B",
|
||||||
|
"F c white",
|
||||||
|
/* pixels */
|
||||||
|
"FFFFFFFFFFFFFFFFFFFFx9999999999999999999999999999999999999999xFFFFFFFFFFFFFFFFFFF",
|
||||||
|
"FFFFFFFFFFFFFFFFFFFD DFFFFFFFFFFFFFFFFFF",
|
||||||
|
"FFFFFFFFFFFFFFFFFFFu vFFFFFFFFFFFFFFF* rFFFFFFFFFFFFFFFFFFv uFFFFFFFFFFFFFFFFFF",
|
||||||
|
"FFFFFFFFFFFFFFFFFFV 2FFFFFFFFFFFFFFFm *FFFFFFFFFFFFFFFFFFF1 VFFFFFFFFFFFFFFFFF",
|
||||||
|
"FFFFFFFFFFFFFFFFFF4 VFFFFFFFFFFFFFFFe o mFFFFFFFFFFFFFFFFFFB 4FFFFFFFFFFFFFFFFF",
|
||||||
|
"FFFFFFFFFFFFFFFFFb tFFFFFFFFFFFFFFFF% Xt rFFFFFFFFFFFFFFFFFFFt bFFFFFFFFFFFFFFFF",
|
||||||
|
"FFFFFFFFFFFFFFFFF# SFFFFFFFFFFFFFFFb 2B &FFFFFFFFFFFFFFFFFFFS #FFFFFFFFFFFFFFFF",
|
||||||
|
"FFFFFFFFFFFFFFFFg jFFFFFFFFFFFFFFFFq fF- nFFFFFFFFFFFFFFFFFFFj gFFFFFFFFFFFFFFF",
|
||||||
|
"FFFFFFFFFFFFFFFS %FFFFFFFFFFFFFFFFF# .AFt eFFFFFFFFFFFFFFFFFFFF% SFFFFFFFFFFFFFF",
|
||||||
|
"FFFFFFFFFFFFFFFe nFFFFFFFFFFFFFFFFx <FFM %FFFFFFFFFFFFFFFFFFFFn eFFFFFFFFFFFFFF",
|
||||||
|
"FFFFFFFFFFFFFFB 6FFFFFFFFFFFFFFFFF8 ,tttX nFFFFFFFFFFFFFFFFFFFF6 BFFFFFFFFFFFFF",
|
||||||
|
"FFFFFFFFFFFFFF, CFFFFFFFFFFFFFFFFF+ wFFFFFFFFFFFFFFFFFFFFC <FFFFFFFFFFFFF",
|
||||||
|
"FFFFFFFFFFFFFx pFFFFFFFFFFFFFFFFFl $FFFFFFFFFFFFFFFFFFFFFi cFFFFFFFFFFFF",
|
||||||
|
"FFFFFFFFFFFFDX DFFFFFFFFFFFFFFFFF6 aFFFFF% bFFFFFFFFFFFFFFFAbxNFD XDFFFFFFFFFFF",
|
||||||
|
"FFFFFFFFFFFFs kAFFFFFFFFFFFFFFFFDo CFFFFFw qFFFFFFFFFFFFFz<. &hz sFFFFFFFFFFF",
|
||||||
|
"FFFFFFFFFFFZ o >BFFFFFFFFFFFFFFj >FFFFFFv $FFFFFFFFFFFV1 e; ZFFFFFFFFFF",
|
||||||
|
"FFFFFFFFFFF4 $ZFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFm@ *,% i 9FFFFFFFFFF",
|
||||||
|
"FFFFFFFFFFn *+ aFZZFFFFFFFFzzzzzzzzzzzzzzzzzzzzvFFFFZ# 6mFFFh. +9 MFFFFFFFFF",
|
||||||
|
"FFFFFFFFFF@ eFS: >- -mFFFFFz ZFFF9 OkFFFFFFi a -FFFFFFFFF",
|
||||||
|
"FFFFFFFFFf *FFFy OnFFFF. oX o. 2FFDo lFFFFFFFS. 7d lFFFFFFFF",
|
||||||
|
"FFFFFFFFD zFFF: 2r% 1FFFu df m0 nFn 1FFFFFFFFDX 2Fo DFFFFFFF",
|
||||||
|
"FFFFFFFF9 ,FFFj 4FFA# FFZ @F= % <Fo #Fn eFFFFFFFFs 8Fc uFFFFFFF",
|
||||||
|
"FFFFFFFV 4BD% OCFFF2 .FF3 eM +F .F4 gS. 2FFFFFFFF# lFF1 CFFFFFF",
|
||||||
|
"FFFFFFF4 X X, iFFFAo <Fm XF1 +F 9Z D< .mFFFFFFFp ,FFFB 5FFFFFF",
|
||||||
|
"FFFFFFb rB4 @DFFFq kF$ 3FX +F +F; qv. #jCvAFFFF0AFFFFr bFFFFF",
|
||||||
|
"FFFFFF$ SFFx= ;vFM. :Fg C0 +F al Vi wFFFFFFFFFFS $FFFFF",
|
||||||
|
"FFFFFh hFFFFFs+ 6, bD -F+ +F &F$ >Fe. .NFFFFFFFFFFh hFFFF",
|
||||||
|
"FFFFS %FFFFFFFAq. 7Fq OX ks @5F, by OX vFM01<iCFFFFFFFFFFF$ SFFF",
|
||||||
|
"FFFFr nFFFFFFFFFN2 oCC sF< #FAFFFFFBFo 5F9 OFFFFFFFFFFFFFFFFFFn rFFF",
|
||||||
|
"FFFB 5FFFFFFFFFFFFz* uF> 4Fx$ lFFFFFFFFFw *BF, aFFFFFFFFFFFFFFFFFF5 BFF",
|
||||||
|
"FFF< CFFFFFFFFFFFFFFdDc OpFwlFFFFFFFFFFF0iFeX SFFFFFFFFFFFFFFFFFC <FF",
|
||||||
|
"FFc iFFFFFFFFFFFFFFFFFO =AFFFFFFFFFFFFFv$ 7FFFFFFFFFFFFFFFFFFi cF",
|
||||||
|
"FFX DFFFFFFFFFFFFFFFFa ZFFFFFMfxFFFFFf BFFFFFFFFFFFFFFFFFD XF",
|
||||||
|
"Fs lFFFFFFFFFFFFFFFFA OFFFFFg $DFFFA =FFFFFFFFFFFFFFFFFFl s",
|
||||||
|
"Z ;FFFFFFFFFFFFFFFFF6 O%%%%%%%%%6FFFFD xq sFFFF%%%%%%%%%%X lFFFFFFFFFFFFFFFFFF- ",
|
||||||
|
"p MFFFFFFFFFFFFFFFFF iFFFFFFFFFFFFFFC 7FV 7FFFFFFFFFFFFFF8 1FFFFFFFFFFFFFFFFFFM ",
|
||||||
|
"Z ;FFFFFFFFFFFFFFFFFj :FFFFF u; hFFFF ZFFFFFFFFFFFFFFFFFF- ",
|
||||||
|
"Fs lFFFFFFFFFFFFFFFFF% FFFFFc 6FFFFV rFFFFFFFFFFFFFFFFFFl s",
|
||||||
|
"FFX DFFFFFFFFFFFFFFFFM MFFFFFSnVFFFFFu DFFFFFFFFFFFFFFFFFD XF",
|
||||||
|
"FFc iFFFFFFFFFFFFFFFFF4 .9FFFFFFFFFFFFFFF4 kFFFFFFFFFFFFFFFFFFi cF",
|
||||||
|
"FFF< CFFFFFFFFFFFFFFFFA ;FS-eFFFFFFFFFFF*,FN& &FFFFFFFFFFFFFFFFFFC <FF",
|
||||||
|
"FFFB 5FFFFFFFFFFFFFFFFFi +gF8. 0FFFFFFFFD* XrFuo MFFFFFFFFFFFFFFFFFF5 BFF",
|
||||||
|
"FFFFr nFFFFFFFFFFFFFFFFFX pj@ ;FlSFFFCsF$ %b9 4FFFFFFFFFFFFFFFFFFn rFFF",
|
||||||
|
"FFFFS %FFFFFFFFFFFFFFFFFx A9 +F pz AFFFFFFFFFFFFFFFFFF$ SFFF",
|
||||||
|
"FFFFFh hFFFFFFFFFFFFFFFFF- 4F. +F OF: iFFFFFFFFFFFFFFFFFFh hFFFF",
|
||||||
|
"FFFFFF$ SFFFFFFFFFFFFFFFFB oF< +F 8S XFFFFFFFFFFFFFFFFFFS $FFFFF",
|
||||||
|
"FFFFFFb rFFFFFFFFFFFFFFFFF9 rm +F .F5 zFFFFFFFFFFFFFFFFFFr bFFFFF",
|
||||||
|
"FFFFFFF5 BFFFFFFFFFFFFFFFFS #F* +F <Fo -FFFFFFFFFFFFFFFFFFB 5FFFFFF",
|
||||||
|
"FFFFFFFC 1FFFFFFFFFFFFFFFFFd jd oS nt BFFFFFFFFFFFFFFFFFF1 CFFFFFF",
|
||||||
|
"FFFFFFFFu cFFFFFFFFFFFFFFFFF+ -F+ &F# 8FFFFFFFFFFFFFFFFFFc uFFFFFFF",
|
||||||
|
"FFFFFFFFD oFFFFFFFFFFFFFFFFFb pq s8 SFFFFFFFFFFFFFFFFFFo DFFFFFFF",
|
||||||
|
"FFFFFFFFFl dFFFFFFFFFFFFFFFFF< 9&&sFFFFFFFFFFFFFFFd lFFFFFFFF",
|
||||||
|
"FFFFFFFFFF- AFFFFFFFFFFFFFFFFC Of uFFFFFFFFFFFFFFA -FFFFFFFFF",
|
||||||
|
"FFFFFFFFFFM 0FFFFFFFFFFFFFFFFFFFFFFFFZ9-O*eZFFFFFFFg uFFFFFFFFFFFFFF0 MFFFFFFFFF",
|
||||||
|
"FFFFFFFFFFF9 MFFFFFFFFF,XXAe-+:kFFFFn@ $NFFFFF<. .XFFFFFFFFFFFFM 9FFFFFFFFFF",
|
||||||
|
"FFFFFFFFFFFZ ;FFFFFFFFF> 2 zFFF; otct :FFFFF3o o@FFFFFFFFFFFF; ZFFFFFFFFFF",
|
||||||
|
"FFFFFFFFFFFFs zFFFFFFFF> X8w$ 1FFx yFFF> bFFFFFg uFFFFFFFFFFFFz sFFFFFFFFFFF",
|
||||||
|
"FFFFFFFFFFFFD. DFFFFFFF> gFFm %FFp #***+ aFFFFFg uFFFFFFFFFFFD XFFFFFFFFFFFF",
|
||||||
|
"FFFFFFFFFFFFFx pFFFFFFF> ZFFFO @FFw yFFFFFg uFFFFFFFFFFFi xFFFFFFFFFFFF",
|
||||||
|
"FFFFFFFFFFFFFF, CFFFFFF> SFFF@ @FFp kFFFFFFFFFFFFg uFFFFFFFFFFC <FFFFFFFFFFFFF",
|
||||||
|
"FFFFFFFFFFFFFFB 6FFFFFF> SFFF@ @FFx tFFFkttBFFFFFg uFFFFFFFFFF6 BFFFFFFFFFFFFF",
|
||||||
|
"FFFFFFFFFFFFFFFe nFFFFF> SFFF@ @FFF= Xani. $FFFFFFg yFFFFFFFFFn eFFFFFFFFFFFFFF",
|
||||||
|
"FFFFFFFFFFFFFFFA %FFFFF> SFFF@ @FFFcO +nFFFFFFh 1MFFFFFFFF% SFFFFFFFFFFFFFF",
|
||||||
|
"FFFFFFFFFFFFFFFFg jFFFF> SFFF@ @FFFFB5&X&0VFFFFFFFM FFFFFFFj gFFFFFFFFFFFFFFF",
|
||||||
|
"FFFFFFFFFFFFFFFFF# SFFF> SFFF@ @FFFFFFFFFFFFFFFFFFFp#X%FFFFFFS #FFFFFFFFFFFFFFFF",
|
||||||
|
"FFFFFFFFFFFFFFFFFb tFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFt bFFFFFFFFFFFFFFFF",
|
||||||
|
"FFFFFFFFFFFFFFFFFF4 BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB 4FFFFFFFFFFFFFFFFF",
|
||||||
|
"FFFFFFFFFFFFFFFFFFV 2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 VFFFFFFFFFFFFFFFFF",
|
||||||
|
"FFFFFFFFFFFFFFFFFFFu vFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFv uFFFFFFFFFFFFFFFFFF",
|
||||||
|
"FFFFFFFFFFFFFFFFFFFD DFFFFFFFFFFFFFFFFFF"
|
||||||
|
};
|
||||||
Executable
+143
@@ -0,0 +1,143 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Install script for BACnet GTK Discovery
|
||||||
|
# This script helps install the necessary dependencies and build the application
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
echo "BACnet GTK Discovery - Installation Script"
|
||||||
|
echo "========================================="
|
||||||
|
|
||||||
|
# Function to detect the Linux distribution
|
||||||
|
detect_distro() {
|
||||||
|
if [ -f /etc/os-release ]; then
|
||||||
|
. /etc/os-release
|
||||||
|
echo $ID
|
||||||
|
elif [ -f /etc/debian_version ]; then
|
||||||
|
echo "debian"
|
||||||
|
elif [ -f /etc/redhat-release ]; then
|
||||||
|
echo "rhel"
|
||||||
|
else
|
||||||
|
echo "unknown"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to install GTK dependencies
|
||||||
|
install_gtk_deps() {
|
||||||
|
local distro=$(detect_distro)
|
||||||
|
|
||||||
|
echo "Detected distribution: $distro"
|
||||||
|
echo "Installing GTK+ 3.0 development libraries..."
|
||||||
|
|
||||||
|
case $distro in
|
||||||
|
ubuntu|debian|linuxmint)
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y libgtk-3-dev pkg-config build-essential
|
||||||
|
;;
|
||||||
|
fedora)
|
||||||
|
sudo dnf install -y gtk3-devel pkgconfig gcc make
|
||||||
|
;;
|
||||||
|
rhel|centos)
|
||||||
|
sudo yum install -y gtk3-devel pkgconfig gcc make
|
||||||
|
;;
|
||||||
|
opensuse|suse)
|
||||||
|
sudo zypper install -y gtk3-devel pkg-config gcc make
|
||||||
|
;;
|
||||||
|
arch|manjaro)
|
||||||
|
sudo pacman -S --needed gtk3 pkgconfig gcc make
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unknown distribution. Please install GTK+ 3.0 development libraries manually."
|
||||||
|
echo "Required packages: gtk3-devel (or libgtk-3-dev), pkgconfig, gcc, make"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to check if GTK is available
|
||||||
|
check_gtk() {
|
||||||
|
if pkg-config --exists gtk+-3.0; then
|
||||||
|
echo "GTK+ 3.0 development libraries are available."
|
||||||
|
echo "Version: $(pkg-config --modversion gtk+-3.0)"
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
echo "GTK+ 3.0 development libraries are not available."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to build the GTK application
|
||||||
|
build_gtk_app() {
|
||||||
|
echo "Building BACnet GTK Discovery..."
|
||||||
|
|
||||||
|
# Default to BACnet/IP
|
||||||
|
DATALINK=${1:-bip}
|
||||||
|
|
||||||
|
make -C ../../ clean || true
|
||||||
|
make -C ../../ gtk-discover BACDL=$DATALINK
|
||||||
|
|
||||||
|
if [ -f "./bacdiscover-gtk" ]; then
|
||||||
|
echo "BACnet GTK Discovery built successfully!"
|
||||||
|
echo "Run with: ./bacdiscover-gtk"
|
||||||
|
else
|
||||||
|
echo "Build failed. Please check the error messages above."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Main installation process
|
||||||
|
main() {
|
||||||
|
echo "Checking for GTK+ 3.0 development libraries..."
|
||||||
|
|
||||||
|
if ! check_gtk; then
|
||||||
|
echo "GTK+ 3.0 development libraries not found."
|
||||||
|
read -p "Do you want to install them automatically? (y/n): " -n 1 -r
|
||||||
|
echo
|
||||||
|
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||||
|
install_gtk_deps
|
||||||
|
if ! check_gtk; then
|
||||||
|
echo "Failed to install GTK+ 3.0 development libraries."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "Please install GTK+ 3.0 development libraries manually and run this script again."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Ask user for datalink type
|
||||||
|
echo ""
|
||||||
|
echo "Choose BACnet datalink type:"
|
||||||
|
echo "1) BACnet/IP (default)"
|
||||||
|
echo "2) MS/TP (Master-Slave/Token-Passing)"
|
||||||
|
echo "3) Ethernet"
|
||||||
|
echo ""
|
||||||
|
read -p "Enter choice (1-3) [default: 1]: " choice
|
||||||
|
|
||||||
|
case $choice in
|
||||||
|
2)
|
||||||
|
DATALINK="mstp"
|
||||||
|
;;
|
||||||
|
3)
|
||||||
|
DATALINK="ethernet"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
DATALINK="bip"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
echo "Building with datalink: $DATALINK"
|
||||||
|
build_gtk_app $DATALINK
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "Installation completed successfully!"
|
||||||
|
echo ""
|
||||||
|
echo "To run the application:"
|
||||||
|
echo " ./bacdiscover-gtk"
|
||||||
|
echo ""
|
||||||
|
echo "To install system-wide:"
|
||||||
|
echo " sudo make install"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Run main function
|
||||||
|
main "$@"
|
||||||
@@ -36,6 +36,8 @@
|
|||||||
#include "bacnet/basic/tsm/tsm.h"
|
#include "bacnet/basic/tsm/tsm.h"
|
||||||
#include "bacnet/datalink/datalink.h"
|
#include "bacnet/datalink/datalink.h"
|
||||||
#include "bacnet/datalink/dlenv.h"
|
#include "bacnet/datalink/dlenv.h"
|
||||||
|
/* Used ImageMagick: convert BACnet-Icon.svg bacnet-icon.xpm */
|
||||||
|
#include "bacnet-icon.xpm"
|
||||||
|
|
||||||
/* Global variables */
|
/* Global variables */
|
||||||
static GtkWidget *main_window;
|
static GtkWidget *main_window;
|
||||||
@@ -372,6 +374,8 @@ static void on_refresh_clicked(GtkButton *button, gpointer data)
|
|||||||
(void)data; /* unused parameter */
|
(void)data; /* unused parameter */
|
||||||
|
|
||||||
gtk_list_store_clear(device_store);
|
gtk_list_store_clear(device_store);
|
||||||
|
gtk_list_store_clear(object_store);
|
||||||
|
gtk_list_store_clear(property_store);
|
||||||
process_discovered_devices();
|
process_discovered_devices();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -517,6 +521,7 @@ static void create_main_window(void)
|
|||||||
GtkWidget *scrolled_window;
|
GtkWidget *scrolled_window;
|
||||||
GtkWidget *discover_button, *refresh_button;
|
GtkWidget *discover_button, *refresh_button;
|
||||||
GtkToolItem *tool_item;
|
GtkToolItem *tool_item;
|
||||||
|
GdkPixbuf *icon_pixbuf;
|
||||||
|
|
||||||
/* Create main window */
|
/* Create main window */
|
||||||
main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
|
main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
|
||||||
@@ -524,6 +529,12 @@ static void create_main_window(void)
|
|||||||
gtk_window_set_default_size(GTK_WINDOW(main_window), 1200, 800);
|
gtk_window_set_default_size(GTK_WINDOW(main_window), 1200, 800);
|
||||||
gtk_container_set_border_width(GTK_CONTAINER(main_window), 5);
|
gtk_container_set_border_width(GTK_CONTAINER(main_window), 5);
|
||||||
|
|
||||||
|
/* set the icon */
|
||||||
|
icon_pixbuf = gdk_pixbuf_new_from_xpm_data(bacnet_icon);
|
||||||
|
if (icon_pixbuf) {
|
||||||
|
gtk_window_set_icon(GTK_WINDOW(main_window), icon_pixbuf);
|
||||||
|
}
|
||||||
|
|
||||||
/* Connect destroy signal */
|
/* Connect destroy signal */
|
||||||
g_signal_connect(main_window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
|
g_signal_connect(main_window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
|
||||||
|
|
||||||
@@ -670,7 +681,7 @@ static void bacnet_server_init(void)
|
|||||||
mstimer_set(&BACnet_TSM_Timer, 50);
|
mstimer_set(&BACnet_TSM_Timer, 50);
|
||||||
|
|
||||||
/* Start BACnet background processing */
|
/* Start BACnet background processing */
|
||||||
bacnet_timeout_id = g_timeout_add(100, bacnet_task_timeout, NULL);
|
bacnet_timeout_id = g_timeout_add(10, bacnet_task_timeout, NULL);
|
||||||
|
|
||||||
bacnet_initialized = true;
|
bacnet_initialized = true;
|
||||||
printf("BACnet Stack initialized\n");
|
printf("BACnet Stack initialized\n");
|
||||||
|
|||||||
Reference in New Issue
Block a user