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/datalink/datalink.h"
|
||||
#include "bacnet/datalink/dlenv.h"
|
||||
/* Used ImageMagick: convert BACnet-Icon.svg bacnet-icon.xpm */
|
||||
#include "bacnet-icon.xpm"
|
||||
|
||||
/* Global variables */
|
||||
static GtkWidget *main_window;
|
||||
@@ -372,6 +374,8 @@ static void on_refresh_clicked(GtkButton *button, gpointer data)
|
||||
(void)data; /* unused parameter */
|
||||
|
||||
gtk_list_store_clear(device_store);
|
||||
gtk_list_store_clear(object_store);
|
||||
gtk_list_store_clear(property_store);
|
||||
process_discovered_devices();
|
||||
}
|
||||
|
||||
@@ -517,6 +521,7 @@ static void create_main_window(void)
|
||||
GtkWidget *scrolled_window;
|
||||
GtkWidget *discover_button, *refresh_button;
|
||||
GtkToolItem *tool_item;
|
||||
GdkPixbuf *icon_pixbuf;
|
||||
|
||||
/* Create main window */
|
||||
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_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 */
|
||||
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);
|
||||
|
||||
/* 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;
|
||||
printf("BACnet Stack initialized\n");
|
||||
|
||||
Reference in New Issue
Block a user