Beide Seiten der vorigen Revision
Vorhergehende Überarbeitung
|
Letzte Überarbeitung
Beide Seiten der Revision
|
xojo:info:constants [2021/04/24 18:23] mz |
xojo:info:constants [2021/04/26 09:37] mz |
| |
| &&XML&& |
| |
| <?xml version="1.0" encoding="UTF-8"?> |
| <RBProject version="2021r1" FormatVersion="2" MinIDEVersion="20070100"> |
| <block type="Module" ID="1757749247"> |
| <ObjName>KNXnetIP_client</ObjName> |
| <ObjContainerID>813438975</ObjContainerID> |
| <IsClass>1</IsClass> |
| <Superclass>UDPSocket</Superclass> |
| <ItemFlags>0</ItemFlags> |
| <IsInterface>0</IsInterface> |
| <Compatibility></Compatibility> |
| <HookInstance> |
| <ItemName>DataAvailable</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>2140579839</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub DataAvailable()</SourceLine> |
| <SourceLine>do until me.PacketsAvailable = 0</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>IncomingFrame(me.Read) // process received datagram</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>loop</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| </HookInstance> |
| <Method> |
| <ItemName>Open</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1375277055</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Open()</SourceLine> |
| <SourceLine>self.Port = k_KNXnetIP_PortNumber</SourceLine> |
| <SourceLine>self.RouterHops = 32</SourceLine> |
| <SourceLine>self.SendToSelf = False</SourceLine> |
| <SourceLine>self.Connect</SourceLine> |
| <SourceLine>mMulticastStatus = self.JoinMulticastGroup(k_KNXnetIP_SystemSetupMulticastAddress)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams></ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>IncomingFrame</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1630824447</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub IncomingFrame(rxd As Datagram)</SourceLine> |
| <SourceLine>// incoming Datagram</SourceLine> |
| <SourceLine>print RepeatChar("=", kLogWidth)</SourceLine> |
| <SourceLine>print "From " + rxd.Address + ":" + rxd.Port.ToString + " received " + rxd.Data.Bytes.ToString + " Bytes"</SourceLine> |
| <SourceLine>dump rxd.Data</SourceLine> |
| <SourceLine>print</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// extract frame header</SourceLine> |
| <SourceLine>var header as s_FRAME_HEADER</SourceLine> |
| <SourceLine>header.StringValue(k_BIG_ENDIAN) = rxd.Data.LeftBytes(header.Size)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// check for valid KNXnet/IP frame</SourceLine> |
| <SourceLine>if header.Header_Length = k_HEADER_SIZE_10 and header.Protocol_Version = k_KNXnetIP_VERSION_10 then</SourceLine> |
| <SourceLine>print "---- Frame Header ----"</SourceLine> |
| <SourceLine>print "Header len: " + header.Header_Length.ToString</SourceLine> |
| <SourceLine>print "Proto Ver: " + header.Protocol_Version.ToHex(2)</SourceLine> |
| <SourceLine>print "Service Type: " + header.Service_Type.ToHex(4)</SourceLine> |
| <SourceLine>print "Total len: " + header.Total_Length.ToString + " (actual len = " + rxd.Data.Bytes.ToString + ")"</SourceLine> |
| <SourceLine>if header.Total_Length <> rxd.Data.Bytes then print "**** WARNING: len contradictory ! ****"</SourceLine> |
| <SourceLine>print</SourceLine> |
| <SourceLine>else</SourceLine> |
| <SourceLine>print "UNKNOWN frame. discarding..." // discard</SourceLine> |
| <SourceLine>print</SourceLine> |
| <SourceLine>Return</SourceLine> |
| <SourceLine>end if</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// process known Services</SourceLine> |
| <SourceLine>var body as String = rxd.Data.MiddleBytes(header.Header_Length)</SourceLine> |
| <SourceLine>Select Case header.Service_Type</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>case uint16(e_ServiceType.SEARCH_RESPONSE)</SourceLine> |
| <SourceLine>print "SEARCH_RESPONSE"</SourceLine> |
| <SourceLine>Search_Response(body)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>case uint16(e_ServiceType.DESCRIPTION_RESPONSE)</SourceLine> |
| <SourceLine>print "DESCRIPTION_RESPONSE"</SourceLine> |
| <SourceLine>Description_Response(body)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>case uint16(e_ServiceType.CONNECT_RESPONSE)</SourceLine> |
| <SourceLine>Connection.Rx_CONNECT_RESPONSE(rxd.Data)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>case uint16(e_ServiceType.CONNECTIONSTATE_RESPONSE)</SourceLine> |
| <SourceLine>print "CONNECTIONSTATE_RESPONSE"</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>case uint16(e_ServiceType.TUNNELING_REQUEST)</SourceLine> |
| <SourceLine>print "TUNNELING_REQUEST"</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>case uint16(e_ServiceType.TUNNELING_ACK)</SourceLine> |
| <SourceLine>print "TUNNELING_ACK"</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>case uint16(e_ServiceType.DISCONNECT_REQUEST)</SourceLine> |
| <SourceLine>print "DISCONNECT_REQUEST"</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>case uint16(e_ServiceType.DISCONNECT_RESPONSE)</SourceLine> |
| <SourceLine>Connection.Rx_DISCONNECT_RESPONSE(rxd.Data)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>else</SourceLine> |
| <SourceLine>print "UNKNOWN Service Type. discarding..."</SourceLine> |
| <SourceLine>print</SourceLine> |
| <SourceLine>Return</SourceLine> |
| <SourceLine>end select</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>33</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams>rxd As Datagram</ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Search_Request</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1776386047</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Search_Request()</SourceLine> |
| <SourceLine>if not self.IsConnected then Return // we need an open port</SourceLine> |
| <SourceLine>if Search_Waiting then Return // search already running</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// clear results array</SourceLine> |
| <SourceLine>DIB_Search_Responses.RemoveAll</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// prepare request</SourceLine> |
| <SourceLine>var frame As s_SEARCH_REQUEST</SourceLine> |
| <SourceLine>frame.Frame_Header = FRAME_HEADER_struct(uint16(e_ServiceType.SEARCH_REQUEST), frame.Size)</SourceLine> |
| <SourceLine>frame.Discovery_Endpoint = HPAI_struct(self.LocalAddress, self.Port, uint8(e_HostProtocol.IPV4_UDP))</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// start timer and enable receiver</SourceLine> |
| <SourceLine>Search_Waiting = True</SourceLine> |
| <SourceLine>Timer.CallLater(k_SEARCH_REQUEST_TIMEOUT * 1000, AddressOf Search_Timeout)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// send</SourceLine> |
| <SourceLine>self.Write(k_KNXnetIP_SystemSetupMulticastAddress, frame.StringValue(k_BIG_ENDIAN))</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams></ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Search_Response</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1695733759</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Search_Response(body as String)</SourceLine> |
| <SourceLine>if not Search_Waiting then Return</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>var i as Integer = 0 // reading index</SourceLine> |
| <SourceLine>var h As s_DIB_HEADER</SourceLine> |
| <SourceLine>var dib as new c_DIB_Search</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// get HPAI block</SourceLine> |
| <SourceLine>dib.HPAI.StringValue(k_BIG_ENDIAN) = body.MiddleBytes(i, s_HPAI.Size)</SourceLine> |
| <SourceLine>i = i + s_HPAI.Size</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>print "Server Control Endpoint: " + IPV4_ADDR_string(dib.HPAI.IP_Address) + ":" + dib.HPAI.IP_Port_Number.ToString + _</SourceLine> |
| <SourceLine>" " + if(dib.HPAI.Host_Protocol_Code = 1, "UDP", "TCP")</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// get DEVICE_INFO block</SourceLine> |
| <SourceLine>h.StringValue(k_BIG_ENDIAN) = body.MiddleBytes(i, s_DIB_HEADER.Size) // ASSERT: len = &h36, typecode = &h01</SourceLine> |
| <SourceLine>i = i + s_DIB_HEADER.Size</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>dib.DEVICE_INFO.StringValue(k_BIG_ENDIAN) = body.MiddleBytes(i, s_DIB_DEVICE_INFO.Size)</SourceLine> |
| <SourceLine>i = i + s_DIB_DEVICE_INFO.Size</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>print "Name: " + dib.DEVICE_INFO.Device_Friendly_Name</SourceLine> |
| <SourceLine>print "KNX IA: " + KNX_IA_string(dib.DEVICE_INFO.KNX_Individual_Address)</SourceLine> |
| <SourceLine>print "Medium: " + dib.DEVICE_INFO.KNX_Medium.ToHex(2)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// get SUPP_SVC_FAMILIES</SourceLine> |
| <SourceLine>h.StringValue(k_BIG_ENDIAN) = body.MiddleBytes(i, s_DIB_HEADER.Size) // ASSERT: typecode = &h02</SourceLine> |
| <SourceLine>i = i + s_DIB_HEADER.Size</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>var n as Integer</SourceLine> |
| <SourceLine>n = (h.Structure_Length - s_DIB_HEADER.Size) / s_DIB_SUPP_SVC_FAMILIES_ITEM.Size</SourceLine> |
| <SourceLine>for j as Integer = 1 to n</SourceLine> |
| <SourceLine>var fi as s_DIB_SUPP_SVC_FAMILIES_ITEM</SourceLine> |
| <SourceLine>fi.StringValue(k_BIG_ENDIAN) = body.MiddleBytes(i, s_DIB_SUPP_SVC_FAMILIES_ITEM.Size)</SourceLine> |
| <SourceLine>dib.SUPP_SVC_FAMILIES.Add(fi)</SourceLine> |
| <SourceLine>i = i + s_DIB_SUPP_SVC_FAMILIES_ITEM.Size</SourceLine> |
| <SourceLine>next</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>DIB_Search_Responses.Add(dib)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>33</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams>body as String</ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>MulticastStatus</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>406990847</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Function MulticastStatus() As Boolean</SourceLine> |
| <SourceLine>return mMulticastStatus</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Function</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams></ItemParams> |
| <ItemResult>Boolean</ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Print_Status</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>452614143</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Print_Status()</SourceLine> |
| <SourceLine>print RepeatChar("-", kLogWidth)</SourceLine> |
| <SourceLine>print if(IsConnected, "Listening enabled", "*** OFFLINE ***")</SourceLine> |
| <SourceLine>print if(mMulticastStatus, "Multicast Rx enabled", "*** Multicast OFF ***")</SourceLine> |
| <SourceLine>print</SourceLine> |
| <SourceLine>print "Local Address: " + LocalAddress</SourceLine> |
| <SourceLine>print "Local Port: " + Port.ToString</SourceLine> |
| <SourceLine>print "Broadcast Addr: " + BroadcastAddress</SourceLine> |
| <SourceLine>print "Multicast Addr: " + k_KNXnetIP_SystemSetupMulticastAddress</SourceLine> |
| <SourceLine>if NetworkInterface = nil then</SourceLine> |
| <SourceLine>print "Interface: nil"</SourceLine> |
| <SourceLine>else</SourceLine> |
| <SourceLine>print "Interface Name: " + NetworkInterface.Name</SourceLine> |
| <SourceLine>print "Interface Addr: " + NetworkInterface.IPAddress</SourceLine> |
| <SourceLine>print "Interface Subnet: " + NetworkInterface.SubnetMask</SourceLine> |
| <SourceLine>print "Interface MAC: " + NetworkInterface.MACAddress</SourceLine> |
| <SourceLine>end if</SourceLine> |
| <SourceLine>print "TTL: " + RouterHops.ToString</SourceLine> |
| <SourceLine>print "Echo: " + SendToSelf.ToString</SourceLine> |
| <SourceLine>print "Packets Avail: " + PacketsAvailable.ToString</SourceLine> |
| <SourceLine>print</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams></ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Search_Timeout</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1401505791</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Search_Timeout()</SourceLine> |
| <SourceLine>Search_Waiting = False</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>33</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams></ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Description_Request</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>826865663</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Description_Request(serverIP as string)</SourceLine> |
| <SourceLine>if not self.IsConnected then Return // we need an open port</SourceLine> |
| <SourceLine>if Description_Waiting then Return // description already running</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// prepare request</SourceLine> |
| <SourceLine>var frame As s_DESCRIPTION_REQUEST</SourceLine> |
| <SourceLine>frame.Frame_Header = FRAME_HEADER_struct(uint16(e_ServiceType.DESCRIPTION_REQUEST), frame.Size)</SourceLine> |
| <SourceLine>frame.Control_Endpoint = HPAI_struct(self.LocalAddress, self.Port, uint8(e_HostProtocol.IPV4_UDP))</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// start timer and enable receiver</SourceLine> |
| <SourceLine>Description_Waiting = True</SourceLine> |
| <SourceLine>Timer.CallLater(k_DESCRIPTION_REQUEST_TIMEOUT * 1000, AddressOf Description_Timeout)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// send</SourceLine> |
| <SourceLine>self.Write(serverIP, frame.StringValue(k_BIG_ENDIAN))</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams>serverIP as string</ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Description_Response</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>2089555967</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Description_Response(body as String)</SourceLine> |
| <SourceLine>if not Description_Waiting then Return </SourceLine> |
| <SourceLine>Description_Waiting = False</SourceLine> |
| <SourceLine>Timer.CancelCallLater(AddressOf Description_Timeout)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>var i as Integer = 0 // reading body index</SourceLine> |
| <SourceLine>var h As s_DIB_HEADER</SourceLine> |
| <SourceLine>var b as string // current block</SourceLine> |
| <SourceLine>var n as Integer // struct len</SourceLine> |
| <SourceLine>var dib as new c_DIB_Description</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>do</SourceLine> |
| <SourceLine>// get header</SourceLine> |
| <SourceLine>h.StringValue(k_BIG_ENDIAN) = body.MiddleBytes(i, s_DIB_HEADER.Size)</SourceLine> |
| <SourceLine>i = i + s_DIB_HEADER.Size</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// process typecode</SourceLine> |
| <SourceLine>select case h.Description_Type_Code</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>case uint8(e_DIB_Type.DEVICE_INFO)</SourceLine> |
| <SourceLine>// ASSERT: h.Structure_Length == s_DIB_HEADER.Size + s_DIB_DEVICE_INFO.Size</SourceLine> |
| <SourceLine>dib.DEVICE_INFO.StringValue(k_BIG_ENDIAN) = body.MiddleBytes(i, s_DIB_DEVICE_INFO.Size)</SourceLine> |
| <SourceLine>i = i + s_DIB_DEVICE_INFO.Size</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>case uint8(e_DIB_Type.SUPP_SVC_FAMILIES)</SourceLine> |
| <SourceLine>n = (h.Structure_Length - s_DIB_HEADER.Size) / s_DIB_SUPP_SVC_FAMILIES_ITEM.Size</SourceLine> |
| <SourceLine>for j as Integer = 1 to n</SourceLine> |
| <SourceLine>var fi as s_DIB_SUPP_SVC_FAMILIES_ITEM</SourceLine> |
| <SourceLine>fi.StringValue(k_BIG_ENDIAN) = body.MiddleBytes(i, s_DIB_SUPP_SVC_FAMILIES_ITEM.Size)</SourceLine> |
| <SourceLine>i = i + s_DIB_SUPP_SVC_FAMILIES_ITEM.Size</SourceLine> |
| <SourceLine>dib.SUPP_SVC_FAMILIES.Add(fi)</SourceLine> |
| <SourceLine>next</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>case uint8(e_DIB_Type.IP_CONFIG)</SourceLine> |
| <SourceLine>// ASSERT: h.Structure_Length == s_DIB_HEADER.Size + s_DIB_IP_CONFIG.Size</SourceLine> |
| <SourceLine>dib.IP_CONFIG.StringValue(k_BIG_ENDIAN) = body.MiddleBytes(i, s_DIB_IP_CONFIG.Size)</SourceLine> |
| <SourceLine>i = i + s_DIB_IP_CONFIG.Size</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>case uint8(e_DIB_Type.IP_CUR_CONFIG)</SourceLine> |
| <SourceLine>// ASSERT: h.Structure_Length == s_DIB_HEADER.Size + s_DIB_IP_CUR_CONFIG.Size</SourceLine> |
| <SourceLine>dib.IP_CUR_CONFIG.StringValue(k_BIG_ENDIAN) = body.MiddleBytes(i, s_DIB_IP_CUR_CONFIG.Size)</SourceLine> |
| <SourceLine>i = i + s_DIB_IP_CUR_CONFIG.Size</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>case uint8(e_DIB_Type.KNX_ADDRESSES)</SourceLine> |
| <SourceLine>n = (h.Structure_Length - s_DIB_HEADER.Size) / s_DIB_KNX_ADDRESSES_ITEM.Size</SourceLine> |
| <SourceLine>for j as Integer = 1 to n</SourceLine> |
| <SourceLine>var ki as s_DIB_KNX_ADDRESSES_ITEM</SourceLine> |
| <SourceLine>ki.StringValue(k_BIG_ENDIAN) = body.MiddleBytes(i, s_DIB_KNX_ADDRESSES_ITEM.Size)</SourceLine> |
| <SourceLine>i = i + s_DIB_KNX_ADDRESSES_ITEM.Size</SourceLine> |
| <SourceLine>dib.KNX_ADDRESSES.Add(ki)</SourceLine> |
| <SourceLine>next</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>case uint8(e_DIB_Type.MFR_DATA)</SourceLine> |
| <SourceLine>dib.MFR_DATA.StringValue(k_BIG_ENDIAN) = body.MiddleBytes(i, s_DIB_MFR_DATA.Size)</SourceLine> |
| <SourceLine>i = i + s_DIB_MFR_DATA.Size</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>n = h.Structure_Length - s_DIB_HEADER.Size - s_DIB_MFR_DATA.Size</SourceLine> |
| <SourceLine>dib.MFR_DATA_SPEC = body.MiddleBytes(i, n)</SourceLine> |
| <SourceLine>i = i + n</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>else // unknown</SourceLine> |
| <SourceLine>i = i + h.Structure_Length - s_DIB_HEADER.Size</SourceLine> |
| <SourceLine>print "*** UNKNOWN DIB found"</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>end select</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>loop until i >= body.Bytes</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>DIB_Description_Response = dib</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>33</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams>body as String</ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Description_Timeout</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1078249471</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Description_Timeout()</SourceLine> |
| <SourceLine>Description_Waiting = False</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>33</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams></ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Constructor</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>735172607</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Constructor()</SourceLine> |
| <SourceLine>// Calling the overridden superclass constructor.</SourceLine> |
| <SourceLine>// Note that this may need modifications if there are multiple constructor choices.</SourceLine> |
| <SourceLine>// Possible constructor calls:</SourceLine> |
| <SourceLine>// Constructor() -- From UDPSocket</SourceLine> |
| <SourceLine>// Constructor() -- From SocketCore</SourceLine> |
| <SourceLine>Super.Constructor</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>knx_CONNECT = new c_CONNECT</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams></ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Property> |
| <ItemName>mMulticastStatus</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1998583807</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>mMulticastStatus As Boolean</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>mMulticastStatus As Boolean</ItemDeclaration> |
| <ItemFlags>33</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>DIB_Search_Responses()</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>461461503</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>DIB_Search_Responses() As c_DIB_Search</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>DIB_Search_Responses() As c_DIB_Search</ItemDeclaration> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>mSearch_Waiting</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>55275519</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>mSearch_Waiting As Boolean</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>mSearch_Waiting As Boolean</ItemDeclaration> |
| <ItemFlags>33</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>Search_Waiting</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>424878079</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Search_Waiting As Boolean</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>Search_Waiting As Boolean</ItemDeclaration> |
| <ItemFlags>33</ItemFlags> |
| <IsShared>0</IsShared> |
| <SetAccessor> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Set</SourceLine> |
| <SourceLine>mSearch_Waiting = value</SourceLine> |
| <SourceLine>print "*** SEARCHING " + if(mSearch_Waiting, "ON", "OFF")</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Set</SourceLine> |
| </SetAccessor> |
| <GetAccessor> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Get</SourceLine> |
| <SourceLine>Return mSearch_Waiting</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Get</SourceLine> |
| </GetAccessor> |
| </Property> |
| <Property> |
| <ItemName>DIB_Description_Response</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>620322815</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>DIB_Description_Response As c_DIB_Description</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>DIB_Description_Response As c_DIB_Description</ItemDeclaration> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>mDescription_Waiting</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>887973887</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>mDescription_Waiting As Boolean</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>mDescription_Waiting As Boolean</ItemDeclaration> |
| <ItemFlags>33</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>Description_Waiting</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1375510527</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Description_Waiting As Boolean</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>Description_Waiting As Boolean</ItemDeclaration> |
| <ItemFlags>33</ItemFlags> |
| <IsShared>0</IsShared> |
| <SetAccessor> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Set</SourceLine> |
| <SourceLine>mDescription_Waiting = value</SourceLine> |
| <SourceLine>print "*** DESCRIPTION " + if(mDescription_Waiting, "ON", "OFF")</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Set</SourceLine> |
| </SetAccessor> |
| <GetAccessor> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Get</SourceLine> |
| <SourceLine>Return mDescription_Waiting</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Get</SourceLine> |
| </GetAccessor> |
| </Property> |
| <Property> |
| <ItemName>knx_CONNECT</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1555871743</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>knx_CONNECT As c_CONNECT</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>knx_CONNECT As c_CONNECT</ItemDeclaration> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>knx_DISCONNECT</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1625368575</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>knx_DISCONNECT As c_DISCONNECT</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>knx_DISCONNECT As c_DISCONNECT</ItemDeclaration> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <ViewBehavior> |
| <ViewProperty> |
| <ObjName>Name</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <ItemType>String</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Index</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Super</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <ItemType>String</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Port</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Behavior</PropertyGroup> |
| <PropertyValue>0</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>RouterHops</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Behavior</PropertyGroup> |
| <PropertyValue>32</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>SendToSelf</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Behavior</PropertyGroup> |
| <PropertyValue>False</PropertyValue> |
| <ItemType>Boolean</ItemType> |
| </ViewProperty> |
| </ViewBehavior> |
| </block> |
| <block type="Module" ID="1925568511"> |
| <ObjName>IPAddressTextField</ObjName> |
| <ObjContainerID>813438975</ObjContainerID> |
| <IsClass>1</IsClass> |
| <Superclass>TextField</Superclass> |
| <ItemFlags>0</ItemFlags> |
| <IsInterface>0</IsInterface> |
| <Compatibility></Compatibility> |
| <HookInstance> |
| <ItemName>KeyDown</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1323888639</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Function KeyDown(Key As String) As Boolean</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>If NOT KeyDown(Key) Then // raise event to subclass before</SourceLine> |
| <SourceLine>print "=== KEY: " + key.ToInteger.ToString</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>If Key <> chr(9) And Key <> chr(30) And Key <> chr(31) Then // Don't check for tab keys or arrow up/down keys</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>If (Asc(Key) < 48 or Asc(Key) > 57) And Asc(Key) <> 8 And Asc(Key) <> 46 Then Return True // If the key being pressed is not a number, backspace or period, then return and stop any input</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Dim TextArray() As String // We will use this to break down the text of the field into an array so as to see how many Octets we have</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>If Asc(Key) = 8 Then // If we have a backspace then we...</SourceLine> |
| <SourceLine>AddyComplete = False // If we have backed up, the address is now not complete regardless if it was before.</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Dim s as string = me.Text.Left(me.text.len-1)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>If s.CountFields(".") = 4 Then</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>If s.NthField(".",4) = "" Then</SourceLine> |
| <SourceLine>RaiseEvent AddressChanged(3,AddyComplete)</SourceLine> |
| <SourceLine>End If</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Else</SourceLine> |
| <SourceLine>RaiseEvent AddressChanged(s.CountFields("."),AddyComplete)</SourceLine> |
| <SourceLine>End If</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Return False // Allow the framework to do it's stuff</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>ElseIf AddyComplete Then // If the address is complete, return true to block any further input or action</SourceLine> |
| <SourceLine>Return True</SourceLine> |
| <SourceLine>End</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>If InStr(me.Text, ".") = 0 Then // If there are no periods in the field's text then we are in the first octet. So trying to create an array will fail. Instead we pass what we need.</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>me.Text = BuildOctet(me.Text, Key,Len(me.Text)+1,1)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Else</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>TextArray = Split(me.Text,".") // Create an array separated into elements by the period which says how many Octets we have</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>TextArray(TextArray.Ubound) = BuildOctet(TextArray(TextArray.Ubound),Key,Len(TextArray(TextArray.Ubound))+1,TextArray.Ubound+1) // Build the Octet </SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// The text we want to send to the BuildOctet function is the text that is in the last Octet we have built.</SourceLine> |
| <SourceLine>// We want to add the Key to the new text</SourceLine> |
| <SourceLine>// The number of characters entered into the new Octet so far is the length of the string in the last array element plus 1 for the character just entered</SourceLine> |
| <SourceLine>// The Octet number is the array element number + 1 (add the one as we start the Octet with 1 and arrays start with 0</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>me.Text = Join(TextArray,".") // Build the string back up.</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>me.SelStart = Len(me.Text) // Set the insertion point</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Return True // We built the string - don't let the framework.</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Else</SourceLine> |
| <SourceLine>Return False // Let the framework handle the tab key</SourceLine> |
| <SourceLine>End If</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Return True // We built the string - don't let the framework.</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Function</SourceLine> |
| </ItemSource> |
| </HookInstance> |
| <Method> |
| <ItemName>BuildOctet</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1642061823</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Function BuildOctet(MyText As String, MyKey as String, Count as Integer,Octet As Integer) As String</SourceLine> |
| <SourceLine>// MyText is the intial or existing text from the text field.</SourceLine> |
| <SourceLine>// MyKey is the key that has been pressed</SourceLine> |
| <SourceLine>// Count is the current character position (starting at 1) in the current octet</SourceLine> |
| <SourceLine>// Octet is the current Octet we are in (starting at 1)</SourceLine> |
| <SourceLine>If Not Subnet Then</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Select Case Count</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Case 1 // First Character in the Octet</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>If (Octet =1 or Octet = 4) And MyKey = "0" Then // We don't allow a first or last octet of 0 so we ignore the key</SourceLine> |
| <SourceLine>MyText = ""</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>ElseIf (Octet = 2 or Octet = 3) and MyKey = "0" Then // If 0 is entered as the first character of the 2nd or third octet, we add the period</SourceLine> |
| <SourceLine>MyText = MyKey+"."</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>ElseIf MyKey = "." Then // We don't allow a period to be entered as the first key. Return a blank string (ignore the key)</SourceLine> |
| <SourceLine>MyText=""</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Else // We have valid input - return the key</SourceLine> |
| <SourceLine>MyText = MyKey</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End if</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Case 2 // Second Character in the Octet or Octet termination (period)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>If MyKey = "." Then // If we have a period...</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>If Octet < 4 Then MyText = MyText+MyKey // If We are in Octets 1, 2 or 3 then we return the initial text plus the period. Otherwise, we end up returning the intial text.</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Elseif Asc(mid(MyText,len(MyText),1)) > 50 Then // If the previous character is > 2 </SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>MyText = FourthOctetCheck(MyText,MyKey,Octet)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Elseif Asc(mid(MyText,len(MyText),1)) = 50 Then</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>If ASC(MyKey) > 53 Then</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>MyText=FourthOctetCheck(MyText,MyKey,Octet)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Else</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>MyText = MyText+MyKey</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End If</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Else</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>MyText = MyText+MyKey // Otherwise we have plain, valid text - add it on to the existing text.</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End If</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Case 3 // Third character for the Octet or Octet termination (period)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>If MyKey = "." Then // If the third character is a period</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>If Octet < 4 Then MyText = MyText+MyKey // If We are in Octets 1, 2 or 3 then we return the initial text plus the period. Otherwise, we end up returning the intial text.</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>ElseIf Asc(mid(MyText,len(MyText)-1,1)) = 50 And Asc(mid(MyText,len(MyText),1)) = 53 and Asc(MyKey) > 52 Then</SourceLine> |
| <SourceLine>MyText = MyText // If two characters prior is a 2 and 1 character prior is a 5 and we are trying to enter higher than 4 then return and ignore the input since we can't have higher than 254.</SourceLine> |
| <SourceLine>// Do Nothing</SourceLine> |
| <SourceLine>Else</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>If MyText.Left(1).Asc = 50 Then</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>If MyText.Mid(2,1).Asc > 53 Then</SourceLine> |
| <SourceLine>MyText = FourthOctetCheck(MyText,"",Octet)</SourceLine> |
| <SourceLine>Else</SourceLine> |
| <SourceLine>MyText = FourthOctetCheck(MyText,MyKey,Octet)</SourceLine> |
| <SourceLine>End If</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>ElseIf MyText.Left(1).Asc > 50 Then</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>MyText = FourthOctetCheck(MyText,"",Octet)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Else</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>MyText = FourthOctetCheck(MyText,MyKey,Octet)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End If</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End if</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Select</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Else</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//Handle 224, 240, 248, 252, 254,255</SourceLine> |
| <SourceLine>Select Case Count</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Case 1</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>If MyKey = "0" and Octet >1 Then</SourceLine> |
| <SourceLine>MyText = BuildSubnet(MyText+MyKey,Octet)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>ElseIf MyKey = "1" or MyKey = "2" Then</SourceLine> |
| <SourceLine>MyText = MyKey</SourceLine> |
| <SourceLine>Else</SourceLine> |
| <SourceLine>MyText = ""</SourceLine> |
| <SourceLine>End If</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Case 2</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>If (Left(MyText,1) = "1" and (MyKey = "2" or MyKey = "9")) Then</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>If MyKey = "2" Then</SourceLine> |
| <SourceLine>MyText = MyText+"28"</SourceLine> |
| <SourceLine>Else</SourceLine> |
| <SourceLine>MyText = MyText+"92"</SourceLine> |
| <SourceLine>End If</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>MyText = BuildSubnet(MyText,Octet)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>ElseIf (Left(MyText,1) = "2" and (MyKey = "2" or MyKey = "4" or MyKey = "5")) Then</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//Handle 224, 240, 248, 252, 254,255</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>If MyKey = "2" Then</SourceLine> |
| <SourceLine>MyText = MyText+"24"</SourceLine> |
| <SourceLine>MyText = BuildSubnet(MyText,Octet)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>ElseIf MyKey = "4" Then</SourceLine> |
| <SourceLine>MyText = MyText+"4"</SourceLine> |
| <SourceLine>Else</SourceLine> |
| <SourceLine>MyText = MyText+"5"</SourceLine> |
| <SourceLine>End If</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>'AddyComplete = False</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Else</SourceLine> |
| <SourceLine>MyText = MyText</SourceLine> |
| <SourceLine>End If</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Case 3</SourceLine> |
| <SourceLine>Dim test as string = Mid(MyText,2,1)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>If MyKey = "0" Then</SourceLine> |
| <SourceLine>If Left(MyText,2) = "24" Then </SourceLine> |
| <SourceLine>MyText = MyText+MyKey</SourceLine> |
| <SourceLine>MyText = BuildSubnet(MyText,Octet)</SourceLine> |
| <SourceLine>Else </SourceLine> |
| <SourceLine>MyText = MyText</SourceLine> |
| <SourceLine>End If</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//Handle 224, 240, 248, 252, 254,255</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>ElseIf MyKey = "2" Then</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>If Left(MyText,2) = "25" Or Left(MyText,2) = "19" Then</SourceLine> |
| <SourceLine>MyText = MyText+MyKey</SourceLine> |
| <SourceLine>MyText = BuildSubnet(MyText,Octet)</SourceLine> |
| <SourceLine>Else</SourceLine> |
| <SourceLine>MyText = MyText</SourceLine> |
| <SourceLine>End IF</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>ElseIf MyKey = "4" Then</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>If Left(MyText,2) = "25" Then</SourceLine> |
| <SourceLine>MyText = MyText + MyKey</SourceLine> |
| <SourceLine>MyText = BuildSubnet(MyText,Octet)</SourceLine> |
| <SourceLine>Else</SourceLine> |
| <SourceLine>MyText = MyText</SourceLine> |
| <SourceLine>End If</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>ElseIf MyKey = "5" And Octet < 4 Then</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>If Left(MyText,2) = "25" Then</SourceLine> |
| <SourceLine>MyText = MyText+"5."</SourceLine> |
| <SourceLine>Else</SourceLine> |
| <SourceLine>MyText = MyText</SourceLine> |
| <SourceLine>End If</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Elseif MyKey = "8" Then</SourceLine> |
| <SourceLine>If Left(MyText,2) = "24" Or Left(MyText,2) = "12" Then</SourceLine> |
| <SourceLine>MyText = MyText+MyKey</SourceLine> |
| <SourceLine>MyText = BuildSubnet(MyText,Octet)</SourceLine> |
| <SourceLine>Else</SourceLine> |
| <SourceLine>MyText = MyText</SourceLine> |
| <SourceLine>End</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Else</SourceLine> |
| <SourceLine>MyText = MyText</SourceLine> |
| <SourceLine>End If</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Select</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End If</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>RaiseEvent AddressChanged(Octet,AddyComplete)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Return MyText</SourceLine> |
| <SourceLine>End Function</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>33</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams>MyText As String, MyKey as String, Count as Integer,Octet As Integer</ItemParams> |
| <ItemResult>String</ItemResult> |
| </Method> |
| <Method> |
| <ItemName>BuildSubnet</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>256712703</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Function BuildSubnet(MyText as String,Octet as Integer) As String</SourceLine> |
| <SourceLine>Select Case Octet</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Case 1</SourceLine> |
| <SourceLine>MyText = MyText +".0.0.0"</SourceLine> |
| <SourceLine>Case 2</SourceLine> |
| <SourceLine>MyText = MyText+".0.0"</SourceLine> |
| <SourceLine>Case 3</SourceLine> |
| <SourceLine>MyText = MyText+".0"</SourceLine> |
| <SourceLine>Case 4</SourceLine> |
| <SourceLine>MyText = MyText</SourceLine> |
| <SourceLine>End</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>AddyComplete = True</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Return MyText</SourceLine> |
| <SourceLine>End Function</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>33</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams>MyText as String,Octet as Integer</ItemParams> |
| <ItemResult>String</ItemResult> |
| </Method> |
| <Method> |
| <ItemName>FourthOctetCheck</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>48945151</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Function FourthOctetCheck(MyText as String, MyKey as String, Octet As Integer) As String</SourceLine> |
| <SourceLine>If Octet < 4 Then // If we are not in the 4th Octet, the Octet will now be complete so add the key and the period to the string</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//Remove Any Extraneous zeros</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>If Len(MyText) > 1 Then // Only check of the text length > 1 - we can have 1 zero</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>While MyText.Left(1).Asc = 48 // If the first character is already a zero then keep only the right most characters. Loop it until you get rid of leading zeros.</SourceLine> |
| <SourceLine>MyText = MyText.Right(Len(MyText)-1)</SourceLine> |
| <SourceLine>Wend</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End If</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>MyText = MyText+MyKey+"."</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Else</SourceLine> |
| <SourceLine>MyText = MyText+MyKey // We are in the 4th Octet, add in the new character but no period and mark the address as complete so we can't enter more input.</SourceLine> |
| <SourceLine>AddyComplete = True // The address is complete. No more characters will be allowed</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Return MyText</SourceLine> |
| <SourceLine>End Function</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>33</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams>MyText as String, MyKey as String, Octet As Integer</ItemParams> |
| <ItemResult>String</ItemResult> |
| </Method> |
| <Hook> |
| <ItemName>AddressChanged</ItemName> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemFlags>33</ItemFlags> |
| <SystemFlags>0</SystemFlags> |
| <ItemParams>Octet As Integer, AddressComplete As Boolean</ItemParams> |
| <ItemResult></ItemResult> |
| </Hook> |
| <Hook> |
| <ItemName>KeyDown</ItemName> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemFlags>33</ItemFlags> |
| <SystemFlags>0</SystemFlags> |
| <ItemParams>Key As String</ItemParams> |
| <ItemResult>Boolean</ItemResult> |
| </Hook> |
| <Note> |
| <ItemName>Documentation</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1867466751</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <NoteLine>Documentation</NoteLine> |
| <NoteLine>IP Address TextField</NoteLine> |
| <NoteLine></NoteLine> |
| <NoteLine>Written by: Jon Ogden, jon@justaddsoftware.net</NoteLine> |
| <NoteLine>©2012 Just Add Software, LLC</NoteLine> |
| <NoteLine></NoteLine> |
| <NoteLine></NoteLine> |
| <NoteLine></NoteLine> |
| <NoteLine>This custom text field is used to ensure generation of "proper" IP addresses. It will allow users to enter in any valid set of IPV4 Octets. Depending on the character's entered,</NoteLine> |
| <NoteLine>a new Octet will either be started by the automatic entry of a period or entry will be blocked all together (ie: you can't enter an Octet of something like 259).</NoteLine> |
| <NoteLine></NoteLine> |
| <NoteLine>Full docmentation of the code is provided by comments.</NoteLine> |
| <NoteLine></NoteLine> |
| <NoteLine>I'm not sure if there is any more to explain than this!</NoteLine> |
| <NoteLine></NoteLine> |
| <NoteLine>I'd appreciate any feedback or comments on where you are using this.</NoteLine> |
| </ItemSource> |
| <ItemFlags>0</ItemFlags> |
| </Note> |
| <Note> |
| <ItemName>License</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>523532287</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <NoteLine>License</NoteLine> |
| <NoteLine>IP Address TextField</NoteLine> |
| <NoteLine>© 2012 Just Add Software LLC</NoteLine> |
| <NoteLine></NoteLine> |
| <NoteLine>Written by Jon Ogden - jon@justaddsoftware.net</NoteLine> |
| <NoteLine></NoteLine> |
| <NoteLine>License:</NoteLine> |
| <NoteLine></NoteLine> |
| <NoteLine>Permission is hereby granted, free of charge, to any person obtaining a copy</NoteLine> |
| <NoteLine>of this software and associated documentation files (the "Software"), to deal</NoteLine> |
| <NoteLine>in the Software without restriction, including without limitation the rights to</NoteLine> |
| <NoteLine>use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies</NoteLine> |
| <NoteLine>of the Software, and to permit persons to whom the Software is furnished to do</NoteLine> |
| <NoteLine>so, subject to the following conditions:</NoteLine> |
| <NoteLine></NoteLine> |
| <NoteLine>The author's name and company listed above and the above copyright notice and this permission notice shall be included in all</NoteLine> |
| <NoteLine>copies or substantial portions of the Software.</NoteLine> |
| <NoteLine></NoteLine> |
| <NoteLine>This license note and the documentation note must accompany any redistribution of this software.</NoteLine> |
| <NoteLine></NoteLine> |
| <NoteLine>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,</NoteLine> |
| <NoteLine>INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A</NoteLine> |
| <NoteLine>PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT</NoteLine> |
| <NoteLine>HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF</NoteLine> |
| <NoteLine>CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE</NoteLine> |
| <NoteLine>OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</NoteLine> |
| <NoteLine></NoteLine> |
| <NoteLine></NoteLine> |
| </ItemSource> |
| <ItemFlags>0</ItemFlags> |
| </Note> |
| <Property> |
| <ItemName>AddressChanged</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>93351935</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>AddressChanged As Boolean</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>AddressChanged As Boolean</ItemDeclaration> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>AddyComplete</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1294501887</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>AddyComplete As Boolean</SourceLine> |
| <SourceLine>// This property is used to signify when the IP address has been completed and no more characters are allowed.</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>AddyComplete As Boolean</ItemDeclaration> |
| <ItemFlags>33</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>mNetworkBits</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1408106495</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>mNetworkBits As Integer</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>mNetworkBits As Integer</ItemDeclaration> |
| <ItemFlags>33</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>NetworkBits</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1391302655</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>NetworkBits As Integer</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>NetworkBits As Integer</ItemDeclaration> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <SetAccessor> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Set</SourceLine> |
| <SourceLine>If me.Subnet Then</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Select Case value</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Case 24</SourceLine> |
| <SourceLine>me.Text = "255.255.255.0"</SourceLine> |
| <SourceLine>Case 1</SourceLine> |
| <SourceLine>me.Text = "128.0.0.0"</SourceLine> |
| <SourceLine>Case 2</SourceLine> |
| <SourceLine>me.Text = "192.0.0.0"</SourceLine> |
| <SourceLine>Case 3</SourceLine> |
| <SourceLine>me.Text = "224.0.0.0"</SourceLine> |
| <SourceLine>Case 4</SourceLine> |
| <SourceLine>me.Text = "240.0.0.0"</SourceLine> |
| <SourceLine>Case 5</SourceLine> |
| <SourceLine>me.Text = "248.0.0.0"</SourceLine> |
| <SourceLine>Case 6</SourceLine> |
| <SourceLine>me.Text = "252.0.0.0"</SourceLine> |
| <SourceLine>Case 7</SourceLine> |
| <SourceLine>me.Text = "254.0.0.0"</SourceLine> |
| <SourceLine>Case 8</SourceLine> |
| <SourceLine>me.Text = "255.0.0.0"</SourceLine> |
| <SourceLine>Case 9</SourceLine> |
| <SourceLine>me.Text = "255.128.0.0"</SourceLine> |
| <SourceLine>Case 10</SourceLine> |
| <SourceLine>me.Text = "255.192.0.0"</SourceLine> |
| <SourceLine>Case 11</SourceLine> |
| <SourceLine>me.Text = "255.224.0.0"</SourceLine> |
| <SourceLine>Case 12</SourceLine> |
| <SourceLine>me.Text = "255.240.0.0"</SourceLine> |
| <SourceLine>Case 13</SourceLine> |
| <SourceLine>me.Text = "255.248.0.0"</SourceLine> |
| <SourceLine>Case 14</SourceLine> |
| <SourceLine>me.Text = "255.252.0.0"</SourceLine> |
| <SourceLine>Case 15</SourceLine> |
| <SourceLine>me.Text = "255.254.0.0"</SourceLine> |
| <SourceLine>Case 16</SourceLine> |
| <SourceLine>me.Text = "255.255.0.0"</SourceLine> |
| <SourceLine>Case 17</SourceLine> |
| <SourceLine>me.Text = "255.255.128.0"</SourceLine> |
| <SourceLine>Case 18</SourceLine> |
| <SourceLine>me.Text = "255.255.192.0"</SourceLine> |
| <SourceLine>Case 19</SourceLine> |
| <SourceLine>me.Text = "255.255.224.0"</SourceLine> |
| <SourceLine>Case 20</SourceLine> |
| <SourceLine>me.Text = "255.255.240.0"</SourceLine> |
| <SourceLine>Case 21</SourceLine> |
| <SourceLine>me.Text = "255.255.248.0"</SourceLine> |
| <SourceLine>Case 22</SourceLine> |
| <SourceLine>me.Text = "255.255.252.0"</SourceLine> |
| <SourceLine>Case 23</SourceLine> |
| <SourceLine>me.Text = "255.255.254.0"</SourceLine> |
| <SourceLine>Case 25</SourceLine> |
| <SourceLine>me.Text = "255.255.255.128"</SourceLine> |
| <SourceLine>Case 26</SourceLine> |
| <SourceLine>me.Text = "255.255.255.192"</SourceLine> |
| <SourceLine>Case 27</SourceLine> |
| <SourceLine>me.Text = "255.255.255.224"</SourceLine> |
| <SourceLine>Case 28</SourceLine> |
| <SourceLine>me.Text = "255.255.255.240"</SourceLine> |
| <SourceLine>Case 29</SourceLine> |
| <SourceLine>me.Text = "255.255.255.248"</SourceLine> |
| <SourceLine>Case 30</SourceLine> |
| <SourceLine>me.Text = "255.255.255.252"</SourceLine> |
| <SourceLine>Case 31</SourceLine> |
| <SourceLine>me.Text = "255.255.255.254"</SourceLine> |
| <SourceLine>Case 32</SourceLine> |
| <SourceLine>me.Text = "255.255.255.255"</SourceLine> |
| <SourceLine>End Select</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End If</SourceLine> |
| <SourceLine>End Set</SourceLine> |
| </SetAccessor> |
| <GetAccessor> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Get</SourceLine> |
| <SourceLine>If me.Subnet Then</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Select Case Me.Text</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Case "255.255.255.0"</SourceLine> |
| <SourceLine>Return 24</SourceLine> |
| <SourceLine>Case "128.0.0.0"</SourceLine> |
| <SourceLine>Return 1</SourceLine> |
| <SourceLine>Case "192.0.0.0"</SourceLine> |
| <SourceLine>Return 2</SourceLine> |
| <SourceLine>Case "224.0.0.0"</SourceLine> |
| <SourceLine>Return 3</SourceLine> |
| <SourceLine>Case "240.0.0.0"</SourceLine> |
| <SourceLine>Return 4</SourceLine> |
| <SourceLine>Case "248.0.0.0"</SourceLine> |
| <SourceLine>Return 5</SourceLine> |
| <SourceLine>Case "252.0.0.0"</SourceLine> |
| <SourceLine>Return 6</SourceLine> |
| <SourceLine>Case "254.0.0.0"</SourceLine> |
| <SourceLine>Return 7</SourceLine> |
| <SourceLine>Case "255.0.0.0"</SourceLine> |
| <SourceLine>Return 8</SourceLine> |
| <SourceLine>Case "255.128.0.0"</SourceLine> |
| <SourceLine>Return 9</SourceLine> |
| <SourceLine>Case "255.192.0.0"</SourceLine> |
| <SourceLine>Return 10</SourceLine> |
| <SourceLine>Case "255.224.0.0"</SourceLine> |
| <SourceLine>Return 11</SourceLine> |
| <SourceLine>Case "255.240.0.0"</SourceLine> |
| <SourceLine>Return 12</SourceLine> |
| <SourceLine>Case "255.248.0.0"</SourceLine> |
| <SourceLine>Return 13</SourceLine> |
| <SourceLine>Case "255.252.0.0"</SourceLine> |
| <SourceLine>Return 14</SourceLine> |
| <SourceLine>Case "255.254.0.0"</SourceLine> |
| <SourceLine>Return 15</SourceLine> |
| <SourceLine>Case "255.255.0.0"</SourceLine> |
| <SourceLine>Return 16</SourceLine> |
| <SourceLine>Case "255.255.128.0"</SourceLine> |
| <SourceLine>Return 17</SourceLine> |
| <SourceLine>Case "255.255.192.0"</SourceLine> |
| <SourceLine>Return 18</SourceLine> |
| <SourceLine>Case "255.255.224.0"</SourceLine> |
| <SourceLine>Return 19</SourceLine> |
| <SourceLine>Case "255.255.240.0"</SourceLine> |
| <SourceLine>Return 20</SourceLine> |
| <SourceLine>Case "255.255.248.0"</SourceLine> |
| <SourceLine>Return 21</SourceLine> |
| <SourceLine>Case "255.255.252.0"</SourceLine> |
| <SourceLine>Return 22</SourceLine> |
| <SourceLine>Case "255.255.254.0"</SourceLine> |
| <SourceLine>Return 23</SourceLine> |
| <SourceLine>Case "255.255.255.128"</SourceLine> |
| <SourceLine>Return 25</SourceLine> |
| <SourceLine>Case "255.255.255.192"</SourceLine> |
| <SourceLine>Return 26</SourceLine> |
| <SourceLine>Case "255.255.255.224"</SourceLine> |
| <SourceLine>Return 27</SourceLine> |
| <SourceLine>Case "255.255.255.240"</SourceLine> |
| <SourceLine>Return 28</SourceLine> |
| <SourceLine>Case "255.255.255.248"</SourceLine> |
| <SourceLine>Return 29</SourceLine> |
| <SourceLine>Case "255.255.255.252"</SourceLine> |
| <SourceLine>Return 30</SourceLine> |
| <SourceLine>Case "255.255.255.254"</SourceLine> |
| <SourceLine>Return 31</SourceLine> |
| <SourceLine>Case "255.255.255.255"</SourceLine> |
| <SourceLine>Return 32</SourceLine> |
| <SourceLine>End Select</SourceLine> |
| <SourceLine>End</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Get</SourceLine> |
| </GetAccessor> |
| </Property> |
| <Property> |
| <ItemName>Subnet</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>748476415</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Subnet As Boolean</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>Subnet As Boolean</ItemDeclaration> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <ViewBehavior> |
| <ViewProperty> |
| <ObjName>AllowAutoDeactivate</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Appearance</PropertyGroup> |
| <PropertyValue>True</PropertyValue> |
| <ItemType>Boolean</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>BackgroundColor</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Appearance</PropertyGroup> |
| <PropertyValue>&hFFFFFF</PropertyValue> |
| <ItemType>Color</ItemType> |
| <EditorType>Color</EditorType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>HasBorder</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Appearance</PropertyGroup> |
| <PropertyValue>True</PropertyValue> |
| <ItemType>Boolean</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Tooltip</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Appearance</PropertyGroup> |
| <ItemType>String</ItemType> |
| <EditorType>MultiLineEditor</EditorType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Transparent</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Appearance</PropertyGroup> |
| <PropertyValue>False</PropertyValue> |
| <ItemType>Boolean</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>AllowFocusRing</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Appearance</PropertyGroup> |
| <PropertyValue>True</PropertyValue> |
| <ItemType>Boolean</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>FontName</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Font</PropertyGroup> |
| <PropertyValue>System</PropertyValue> |
| <ItemType>String</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>FontSize</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Font</PropertyGroup> |
| <PropertyValue>0</PropertyValue> |
| <ItemType>Single</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>FontUnit</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Font</PropertyGroup> |
| <PropertyValue>0</PropertyValue> |
| <ItemType>FontUnits</ItemType> |
| <EditorType>Enum</EditorType> |
| <Enumeration> |
| <ItemDef>0 - Default</ItemDef> |
| <ItemDef>1 - Pixel</ItemDef> |
| <ItemDef>2 - Point</ItemDef> |
| <ItemDef>3 - Inch</ItemDef> |
| <ItemDef>4 - Millimeter</ItemDef> |
| </Enumeration> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Hint</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Initial State</PropertyGroup> |
| <ItemType>String</ItemType> |
| <EditorType>MultiLineEditor</EditorType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>AllowTabs</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Behavior</PropertyGroup> |
| <PropertyValue>False</PropertyValue> |
| <ItemType>Boolean</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>TextAlignment</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Behavior</PropertyGroup> |
| <PropertyValue>0</PropertyValue> |
| <ItemType>TextAlignments</ItemType> |
| <EditorType>Enum</EditorType> |
| <Enumeration> |
| <ItemDef>0 - Default</ItemDef> |
| <ItemDef>1 - Left</ItemDef> |
| <ItemDef>2 - Center</ItemDef> |
| <ItemDef>3 - Right</ItemDef> |
| </Enumeration> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>AllowSpellChecking</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Behavior</PropertyGroup> |
| <PropertyValue>False</PropertyValue> |
| <ItemType>boolean</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>MaximumCharactersAllowed</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Behavior</PropertyGroup> |
| <PropertyValue>0</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>ValidationMask</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Behavior</PropertyGroup> |
| <ItemType>String</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Name</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <ItemType>String</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Index</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Super</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <ItemType>String</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Width</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Position</PropertyGroup> |
| <PropertyValue>80</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Height</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Position</PropertyGroup> |
| <PropertyValue>22</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>LockLeft</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Position</PropertyGroup> |
| <ItemType>Boolean</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>LockTop</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Position</PropertyGroup> |
| <ItemType>Boolean</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>LockRight</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Position</PropertyGroup> |
| <ItemType>Boolean</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>LockBottom</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Position</PropertyGroup> |
| <ItemType>Boolean</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>TabPanelIndex</ObjName> |
| <PropertyGroup>Position</PropertyGroup> |
| <PropertyValue>0</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>TabIndex</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Position</PropertyGroup> |
| <PropertyValue>0</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>TabStop</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Position</PropertyGroup> |
| <PropertyValue>True</PropertyValue> |
| <ItemType>Boolean</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Left</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Position</PropertyGroup> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Top</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Position</PropertyGroup> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Password</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Appearance</PropertyGroup> |
| <ItemType>Boolean</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>TextColor</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Appearance</PropertyGroup> |
| <PropertyValue>&h000000</PropertyValue> |
| <ItemType>Color</ItemType> |
| <EditorType>Color</EditorType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Enabled</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Appearance</PropertyGroup> |
| <PropertyValue>True</PropertyValue> |
| <ItemType>Boolean</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Format</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Appearance</PropertyGroup> |
| <ItemType>String</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Visible</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Appearance</PropertyGroup> |
| <PropertyValue>True</PropertyValue> |
| <ItemType>Boolean</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Bold</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Font</PropertyGroup> |
| <ItemType>Boolean</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Italic</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Font</PropertyGroup> |
| <ItemType>Boolean</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Underline</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Font</PropertyGroup> |
| <ItemType>Boolean</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Text</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Initial State</PropertyGroup> |
| <ItemType>String</ItemType> |
| <EditorType>MultiLineEditor</EditorType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>ReadOnly</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Behavior</PropertyGroup> |
| <ItemType>Boolean</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Subnet</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Behavior</PropertyGroup> |
| <ItemType>Boolean</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>NetworkBits</ObjName> |
| <PropertyGroup>Behavior</PropertyGroup> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>AddressChanged</ObjName> |
| <PropertyGroup>Behavior</PropertyGroup> |
| <ItemType>Boolean</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>DataSource</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Database Binding</PropertyGroup> |
| <ItemType>String</ItemType> |
| <EditorType>DataSource</EditorType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>DataField</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Database Binding</PropertyGroup> |
| <ItemType>String</ItemType> |
| <EditorType>DataField</EditorType> |
| </ViewProperty> |
| </ViewBehavior> |
| </block> |
| <block type="Module" ID="1445591039"> |
| <ObjName>IPv4_Address</ObjName> |
| <ObjContainerID>813438975</ObjContainerID> |
| <IsClass>1</IsClass> |
| <Superclass>MemoryBlock</Superclass> |
| <ItemFlags>0</ItemFlags> |
| <IsInterface>0</IsInterface> |
| <Compatibility></Compatibility> |
| <Method> |
| <ItemName>Constructor</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>2000656383</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Constructor()</SourceLine> |
| <SourceLine>Super.Constructor(4)</SourceLine> |
| <SourceLine>LittleEndian = False // KNX specific, needs big endian</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams></ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Operator_Convert</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1027137535</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Function Operator_Convert() As String</SourceLine> |
| <SourceLine>Return Value</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Function</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams></ItemParams> |
| <ItemResult>String</ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Operator_Convert</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>986585087</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Operator_Convert(s As String)</SourceLine> |
| <SourceLine>// acts as constructor for new object implicitly created</SourceLine> |
| <SourceLine>Size = 4</SourceLine> |
| <SourceLine>LittleEndian = False // KNX specific, needs big endian</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Value = s</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams>s As String</ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Value</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>456169471</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Function Value() As String</SourceLine> |
| <SourceLine>var s as String = _</SourceLine> |
| <SourceLine>self.Byte(0).ToString + "." + _</SourceLine> |
| <SourceLine>self.Byte(1).ToString + "." + _</SourceLine> |
| <SourceLine>self.Byte(2).ToString + "." + _</SourceLine> |
| <SourceLine>self.Byte(3).ToString</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Return s</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Function</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams></ItemParams> |
| <ItemResult>String</ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Value</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>155564031</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Value(assigns s as String)</SourceLine> |
| <SourceLine>var sa() as String = s.Split(".")</SourceLine> |
| <SourceLine>sa.ResizeTo(3) // (index 0 to 3 are 4 elements)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>for i as Integer = 0 to 3</SourceLine> |
| <SourceLine>self.Byte(i) = CType(sa(i).ToInteger, UInt8)</SourceLine> |
| <SourceLine>next</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams>assigns s as String</ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Clone</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>897695743</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Function Clone() As IPv4_Address</SourceLine> |
| <SourceLine>var obj as new IPv4_Address</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>obj.UInt32Value(0) = self.UInt32Value(0)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Return obj</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Function</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams></ItemParams> |
| <ItemResult>IPv4_Address</ItemResult> |
| </Method> |
| <ViewBehavior> |
| <ViewProperty> |
| <ObjName>LittleEndian</ObjName> |
| <PropertyGroup>Behavior</PropertyGroup> |
| <PropertyValue>0</PropertyValue> |
| <ItemType>Boolean</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Size</ObjName> |
| <PropertyGroup>Behavior</PropertyGroup> |
| <PropertyValue>0</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Name</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <ItemType>String</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Index</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <PropertyValue>-2147483648</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Super</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <ItemType>String</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Left</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Position</PropertyGroup> |
| <PropertyValue>0</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Top</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Position</PropertyGroup> |
| <PropertyValue>0</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| </ViewBehavior> |
| </block> |
| <block type="Module" ID="564332543"> |
| <ObjName>c_DIB_Description</ObjName> |
| <ObjContainerID>813438975</ObjContainerID> |
| <IsClass>1</IsClass> |
| <ItemFlags>2</ItemFlags> |
| <IsInterface>0</IsInterface> |
| <Compatibility></Compatibility> |
| <Property> |
| <ItemName>DEVICE_INFO</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1782716415</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>DEVICE_INFO As s_DIB_DEVICE_INFO</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>DEVICE_INFO As s_DIB_DEVICE_INFO</ItemDeclaration> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>SUPP_SVC_FAMILIES()</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>474753023</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>SUPP_SVC_FAMILIES() As s_DIB_SUPP_SVC_FAMILIES_ITEM</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>SUPP_SVC_FAMILIES() As s_DIB_SUPP_SVC_FAMILIES_ITEM</ItemDeclaration> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>IP_CONFIG</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1586135039</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>IP_CONFIG As s_DIB_IP_CONFIG</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>IP_CONFIG As s_DIB_IP_CONFIG</ItemDeclaration> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>IP_CUR_CONFIG</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1043224575</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>IP_CUR_CONFIG As s_DIB_IP_CUR_CONFIG</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>IP_CUR_CONFIG As s_DIB_IP_CUR_CONFIG</ItemDeclaration> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>KNX_ADDRESSES()</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1136017407</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>KNX_ADDRESSES() As s_DIB_KNX_ADDRESSES_ITEM</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>KNX_ADDRESSES() As s_DIB_KNX_ADDRESSES_ITEM</ItemDeclaration> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>MFR_DATA</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1315610623</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>MFR_DATA As s_DIB_MFR_DATA</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>MFR_DATA As s_DIB_MFR_DATA</ItemDeclaration> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>MFR_DATA_SPEC</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>513429503</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>MFR_DATA_SPEC As String</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>MFR_DATA_SPEC As String</ItemDeclaration> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <ViewBehavior> |
| <ViewProperty> |
| <ObjName>Name</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <ItemType>String</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Index</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <PropertyValue>-2147483648</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Super</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <ItemType>String</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Left</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Position</PropertyGroup> |
| <PropertyValue>0</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Top</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Position</PropertyGroup> |
| <PropertyValue>0</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>MFR_DATA_SPEC</ObjName> |
| <PropertyGroup>Behavior</PropertyGroup> |
| <ItemType>String</ItemType> |
| <EditorType>MultiLineEditor</EditorType> |
| </ViewProperty> |
| </ViewBehavior> |
| </block> |
| <block type="Module" ID="1812180991"> |
| <ObjName>c_DIB_Search</ObjName> |
| <ObjContainerID>813438975</ObjContainerID> |
| <IsClass>1</IsClass> |
| <ItemFlags>2</ItemFlags> |
| <IsInterface>0</IsInterface> |
| <Compatibility></Compatibility> |
| <Property> |
| <ItemName>DEVICE_INFO</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1782716415</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>DEVICE_INFO As s_DIB_DEVICE_INFO</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>DEVICE_INFO As s_DIB_DEVICE_INFO</ItemDeclaration> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>SUPP_SVC_FAMILIES()</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>474753023</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>SUPP_SVC_FAMILIES() As s_DIB_SUPP_SVC_FAMILIES_ITEM</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>SUPP_SVC_FAMILIES() As s_DIB_SUPP_SVC_FAMILIES_ITEM</ItemDeclaration> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>HPAI</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>507217919</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>HPAI As s_HPAI</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>HPAI As s_HPAI</ItemDeclaration> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <ViewBehavior> |
| <ViewProperty> |
| <ObjName>Name</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <ItemType>String</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Index</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <PropertyValue>-2147483648</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Super</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <ItemType>String</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Left</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Position</PropertyGroup> |
| <PropertyValue>0</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Top</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Position</PropertyGroup> |
| <PropertyValue>0</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| </ViewBehavior> |
| </block> |
| <block type="Module" ID="421066751"> |
| <ObjName>c_CONNECT</ObjName> |
| <ObjContainerID>813438975</ObjContainerID> |
| <IsClass>1</IsClass> |
| <ItemFlags>2</ItemFlags> |
| <IsInterface>0</IsInterface> |
| <Compatibility></Compatibility> |
| <Method> |
| <ItemName>Tx_REQUEST</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1567016959</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Tx_REQUEST(com As KNXnetIP_client)</SourceLine> |
| <SourceLine>if not com.IsConnected then Return // we need an open socket</SourceLine> |
| <SourceLine>if Busy then Return</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// create frame</SourceLine> |
| <SourceLine>var f As s_CONNECT_REQUEST</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// frame header</SourceLine> |
| <SourceLine>f.Frame_Header.Header_Length = s_FRAME_HEADER.Size</SourceLine> |
| <SourceLine>f.Frame_Header.Protocol_Version = k_KNXnetIP_VERSION_10</SourceLine> |
| <SourceLine>f.Frame_Header.Service_Type = k_CONNECT_REQUEST</SourceLine> |
| <SourceLine>f.Frame_Header.Total_Length = s_CONNECT_REQUEST.Size</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// client control endpoint</SourceLine> |
| <SourceLine>f.Control_Endpoint.Structure_Length = s_HPAI.Size</SourceLine> |
| <SourceLine>f.Control_Endpoint.Host_Protocol_Code = Client_Control_Endpoint.Protocol</SourceLine> |
| <SourceLine>f.Control_Endpoint.IP_Address = Client_Control_Endpoint.Addr.UInt32Value(0)</SourceLine> |
| <SourceLine>f.Control_Endpoint.IP_Port_Number = Client_Control_Endpoint.Port</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// client data endpoint</SourceLine> |
| <SourceLine>f.Data_Endpoint.Structure_Length = s_HPAI.Size</SourceLine> |
| <SourceLine>f.Data_Endpoint.Host_Protocol_Code = Client_Data_Endpoint.Protocol</SourceLine> |
| <SourceLine>f.Data_Endpoint.IP_Address = Client_Data_Endpoint.Addr.UInt32Value(0)</SourceLine> |
| <SourceLine>f.Data_Endpoint.IP_Port_Number = Client_Data_Endpoint.Port</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// connection request information</SourceLine> |
| <SourceLine>f.Connection_Request_Information.Structure_Length = s_CRI.Size</SourceLine> |
| <SourceLine>f.Connection_Request_Information.Connection_Type_Code = k_TUNNEL_CONNECTION</SourceLine> |
| <SourceLine>f.Connection_Request_Information.KNX_Layer = k_TUNNEL_LINKLAYER</SourceLine> |
| <SourceLine>f.Connection_Request_Information.reserved = 0</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// create datagram</SourceLine> |
| <SourceLine>var dg as new Datagram</SourceLine> |
| <SourceLine>dg.Address = Server_Control_Endpoint.Addr</SourceLine> |
| <SourceLine>dg.Port = Server_Control_Endpoint.Port</SourceLine> |
| <SourceLine>dg.Data = f.StringValue(k_BIG_ENDIAN)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// enable receiver, start timer and send</SourceLine> |
| <SourceLine>Busy = True</SourceLine> |
| <SourceLine>com.Write(dg)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>print ">>> CONNECT_REQUEST"</SourceLine> |
| <SourceLine>print</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams>com As KNXnetIP_client</ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Rx_RESPONSE</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>628858879</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Rx_RESPONSE(com as KNXnetIP_client, dg as datagram)</SourceLine> |
| <SourceLine>if not Busy then Return // receiver disabled, ignore spurious frames</SourceLine> |
| <SourceLine>Busy = False</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// get dg in structure</SourceLine> |
| <SourceLine>var f As s_CONNECT_RESPONSE</SourceLine> |
| <SourceLine>f.StringValue(k_BIG_ENDIAN) = dg.Data</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// check header (ASSERTION)</SourceLine> |
| <SourceLine>if f.Frame_Header.Total_Length <> s_CONNECT_RESPONSE.Size then print "??? FRAME size ERROR"</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// read payload data fields</SourceLine> |
| <SourceLine>Comm_Channel_ID = f.Communication_Channel_ID</SourceLine> |
| <SourceLine>mStatus = f.Status</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// read Servers HPAI</SourceLine> |
| <SourceLine>if f.Data_Endpoint.Structure_Length <> s_HPAI.Size then print "??? HPAI size ERROR"</SourceLine> |
| <SourceLine>Server_Data_Endpoint.Addr.UInt32Value(0) = f.Data_Endpoint.IP_Address</SourceLine> |
| <SourceLine>Server_Data_Endpoint.Port = f.Data_Endpoint.IP_Port_Number</SourceLine> |
| <SourceLine>Server_Data_Endpoint.Protocol = f.Data_Endpoint.Host_Protocol_Code</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// read connection request data block</SourceLine> |
| <SourceLine>if f.CRD.Structure_Length <> s_CRD.Size then print "??? CRD size ERROR"</SourceLine> |
| <SourceLine>Connection_Type_Code = f.CRD.Connection_Type_Code</SourceLine> |
| <SourceLine>KNX_IA = f.CRD.KNX_Individual_Address</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// logging</SourceLine> |
| <SourceLine>print "<<< CONNECT_RESPONSE"</SourceLine> |
| <SourceLine>print "Status: " + Status.ToHex(2)</SourceLine> |
| <SourceLine>print "ChannelID: " + Comm_Channel_ID.ToHex(2)</SourceLine> |
| <SourceLine>print "Conn Typ: " + Connection_Type_Code.ToHex(2)</SourceLine> |
| <SourceLine>print "Server Data Endpoint: " + _</SourceLine> |
| <SourceLine>Server_Data_Endpoint.Addr.Value + ":" + _</SourceLine> |
| <SourceLine>Server_Data_Endpoint.Port.ToString + " " + _</SourceLine> |
| <SourceLine>Server_Data_Endpoint.Protocol.ToString</SourceLine> |
| <SourceLine>print "KNX IA: " + KNX_IA.ToString</SourceLine> |
| <SourceLine>print</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams>com as KNXnetIP_client, dg as datagram</ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>timeout</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1339994111</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub timeout()</SourceLine> |
| <SourceLine>Busy = False</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>print "--- CONNECT TIMEOUT"</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>33</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams></ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Status</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>719790079</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Function Status() As uint8</SourceLine> |
| <SourceLine>return mStatus</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Function</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams></ItemParams> |
| <ItemResult>uint8</ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Busy</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1580890111</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Function Busy() As Boolean</SourceLine> |
| <SourceLine>return mBusy</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Function</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams></ItemParams> |
| <ItemResult>Boolean</ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Busy</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1436297215</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Busy(assigns req as Boolean)</SourceLine> |
| <SourceLine>if req and not mBusy then</SourceLine> |
| <SourceLine>Timer.CallLater(k_CONNECT_REQUEST_TIMEOUT * 1000, AddressOf timeout)</SourceLine> |
| <SourceLine>ElseIf mBusy and not req then</SourceLine> |
| <SourceLine>Timer.CancelCallLater(AddressOf timeout)</SourceLine> |
| <SourceLine>end if</SourceLine> |
| <SourceLine>mBusy = req</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>33</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams>assigns req as Boolean</ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Constructor</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>349753343</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Constructor()</SourceLine> |
| <SourceLine>Client_Control_Endpoint = new IPv4_Endpoint</SourceLine> |
| <SourceLine>Client_Data_Endpoint = new IPv4_Endpoint </SourceLine> |
| <SourceLine>Server_Control_Endpoint = new IPv4_Endpoint</SourceLine> |
| <SourceLine>Server_Data_Endpoint = new IPv4_Endpoint</SourceLine> |
| <SourceLine>KNX_IA = "0.0.0"</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams></ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Property> |
| <ItemName>Comm_Channel_ID</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1310517247</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Comm_Channel_ID As uint8</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>Comm_Channel_ID As uint8</ItemDeclaration> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>mStatus</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1581776895</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>mStatus As uint8 = 0</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>mStatus As uint8 = 0</ItemDeclaration> |
| <ItemFlags>33</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>Connection_Type_Code</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>354750463</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Connection_Type_Code As uint8</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>Connection_Type_Code As uint8</ItemDeclaration> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>mBusy</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1455890431</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>mBusy As Boolean = False</SourceLine> |
| <SourceLine>// 0 = idle</SourceLine> |
| <SourceLine>// 1 = timeout</SourceLine> |
| <SourceLine>// 2 = timer running</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>mBusy As Boolean = False</ItemDeclaration> |
| <ItemFlags>33</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>Server_Data_Endpoint</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>109152255</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Server_Data_Endpoint As IPv4_Endpoint</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>Server_Data_Endpoint As IPv4_Endpoint</ItemDeclaration> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>KNX_IA</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>464406527</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>KNX_IA As KNX_IndividualAddress</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>KNX_IA As KNX_IndividualAddress</ItemDeclaration> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>Client_Data_Endpoint</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>2104444927</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Client_Data_Endpoint As IPv4_Endpoint</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>Client_Data_Endpoint As IPv4_Endpoint</ItemDeclaration> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>Client_Control_Endpoint</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1107437567</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Client_Control_Endpoint As IPv4_Endpoint</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>Client_Control_Endpoint As IPv4_Endpoint</ItemDeclaration> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>Server_Control_Endpoint</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>2044794879</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Server_Control_Endpoint As IPv4_Endpoint</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>Server_Control_Endpoint As IPv4_Endpoint</ItemDeclaration> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <ViewBehavior> |
| <ViewProperty> |
| <ObjName>Name</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <ItemType>String</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Index</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <PropertyValue>-2147483648</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Super</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <ItemType>String</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Left</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Position</PropertyGroup> |
| <PropertyValue>0</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Top</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Position</PropertyGroup> |
| <PropertyValue>0</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Comm_Channel_ID</ObjName> |
| <PropertyGroup>Behavior</PropertyGroup> |
| <ItemType>uint8</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Connection_Type_Code</ObjName> |
| <PropertyGroup>Behavior</PropertyGroup> |
| <ItemType>uint8</ItemType> |
| </ViewProperty> |
| </ViewBehavior> |
| </block> |
| <block type="Module" ID="1555253247"> |
| <ObjName>c_DISCONNECT</ObjName> |
| <ObjContainerID>813438975</ObjContainerID> |
| <IsClass>1</IsClass> |
| <ItemFlags>2</ItemFlags> |
| <IsInterface>0</IsInterface> |
| <Compatibility></Compatibility> |
| <Method> |
| <ItemName>timeout</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1339994111</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub timeout()</SourceLine> |
| <SourceLine>Busy = False</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>print "--- DISCONNECT TIMEOUT"</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>33</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams></ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Tx_REQUEST</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>684589055</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Tx_REQUEST(com As KNXnetIP_client)</SourceLine> |
| <SourceLine>if not com.IsConnected then Return // we need an open socket</SourceLine> |
| <SourceLine>if Busy then Return</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// create frame</SourceLine> |
| <SourceLine>var f As s_DISCONNECT_REQUEST</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// frame header</SourceLine> |
| <SourceLine>f.Frame_Header.Header_Length = s_FRAME_HEADER.Size</SourceLine> |
| <SourceLine>f.Frame_Header.Protocol_Version = k_KNXnetIP_VERSION_10</SourceLine> |
| <SourceLine>f.Frame_Header.Service_Type = k_DISCONNECT_REQUEST</SourceLine> |
| <SourceLine>f.Frame_Header.Total_Length = s_DISCONNECT_REQUEST.Size</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// payload data</SourceLine> |
| <SourceLine>f.Communication_Channel_ID = Comm_Channel_ID</SourceLine> |
| <SourceLine>f.reserved = 0</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// client control endpoint</SourceLine> |
| <SourceLine>f.Control_Endpoint.Structure_Length = s_HPAI.Size</SourceLine> |
| <SourceLine>f.Control_Endpoint.Host_Protocol_Code = Client_Control_Endpoint.Protocol</SourceLine> |
| <SourceLine>f.Control_Endpoint.IP_Address = Client_Control_Endpoint.Addr.UInt32Value(0)</SourceLine> |
| <SourceLine>f.Control_Endpoint.IP_Port_Number = Client_Control_Endpoint.Port</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// create datagram</SourceLine> |
| <SourceLine>var dg as new Datagram</SourceLine> |
| <SourceLine>dg.Address = Server_Control_Endpoint.Addr</SourceLine> |
| <SourceLine>dg.Port = Server_Control_Endpoint.Port</SourceLine> |
| <SourceLine>dg.Data = f.StringValue(k_BIG_ENDIAN)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// enable receiver, start timer and send</SourceLine> |
| <SourceLine>Busy = True</SourceLine> |
| <SourceLine>com.Write(dg)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// logging</SourceLine> |
| <SourceLine>print ">>> DISCONNECT_REQUEST"</SourceLine> |
| <SourceLine>print</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams>com As KNXnetIP_client</ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Rx_RESPONSE</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>296923135</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Rx_RESPONSE(com as KNXnetIP_client, dg as datagram)</SourceLine> |
| <SourceLine>// status check</SourceLine> |
| <SourceLine>if not Busy then Return // receiver disabled, ignore spurious frames</SourceLine> |
| <SourceLine>Busy = False</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// get dg in structure</SourceLine> |
| <SourceLine>var f As s_DISCONNECT_RESPONSE</SourceLine> |
| <SourceLine>f.StringValue(k_BIG_ENDIAN) = dg.Data</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// check header (ASSERTION)</SourceLine> |
| <SourceLine>if f.Frame_Header.Total_Length <> s_DISCONNECT_RESPONSE.Size then print "??? FRAME size ERROR"</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// read payload data fields</SourceLine> |
| <SourceLine>Comm_Channel_ID = f.Communication_Channel_ID</SourceLine> |
| <SourceLine>mStatus = f.Status</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// logging</SourceLine> |
| <SourceLine>print "<<< DISCONNECT_RESPONSE"</SourceLine> |
| <SourceLine>print "Channel ID: " + Comm_Channel_ID.ToHex(2)</SourceLine> |
| <SourceLine>print "Status: " + Status.ToHex(2)</SourceLine> |
| <SourceLine>print</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams>com as KNXnetIP_client, dg as datagram</ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Constructor</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>224899071</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Constructor()</SourceLine> |
| <SourceLine>Client_Control_Endpoint = new IPv4_Endpoint</SourceLine> |
| <SourceLine>Server_Control_Endpoint = new IPv4_Endpoint</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams></ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Status</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>641689599</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Function Status() As uint8</SourceLine> |
| <SourceLine>return mStatus</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Function</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams></ItemParams> |
| <ItemResult>uint8</ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Busy</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>77606911</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Function Busy() As Boolean</SourceLine> |
| <SourceLine>return mBusy</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Function</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams></ItemParams> |
| <ItemResult>Boolean</ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Busy</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1689626623</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Busy(assigns req as Boolean)</SourceLine> |
| <SourceLine>if req and not mBusy then</SourceLine> |
| <SourceLine>Timer.CallLater(k_DISCONNECT_REQUEST_TIMEOUT * 1000, AddressOf timeout)</SourceLine> |
| <SourceLine>ElseIf mBusy and not req then</SourceLine> |
| <SourceLine>Timer.CancelCallLater(AddressOf timeout)</SourceLine> |
| <SourceLine>end if</SourceLine> |
| <SourceLine>mBusy = req</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>33</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams>assigns req as Boolean</ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Tx_RESPONSE</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>171644927</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Tx_RESPONSE(com As KNXnetIP_client)</SourceLine> |
| <SourceLine>if not com.IsConnected then Return // we need an open socket</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// create frame</SourceLine> |
| <SourceLine>var f As s_DISCONNECT_RESPONSE</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// frame header</SourceLine> |
| <SourceLine>f.Frame_Header.Header_Length = s_FRAME_HEADER.Size</SourceLine> |
| <SourceLine>f.Frame_Header.Protocol_Version = k_KNXnetIP_VERSION_10</SourceLine> |
| <SourceLine>f.Frame_Header.Service_Type = k_DISCONNECT_RESPONSE</SourceLine> |
| <SourceLine>f.Frame_Header.Total_Length = s_DISCONNECT_RESPONSE.Size</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// payload data</SourceLine> |
| <SourceLine>f.Communication_Channel_ID = Comm_Channel_ID</SourceLine> |
| <SourceLine>f.Status = k_E_NO_ERROR</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// create datagram</SourceLine> |
| <SourceLine>var dg as new Datagram</SourceLine> |
| <SourceLine>dg.Address = Server_Control_Endpoint.Addr</SourceLine> |
| <SourceLine>dg.Port = Server_Control_Endpoint.Port</SourceLine> |
| <SourceLine>dg.Data = f.StringValue(k_BIG_ENDIAN)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// send</SourceLine> |
| <SourceLine>com.Write(dg)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// logging</SourceLine> |
| <SourceLine>print ">>> DISCONNECT_RESPONSE"</SourceLine> |
| <SourceLine>print</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams>com As KNXnetIP_client</ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Rx_REQUEST</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>967145471</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Rx_REQUEST(com as KNXnetIP_client, dg as datagram)</SourceLine> |
| <SourceLine>// no status check here</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// get dg in structure</SourceLine> |
| <SourceLine>var f As s_DISCONNECT_REQUEST</SourceLine> |
| <SourceLine>f.StringValue(k_BIG_ENDIAN) = dg.Data</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// check header (ASSERTION)</SourceLine> |
| <SourceLine>if f.Frame_Header.Total_Length <> s_DISCONNECT_REQUEST.Size then print "??? FRAME size ERROR"</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// read payload data fields</SourceLine> |
| <SourceLine>Comm_Channel_ID = f.Communication_Channel_ID</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// read server control endpoint</SourceLine> |
| <SourceLine>if f.Control_Endpoint.Structure_Length <> s_HPAI.Size then print "??? HPAI size ERROR"</SourceLine> |
| <SourceLine>Server_Control_Endpoint.Addr.UInt32Value(0) = f.Control_Endpoint.IP_Address</SourceLine> |
| <SourceLine>Server_Control_Endpoint.Port = f.Control_Endpoint.IP_Port_Number</SourceLine> |
| <SourceLine>Server_Control_Endpoint.Protocol = f.Control_Endpoint.Host_Protocol_Code</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// logging</SourceLine> |
| <SourceLine>print "<<< DISCONNECT_REQUEST"</SourceLine> |
| <SourceLine>print "Channel ID: " + Comm_Channel_ID.ToHex(2)</SourceLine> |
| <SourceLine>print "Server Control Endpoint: " + _</SourceLine> |
| <SourceLine>Server_Control_Endpoint.Addr.Value + ":" + _</SourceLine> |
| <SourceLine>Server_Control_Endpoint.Port.ToString + " " + _</SourceLine> |
| <SourceLine>Server_Control_Endpoint.Protocol.ToString</SourceLine> |
| <SourceLine>print</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// send confirmation packet</SourceLine> |
| <SourceLine>Tx_RESPONSE(com)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams>com as KNXnetIP_client, dg as datagram</ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Property> |
| <ItemName>Comm_Channel_ID</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1310517247</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Comm_Channel_ID As uint8</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>Comm_Channel_ID As uint8</ItemDeclaration> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>Client_Control_Endpoint</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1367627775</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Client_Control_Endpoint As IPv4_Endpoint</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>Client_Control_Endpoint As IPv4_Endpoint</ItemDeclaration> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>mStatus</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1491130367</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>mStatus As uint8 = 0</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>mStatus As uint8 = 0</ItemDeclaration> |
| <ItemFlags>33</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>mBusy</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>236169215</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>mBusy As Boolean = False</SourceLine> |
| <SourceLine>// 0 = idle</SourceLine> |
| <SourceLine>// 1 = timeout</SourceLine> |
| <SourceLine>// 2 = timer running</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>mBusy As Boolean = False</ItemDeclaration> |
| <ItemFlags>33</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>Server_Control_Endpoint</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>226447359</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Server_Control_Endpoint As IPv4_Endpoint</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>Server_Control_Endpoint As IPv4_Endpoint</ItemDeclaration> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <ViewBehavior> |
| <ViewProperty> |
| <ObjName>Name</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <ItemType>String</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Index</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <PropertyValue>-2147483648</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Super</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <ItemType>String</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Left</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Position</PropertyGroup> |
| <PropertyValue>0</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Top</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Position</PropertyGroup> |
| <PropertyValue>0</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Comm_Channel_ID</ObjName> |
| <PropertyGroup>Behavior</PropertyGroup> |
| <ItemType>uint8</ItemType> |
| </ViewProperty> |
| </ViewBehavior> |
| </block> |
| <block type="Module" ID="2000797695"> |
| <ObjName>c_CONNECTIONSTATE</ObjName> |
| <ObjContainerID>813438975</ObjContainerID> |
| <IsClass>1</IsClass> |
| <ItemFlags>2</ItemFlags> |
| <IsInterface>0</IsInterface> |
| <Compatibility></Compatibility> |
| <Method> |
| <ItemName>timeout</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1339994111</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub timeout()</SourceLine> |
| <SourceLine>Busy = False</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>print "--- DISCONNECT TIMEOUT"</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>33</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams></ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Tx_REQUEST</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>684589055</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Tx_REQUEST(com As KNXnetIP_client)</SourceLine> |
| <SourceLine>if not com.IsConnected then Return // we need an open socket</SourceLine> |
| <SourceLine>if Busy then Return</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// create frame</SourceLine> |
| <SourceLine>var f As s_CONNECTIONSTATE_REQUEST</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// frame header</SourceLine> |
| <SourceLine>f.Frame_Header.Header_Length = s_FRAME_HEADER.Size</SourceLine> |
| <SourceLine>f.Frame_Header.Protocol_Version = k_KNXnetIP_VERSION_10</SourceLine> |
| <SourceLine>f.Frame_Header.Service_Type = k_CONNECTIONSTATE_REQUEST</SourceLine> |
| <SourceLine>f.Frame_Header.Total_Length = s_CONNECTIONSTATE_REQUEST.Size</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// payload data</SourceLine> |
| <SourceLine>f.Communication_Channel_ID = Comm_Channel_ID</SourceLine> |
| <SourceLine>f.reserved = 0</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// client control endpoint</SourceLine> |
| <SourceLine>f.Control_Endpoint.Structure_Length = s_HPAI.Size</SourceLine> |
| <SourceLine>f.Control_Endpoint.Host_Protocol_Code = Client_Control_Endpoint.Protocol</SourceLine> |
| <SourceLine>f.Control_Endpoint.IP_Address = Client_Control_Endpoint.Addr.UInt32Value(0)</SourceLine> |
| <SourceLine>f.Control_Endpoint.IP_Port_Number = Client_Control_Endpoint.Port</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// create datagram</SourceLine> |
| <SourceLine>var dg as new Datagram</SourceLine> |
| <SourceLine>dg.Address = Server_Control_Endpoint.Addr</SourceLine> |
| <SourceLine>dg.Port = Server_Control_Endpoint.Port</SourceLine> |
| <SourceLine>dg.Data = f.StringValue(k_BIG_ENDIAN)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// enable receiver, start timer and send</SourceLine> |
| <SourceLine>Busy = True</SourceLine> |
| <SourceLine>com.Write(dg)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// logging</SourceLine> |
| <SourceLine>print ">>> CONNECTIONSTATE_REQUEST"</SourceLine> |
| <SourceLine>print</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams>com As KNXnetIP_client</ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Rx_RESPONSE</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>296923135</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Rx_RESPONSE(com as KNXnetIP_client, dg as datagram)</SourceLine> |
| <SourceLine>// status check</SourceLine> |
| <SourceLine>if not Busy then Return // receiver disabled, ignore spurious frames</SourceLine> |
| <SourceLine>Busy = False</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// get dg in structure</SourceLine> |
| <SourceLine>var f As s_CONNECTIONSTATE_RESPONSE</SourceLine> |
| <SourceLine>f.StringValue(k_BIG_ENDIAN) = dg.Data</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// check header (ASSERTION)</SourceLine> |
| <SourceLine>if f.Frame_Header.Total_Length <> s_CONNECTIONSTATE_RESPONSE.Size then print "??? FRAME size ERROR"</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// read payload data fields</SourceLine> |
| <SourceLine>Comm_Channel_ID = f.Communication_Channel_ID</SourceLine> |
| <SourceLine>mStatus = f.Status</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// logging</SourceLine> |
| <SourceLine>print "<<< CONNECTIONSTATE_RESPONSE"</SourceLine> |
| <SourceLine>print "Channel ID: " + Comm_Channel_ID.ToHex(2)</SourceLine> |
| <SourceLine>print "Status: " + Status.ToHex(2)</SourceLine> |
| <SourceLine>print</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams>com as KNXnetIP_client, dg as datagram</ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Constructor</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>224899071</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Constructor()</SourceLine> |
| <SourceLine>Client_Control_Endpoint = new IPv4_Endpoint</SourceLine> |
| <SourceLine>Server_Control_Endpoint = new IPv4_Endpoint</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams></ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Status</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>641689599</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Function Status() As uint8</SourceLine> |
| <SourceLine>return mStatus</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Function</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams></ItemParams> |
| <ItemResult>uint8</ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Busy</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>77606911</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Function Busy() As Boolean</SourceLine> |
| <SourceLine>return mBusy</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Function</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams></ItemParams> |
| <ItemResult>Boolean</ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Busy</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1689626623</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Busy(assigns req as Boolean)</SourceLine> |
| <SourceLine>if req and not mBusy then</SourceLine> |
| <SourceLine>Timer.CallLater(k_CONNECTIONSTATE_REQUEST_TIMEOUT * 1000, AddressOf timeout)</SourceLine> |
| <SourceLine>ElseIf mBusy and not req then</SourceLine> |
| <SourceLine>Timer.CancelCallLater(AddressOf timeout)</SourceLine> |
| <SourceLine>end if</SourceLine> |
| <SourceLine>mBusy = req</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>33</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams>assigns req as Boolean</ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Tx_RESPONSE</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>171644927</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Tx_RESPONSE(com As KNXnetIP_client)</SourceLine> |
| <SourceLine>if not com.IsConnected then Return // we need an open socket</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// create frame</SourceLine> |
| <SourceLine>var f As s_CONNECTIONSTATE_RESPONSE</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// frame header</SourceLine> |
| <SourceLine>f.Frame_Header.Header_Length = s_FRAME_HEADER.Size</SourceLine> |
| <SourceLine>f.Frame_Header.Protocol_Version = k_KNXnetIP_VERSION_10</SourceLine> |
| <SourceLine>f.Frame_Header.Service_Type = k_CONNECTIONSTATE_RESPONSE</SourceLine> |
| <SourceLine>f.Frame_Header.Total_Length = s_CONNECTIONSTATE_RESPONSE.Size</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// payload data</SourceLine> |
| <SourceLine>f.Communication_Channel_ID = Comm_Channel_ID</SourceLine> |
| <SourceLine>f.Status = k_E_NO_ERROR</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// create datagram</SourceLine> |
| <SourceLine>var dg as new Datagram</SourceLine> |
| <SourceLine>dg.Address = Server_Control_Endpoint.Addr</SourceLine> |
| <SourceLine>dg.Port = Server_Control_Endpoint.Port</SourceLine> |
| <SourceLine>dg.Data = f.StringValue(k_BIG_ENDIAN)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// send</SourceLine> |
| <SourceLine>com.Write(dg)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// logging</SourceLine> |
| <SourceLine>print ">>> CONNECTIONSTATE_RESPONSE"</SourceLine> |
| <SourceLine>print</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams>com As KNXnetIP_client</ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Rx_REQUEST</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>967145471</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Rx_REQUEST(com as KNXnetIP_client, dg as datagram)</SourceLine> |
| <SourceLine>// no status check here</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// get dg in structure</SourceLine> |
| <SourceLine>var f As s_CONNECTIONSTATE_REQUEST</SourceLine> |
| <SourceLine>f.StringValue(k_BIG_ENDIAN) = dg.Data</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// check header (ASSERTION)</SourceLine> |
| <SourceLine>if f.Frame_Header.Total_Length <> s_CONNECTIONSTATE_REQUEST.Size then print "??? FRAME size ERROR"</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// read payload data fields</SourceLine> |
| <SourceLine>Comm_Channel_ID = f.Communication_Channel_ID</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// read server control endpoint</SourceLine> |
| <SourceLine>if f.Control_Endpoint.Structure_Length <> s_HPAI.Size then print "??? HPAI size ERROR"</SourceLine> |
| <SourceLine>Server_Control_Endpoint.Addr.UInt32Value(0) = f.Control_Endpoint.IP_Address</SourceLine> |
| <SourceLine>Server_Control_Endpoint.Port = f.Control_Endpoint.IP_Port_Number</SourceLine> |
| <SourceLine>Server_Control_Endpoint.Protocol = f.Control_Endpoint.Host_Protocol_Code</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// logging</SourceLine> |
| <SourceLine>print "<<< CONNECTIONSTATE_REQUEST"</SourceLine> |
| <SourceLine>print "Channel ID: " + Comm_Channel_ID.ToHex(2)</SourceLine> |
| <SourceLine>print "Server Control Endpoint: " + _</SourceLine> |
| <SourceLine>Server_Control_Endpoint.Addr.Value + ":" + _</SourceLine> |
| <SourceLine>Server_Control_Endpoint.Port.ToString + " " + _</SourceLine> |
| <SourceLine>Server_Control_Endpoint.Protocol.ToString</SourceLine> |
| <SourceLine>print</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>// send confirmation packet</SourceLine> |
| <SourceLine>Tx_RESPONSE(com)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams>com as KNXnetIP_client, dg as datagram</ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Property> |
| <ItemName>Comm_Channel_ID</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1310517247</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Comm_Channel_ID As uint8</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>Comm_Channel_ID As uint8</ItemDeclaration> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>Client_Control_Endpoint</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1367627775</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Client_Control_Endpoint As IPv4_Endpoint</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>Client_Control_Endpoint As IPv4_Endpoint</ItemDeclaration> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>mStatus</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1491130367</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>mStatus As uint8 = 0</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>mStatus As uint8 = 0</ItemDeclaration> |
| <ItemFlags>33</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>mBusy</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>236169215</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>mBusy As Boolean = False</SourceLine> |
| <SourceLine>// 0 = idle</SourceLine> |
| <SourceLine>// 1 = timeout</SourceLine> |
| <SourceLine>// 2 = timer running</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>mBusy As Boolean = False</ItemDeclaration> |
| <ItemFlags>33</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>Server_Control_Endpoint</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>226447359</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Server_Control_Endpoint As IPv4_Endpoint</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>Server_Control_Endpoint As IPv4_Endpoint</ItemDeclaration> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <ViewBehavior> |
| <ViewProperty> |
| <ObjName>Name</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <ItemType>String</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Index</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <PropertyValue>-2147483648</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Super</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <ItemType>String</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Left</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Position</PropertyGroup> |
| <PropertyValue>0</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Top</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Position</PropertyGroup> |
| <PropertyValue>0</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Comm_Channel_ID</ObjName> |
| <PropertyGroup>Behavior</PropertyGroup> |
| <ItemType>uint8</ItemType> |
| </ViewProperty> |
| </ViewBehavior> |
| </block> |
| <block type="Module" ID="578017279"> |
| <ObjName>IPv4_Endpoint</ObjName> |
| <ObjContainerID>813438975</ObjContainerID> |
| <IsClass>1</IsClass> |
| <ItemFlags>0</ItemFlags> |
| <IsInterface>0</IsInterface> |
| <Compatibility></Compatibility> |
| <Method> |
| <ItemName>Clone</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1204436991</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Function Clone() As IPv4_Endpoint</SourceLine> |
| <SourceLine>var obj as new IPv4_Endpoint</SourceLine> |
| <SourceLine>obj.Addr = Addr</SourceLine> |
| <SourceLine>obj.Port = Port</SourceLine> |
| <SourceLine>obj.Protocol = Protocol</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Return obj</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Function</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams></ItemParams> |
| <ItemResult>IPv4_Endpoint</ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Constructor</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>254971903</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Constructor()</SourceLine> |
| <SourceLine>Addr = "0.0.0.0"</SourceLine> |
| <SourceLine>Protocol = 0</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams></ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Property> |
| <ItemName>Port</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>557723647</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Port As UInt16 = 3671</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>Port As UInt16 = 3671</ItemDeclaration> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>Addr</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1144741887</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Addr As IPv4_Address</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>Addr As IPv4_Address</ItemDeclaration> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <Property> |
| <ItemName>Protocol</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>869656575</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Protocol As IPv4_Protocol</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>Protocol As IPv4_Protocol</ItemDeclaration> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <ViewBehavior> |
| <ViewProperty> |
| <ObjName>Name</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <ItemType>String</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Index</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <PropertyValue>-2147483648</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Super</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <ItemType>String</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Left</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Position</PropertyGroup> |
| <PropertyValue>0</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Top</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Position</PropertyGroup> |
| <PropertyValue>0</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Port</ObjName> |
| <PropertyGroup>Behavior</PropertyGroup> |
| <PropertyValue>3671</PropertyValue> |
| <ItemType>UInt16</ItemType> |
| </ViewProperty> |
| </ViewBehavior> |
| </block> |
| <block type="Module" ID="1603973119"> |
| <ObjName>IPv4_Protocol</ObjName> |
| <ObjContainerID>813438975</ObjContainerID> |
| <IsClass>1</IsClass> |
| <ItemFlags>0</ItemFlags> |
| <IsInterface>0</IsInterface> |
| <Compatibility></Compatibility> |
| <Method> |
| <ItemName>Operator_Convert</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1027137535</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Function Operator_Convert() As String</SourceLine> |
| <SourceLine>Return ToString</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Function</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams></ItemParams> |
| <ItemResult>String</ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Operator_Convert</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>986585087</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Operator_Convert(s As String)</SourceLine> |
| <SourceLine>// acts as constructor for new object implicitly created</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>FromString(s)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams>s As String</ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Operator_Convert</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>814850047</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Function Operator_Convert() As UInt8</SourceLine> |
| <SourceLine>Return Value</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Function</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams></ItemParams> |
| <ItemResult>UInt8</ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Operator_Convert</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>490283007</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Operator_Convert(i As Integer)</SourceLine> |
| <SourceLine>// acts as constructor for new object implicitly created</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Value = CType(i, UInt8)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams>i As Integer</ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>ToString</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>2146996223</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Function ToString() As String</SourceLine> |
| <SourceLine>select case Value</SourceLine> |
| <SourceLine>case &h01</SourceLine> |
| <SourceLine>Return "UDP"</SourceLine> |
| <SourceLine>case &h02</SourceLine> |
| <SourceLine>Return "TCP"</SourceLine> |
| <SourceLine>case else</SourceLine> |
| <SourceLine>Return Value.ToString</SourceLine> |
| <SourceLine>end select</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Function</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams></ItemParams> |
| <ItemResult>String</ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Value</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1396336639</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Function Value() As UInt8</SourceLine> |
| <SourceLine>Return mProtocolCode</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Function</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams></ItemParams> |
| <ItemResult>UInt8</ItemResult> |
| </Method> |
| <Method> |
| <ItemName>FromString</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>782364671</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub FromString(s as String)</SourceLine> |
| <SourceLine>select case s.Uppercase</SourceLine> |
| <SourceLine>case "UDP"</SourceLine> |
| <SourceLine>Value = &h01</SourceLine> |
| <SourceLine>case "TCP"</SourceLine> |
| <SourceLine>Value = &h02</SourceLine> |
| <SourceLine>case else</SourceLine> |
| <SourceLine>Value = s.ToInteger</SourceLine> |
| <SourceLine>end Select</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams>s as String</ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Value</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>454696959</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Value(assigns ui as UInt8)</SourceLine> |
| <SourceLine>mProtocolCode = ui</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams>assigns ui as UInt8</ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Property> |
| <ItemName>mProtocolCode</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>2080421887</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>mProtocolCode As UInt8 = &h01</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>mProtocolCode As UInt8 = &h01</ItemDeclaration> |
| <ItemFlags>33</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <ViewBehavior> |
| <ViewProperty> |
| <ObjName>Name</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <ItemType>String</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Index</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <PropertyValue>-2147483648</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Super</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <ItemType>String</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Left</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Position</PropertyGroup> |
| <PropertyValue>0</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Top</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Position</PropertyGroup> |
| <PropertyValue>0</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| </ViewBehavior> |
| </block> |
| <block type="Module" ID="888487935"> |
| <ObjName>KNX_IndividualAddress</ObjName> |
| <ObjContainerID>813438975</ObjContainerID> |
| <IsClass>1</IsClass> |
| <ItemFlags>0</ItemFlags> |
| <IsInterface>0</IsInterface> |
| <Compatibility></Compatibility> |
| <Method> |
| <ItemName>Operator_Convert</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1027137535</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Function Operator_Convert() As String</SourceLine> |
| <SourceLine>Return ToString</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Function</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams></ItemParams> |
| <ItemResult>String</ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Operator_Convert</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>986585087</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Operator_Convert(s As String)</SourceLine> |
| <SourceLine>// acts as constructor for new object implicitly created</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>FromString(s)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams>s As String</ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Operator_Convert</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>814850047</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Function Operator_Convert() As UInt16</SourceLine> |
| <SourceLine>Return Value</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Function</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams></ItemParams> |
| <ItemResult>UInt16</ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Operator_Convert</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>490283007</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Operator_Convert(i As Integer)</SourceLine> |
| <SourceLine>// acts as constructor for new object implicitly created</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Value = CType(i, UInt16)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams>i As Integer</ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>ToString</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>2146996223</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Function ToString() As String</SourceLine> |
| <SourceLine>Return Bitwise.ShiftRight(mIndividualAddress AND &h0F000, 12).ToString + "." + _ </SourceLine> |
| <SourceLine>Bitwise.ShiftRight(mIndividualAddress AND &h00F00, 8).ToString + "." + _</SourceLine> |
| <SourceLine>BitwiseAnd(mIndividualAddress, &h000FF).ToString </SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Function</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams></ItemParams> |
| <ItemResult>String</ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Value</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1396336639</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Function Value() As UInt16</SourceLine> |
| <SourceLine>Return mIndividualAddress</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Function</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams></ItemParams> |
| <ItemResult>UInt16</ItemResult> |
| </Method> |
| <Method> |
| <ItemName>FromString</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>782364671</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub FromString(s as String)</SourceLine> |
| <SourceLine>var sa() as String = s.Split(".")</SourceLine> |
| <SourceLine>sa.ResizeTo(2) // (index 0 to 2 are 3 elements)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>var ia as uint16</SourceLine> |
| <SourceLine>ia = _</SourceLine> |
| <SourceLine>Bitwise.ShiftLeft(sa(0).ToInteger AND &h0F, 12) OR _</SourceLine> |
| <SourceLine>Bitwise.ShiftLeft(sa(1).ToInteger AND &h0F, 8) OR _</SourceLine> |
| <SourceLine>sa(2).ToInteger AND &hFF</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>mIndividualAddress = ia</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams>s as String</ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>Value</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>454696959</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub Value(assigns ui as UInt16)</SourceLine> |
| <SourceLine>mIndividualAddress = ui</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams>assigns ui as UInt16</ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Property> |
| <ItemName>mIndividualAddress</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>2080421887</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>mIndividualAddress As UInt16 = 0</SourceLine> |
| <SourceLine></SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemDeclaration>mIndividualAddress As UInt16 = 0</ItemDeclaration> |
| <ItemFlags>33</ItemFlags> |
| <IsShared>0</IsShared> |
| </Property> |
| <ViewBehavior> |
| <ViewProperty> |
| <ObjName>Name</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <ItemType>String</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Index</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <PropertyValue>-2147483648</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Super</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <ItemType>String</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Left</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Position</PropertyGroup> |
| <PropertyValue>0</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Top</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Position</PropertyGroup> |
| <PropertyValue>0</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| </ViewBehavior> |
| </block> |
| <block type="Module" ID="813438975"> |
| <ObjName>KNX</ObjName> |
| <ObjContainerID>0</ObjContainerID> |
| <IsClass>0</IsClass> |
| <ItemFlags>1</ItemFlags> |
| <IsInterface>0</IsInterface> |
| <Compatibility></Compatibility> |
| <Method> |
| <ItemName>print</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1271128063</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub print(optional s as String = "")</SourceLine> |
| <SourceLine>Window1.scr.AddText s + EndOfLine.Windows</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams>optional s as String = ""</ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>dump</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>871927807</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Sub dump(s as String)</SourceLine> |
| <SourceLine>var mb as MemoryBlock = s</SourceLine> |
| <SourceLine>var ln1, ln2 As String = ""</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>for i as Integer = 0 to mb.Size - 1</SourceLine> |
| <SourceLine>ln1 = ln1 + mb.Byte(i).ToHex(2) + " "</SourceLine> |
| <SourceLine>ln2 = ln2 + RightAlign(mb.Byte(i), 3) + " "</SourceLine> |
| <SourceLine>select case (i AND &h0F)</SourceLine> |
| <SourceLine>case &h07</SourceLine> |
| <SourceLine>ln1 = ln1 + " "</SourceLine> |
| <SourceLine>ln2 = ln2 + " "</SourceLine> |
| <SourceLine>case &h0F</SourceLine> |
| <SourceLine>print ln1 + " | " + ln2</SourceLine> |
| <SourceLine>ln1 = ""</SourceLine> |
| <SourceLine>ln2 = ""</SourceLine> |
| <SourceLine>end select</SourceLine> |
| <SourceLine>next</SourceLine> |
| <SourceLine>print ln1 + RepeatChar(" ", 50 - ln1.Length) + " | " + ln2</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Sub</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams>s as String</ItemParams> |
| <ItemResult></ItemResult> |
| </Method> |
| <Method> |
| <ItemName>RepeatChar</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>857585663</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Function RepeatChar(c as String, n as Integer) As String</SourceLine> |
| <SourceLine>var s as String</SourceLine> |
| <SourceLine>if n > 0 then</SourceLine> |
| <SourceLine>for i as Integer = 1 to n</SourceLine> |
| <SourceLine>s = s + c</SourceLine> |
| <SourceLine>next</SourceLine> |
| <SourceLine>end if</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>return s</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Function</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams>c as String, n as Integer</ItemParams> |
| <ItemResult>String</ItemResult> |
| </Method> |
| <Method> |
| <ItemName>RightAlign</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1471377407</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Function RightAlign(i as Integer, width as UInteger) As String</SourceLine> |
| <SourceLine>var s as String = RepeatChar(" ", width) + i.ToString</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>Return s.Right(width)</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>//</SourceLine> |
| <SourceLine></SourceLine> |
| <SourceLine>End Function</SourceLine> |
| </ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <AliasName></AliasName> |
| <ItemFlags>0</ItemFlags> |
| <IsShared>0</IsShared> |
| <ItemParams>i as Integer, width as UInteger</ItemParams> |
| <ItemResult>String</ItemResult> |
| </Method> |
| <ViewBehavior> |
| <ViewProperty> |
| <ObjName>Name</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <ItemType>String</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Index</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <PropertyValue>-2147483648</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Super</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>ID</PropertyGroup> |
| <ItemType>String</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Left</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Position</PropertyGroup> |
| <PropertyValue>0</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| <ViewProperty> |
| <ObjName>Top</ObjName> |
| <Visible>1</Visible> |
| <PropertyGroup>Position</PropertyGroup> |
| <PropertyValue>0</PropertyValue> |
| <ItemType>Integer</ItemType> |
| </ViewProperty> |
| </ViewBehavior> |
| <Constant> |
| <ItemName>k_KNXnetIP_PortNumber</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>2094727167</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>3671</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_KNXnetIP_SystemSetupMulticastAddress</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>945201151</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>0</ItemType> |
| <ItemDef>224.0.23.12</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_KNXnetIP_VERSION_10</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>693262335</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h10</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_HEADER_SIZE_10</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1019740159</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h06</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_BIG_ENDIAN</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1829822463</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>3</ItemType> |
| <ItemDef>False</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_CONNECTIONSTATE_REQUEST_TIMEOUT</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1154476031</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>10</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_TUNNELING_REQUEST_TIMEOUT</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>706924543</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>1</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_CONNECTION_ALIVE_TIME</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1845434367</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>120</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_CONNECTION_HEARTBEAT_TIME</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1765941247</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>60</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_SEARCH_REQUEST_TIMEOUT</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>506656767</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>3</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>kLogWidth</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>2040625151</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>50</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_DESCRIPTION_REQUEST_TIMEOUT</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1628780543</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>10</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_DISCONNECT_REQUEST_TIMEOUT</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>2090063871</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>10</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_IPV4_UDP</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>302188543</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h01</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_IPV4_TCP</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>422152191</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h02</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_DEVICE_MGMT_CONNECTION</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>265279487</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h03</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_TUNNEL_CONNECTION</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1135194111</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h04</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_REMLOG_CONNECTION</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1464309759</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h06</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_REMCONF_CONNECTION</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>2146793471</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h07</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_OBJSVR_CONNECTION</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1553385471</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h08</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_E_NO_ERROR</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1912543231</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h00</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_E_CONNECTION_TYPE</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>566310911</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h22</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_E_CONNECTION_OPTION</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>297238527</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h23</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_E_NO_MORE_CONNECTIONS</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>2117294079</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h24</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_TUNNEL_LINKLAYER</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>257230847</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h02</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_TUNNEL_RAW</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1812301823</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h04</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_TUNNEL_BUSMONITOR</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>946696191</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h80</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_CONNECT_REQUEST_TIMEOUT</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>551831551</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>10</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_CONNECT_REQUEST</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>85004287</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h0205</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_CONNECT_RESPONSE</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>549644287</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h0206</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_DISCONNECT_REQUEST</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1288566783</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h0209</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_DISCONNECT_RESPONSE</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1233113087</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h020A</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_CONNECTIONSTATE_REQUEST</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>2066814975</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h0207</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_CONNECTIONSTATE_RESPONSE</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>222119935</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h0208</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_SEARCH_REQUEST</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1446680575</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h0201</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_SEARCH_RESPONSE</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>163794943</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h0202</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_DESCRIPTION_REQUEST</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>2092138495</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h0203</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_DESCRIPTION_RESPONSE</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>434110463</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h0204</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_DEVICE_CONFIGURATION_REQUEST</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1763586047</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h0310</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_DEVICE_CONFIGURATION_ACK</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1417000959</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h0311</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_TUNNELING_REQUEST</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1125009407</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h0420</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_TUNNELING_ACK</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>457625599</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h0421</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_ROUTING_INDICATION</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1464424447</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h0530</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_ROUTING_LOST_MESSAGE</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1828769791</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h0531</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_E_HOST_PROTOCOL_TYPE</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>735709183</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h01</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_E_VERSION_NOT_SUPPORTED</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1049821183</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h02</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_E_SEQUENCE_NUMBER</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>875962367</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h04</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_E_CONNECTION_ID</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>108609535</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h21</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_E_DATA_CONNECTION</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>767053823</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h26</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_E_KNX_CONNECTION</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1381896191</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h27</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_E_TUNNELING_LAYER</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1925316607</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h29</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_DIB_DEVICE_INFO</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>2131132415</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h01</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_DIB_SUPP_SVC_FAMILIES</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1352294399</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h02</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_DIB_IP_CONFIG</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1154531327</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h03</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_DIB_IP_CUR_CONFIG</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>892841983</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h04</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_DIB_KNX_ADDRESSES</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1273579519</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h05</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_DIB_MFR_DATA</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>838557695</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&hFE</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_SF_Core</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1640351743</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h02</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_SF_DeviceManagement</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1227569151</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h03</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_SF_Tunneling</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1957122047</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h04</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_SF_Routing</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1318838271</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h05</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_SF_RemoteLogging</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1979711487</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h06</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_SF_RemoteConfiguration</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>792989695</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h07</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Constant> |
| <ItemName>k_SF_ObjectServer</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>909910015</PartID> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemType>2</ItemType> |
| <ItemDef>&h08</ItemDef> |
| <ItemFlags>0</ItemFlags> |
| </Constant> |
| <Structure> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemName>s_FRAME_HEADER</ItemName> |
| <ItemFlags>0</ItemFlags> |
| <ItemName>s_FRAME_HEADER</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1994727423</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Header_Length as uint8</SourceLine> |
| <SourceLine>Protocol_Version as uint8</SourceLine> |
| <SourceLine>Service_Type as uint16</SourceLine> |
| <SourceLine>Total_Length as uint16</SourceLine> |
| </ItemSource> |
| </Structure> |
| <Structure> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemName>s_HPAI</ItemName> |
| <ItemFlags>0</ItemFlags> |
| <ItemName>s_HPAI</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>94738431</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Structure_Length as uint8</SourceLine> |
| <SourceLine>Host_Protocol_Code as uint8</SourceLine> |
| <SourceLine>IP_Address as uint32</SourceLine> |
| <SourceLine>IP_Port_Number as uint16</SourceLine> |
| </ItemSource> |
| </Structure> |
| <Structure> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemName>s_SEARCH_REQUEST</ItemName> |
| <ItemFlags>0</ItemFlags> |
| <ItemName>s_SEARCH_REQUEST</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1387759615</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Frame_Header as s_FRAME_HEADER</SourceLine> |
| <SourceLine>Discovery_Endpoint as s_HPAI</SourceLine> |
| </ItemSource> |
| </Structure> |
| <Structure> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemName>s_DIB_IP_CONFIG</ItemName> |
| <ItemFlags>0</ItemFlags> |
| <ItemName>s_DIB_IP_CONFIG</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1871718399</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>IP_Address as uint32</SourceLine> |
| <SourceLine>Subnet_Mask as uint32</SourceLine> |
| <SourceLine>Default_Gateway as uint32</SourceLine> |
| <SourceLine>IP_Capabilities as uint8</SourceLine> |
| <SourceLine>IP_Assignment_Method as uint8</SourceLine> |
| </ItemSource> |
| </Structure> |
| <Structure> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemName>s_DIB_DEVICE_INFO</ItemName> |
| <ItemFlags>0</ItemFlags> |
| <ItemName>s_DIB_DEVICE_INFO</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1291542527</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>KNX_Medium as uint8</SourceLine> |
| <SourceLine>Device_Status as uint8</SourceLine> |
| <SourceLine>KNX_Individual_Address as uint16</SourceLine> |
| <SourceLine>Project_Installation_Identifier as uint16</SourceLine> |
| <SourceLine>KNXnetIP_Device_KNX_Serial_Number as string * 6</SourceLine> |
| <SourceLine>KNXnetIP_Device_Routing_Multicast_Address as uint32</SourceLine> |
| <SourceLine>KNXnetIP_Device_MAC_Address as string * 6</SourceLine> |
| <SourceLine>Device_Friendly_Name as string * 30</SourceLine> |
| </ItemSource> |
| </Structure> |
| <Structure> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemName>s_DIB_HEADER</ItemName> |
| <ItemFlags>0</ItemFlags> |
| <ItemName>s_DIB_HEADER</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>739596287</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Structure_Length as uint8</SourceLine> |
| <SourceLine>Description_Type_Code as uint8</SourceLine> |
| </ItemSource> |
| </Structure> |
| <Structure> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemName>s_DIB_KNX_ADDRESSES_ITEM</ItemName> |
| <ItemFlags>0</ItemFlags> |
| <ItemName>s_DIB_KNX_ADDRESSES_ITEM</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>591538175</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>KNX_Individual_Address as uint16</SourceLine> |
| </ItemSource> |
| </Structure> |
| <Structure> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemName>s_DIB_IP_CUR_CONFIG</ItemName> |
| <ItemFlags>0</ItemFlags> |
| <ItemName>s_DIB_IP_CUR_CONFIG</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1328351231</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>IP_Address as uint32</SourceLine> |
| <SourceLine>Subnet_Mask as uint32</SourceLine> |
| <SourceLine>Default_Gateway as uint32</SourceLine> |
| <SourceLine>DHCP_Server as uint32</SourceLine> |
| <SourceLine>IP_Assignment_Method as uint8</SourceLine> |
| <SourceLine>Reserved as uint8</SourceLine> |
| </ItemSource> |
| </Structure> |
| <Structure> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemName>s_DIB_MFR_DATA</ItemName> |
| <ItemFlags>0</ItemFlags> |
| <ItemName>s_DIB_MFR_DATA</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>386875391</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>KNX_Manufacturer_ID as uint16</SourceLine> |
| </ItemSource> |
| </Structure> |
| <Structure> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemName>s_DIB_SUPP_SVC_FAMILIES_ITEM</ItemName> |
| <ItemFlags>0</ItemFlags> |
| <ItemName>s_DIB_SUPP_SVC_FAMILIES_ITEM</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>889796607</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Service_Family_ID as uint8</SourceLine> |
| <SourceLine>Service_Family_Version as uint8</SourceLine> |
| </ItemSource> |
| </Structure> |
| <Structure> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemName>s_DESCRIPTION_REQUEST</ItemName> |
| <ItemFlags>0</ItemFlags> |
| <ItemName>s_DESCRIPTION_REQUEST</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>2126141439</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Frame_Header as s_FRAME_HEADER</SourceLine> |
| <SourceLine>Control_Endpoint as s_HPAI</SourceLine> |
| </ItemSource> |
| </Structure> |
| <Structure> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemName>s_DISCONNECT_RESPONSE</ItemName> |
| <ItemFlags>0</ItemFlags> |
| <ItemName>s_DISCONNECT_RESPONSE</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>994977791</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Frame_Header as s_FRAME_HEADER</SourceLine> |
| <SourceLine>Communication_Channel_ID as uint8</SourceLine> |
| <SourceLine>Status as uint8</SourceLine> |
| </ItemSource> |
| </Structure> |
| <Structure> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemName>s_DISCONNECT_REQUEST</ItemName> |
| <ItemFlags>0</ItemFlags> |
| <ItemName>s_DISCONNECT_REQUEST</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1436194815</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Frame_Header as s_FRAME_HEADER</SourceLine> |
| <SourceLine>Communication_Channel_ID as uint8</SourceLine> |
| <SourceLine>reserved as uint8</SourceLine> |
| <SourceLine>Control_Endpoint as s_HPAI</SourceLine> |
| </ItemSource> |
| </Structure> |
| <Structure> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemName>s_CONNECTIONSTATE_RESPONSE</ItemName> |
| <ItemFlags>0</ItemFlags> |
| <ItemName>s_CONNECTIONSTATE_RESPONSE</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>478877695</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Frame_Header as s_FRAME_HEADER</SourceLine> |
| <SourceLine>Communication_Channel_ID as uint8</SourceLine> |
| <SourceLine>Status as uint8</SourceLine> |
| </ItemSource> |
| </Structure> |
| <Structure> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemName>s_CONNECTIONSTATE_REQUEST</ItemName> |
| <ItemFlags>0</ItemFlags> |
| <ItemName>s_CONNECTIONSTATE_REQUEST</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1649688575</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Frame_Header as s_FRAME_HEADER</SourceLine> |
| <SourceLine>Communication_Channel_ID as uint8</SourceLine> |
| <SourceLine>reserved as uint8</SourceLine> |
| <SourceLine>Control_Endpoint as s_HPAI</SourceLine> |
| </ItemSource> |
| </Structure> |
| <Structure> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemName>s_CRD</ItemName> |
| <ItemFlags>0</ItemFlags> |
| <ItemName>s_CRD</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>922470399</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Structure_Length as uint8</SourceLine> |
| <SourceLine>Connection_Type_Code as uint8</SourceLine> |
| <SourceLine>KNX_Individual_Address as uint16</SourceLine> |
| </ItemSource> |
| </Structure> |
| <Structure> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemName>s_CONNECT_REQUEST</ItemName> |
| <ItemFlags>0</ItemFlags> |
| <ItemName>s_CONNECT_REQUEST</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1168777215</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Frame_Header as s_FRAME_HEADER</SourceLine> |
| <SourceLine>Control_Endpoint as s_HPAI</SourceLine> |
| <SourceLine>Data_Endpoint as s_HPAI</SourceLine> |
| <SourceLine>Connection_Request_Information as s_CRI</SourceLine> |
| </ItemSource> |
| </Structure> |
| <Structure> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemName>s_CONNECT_RESPONSE</ItemName> |
| <ItemFlags>0</ItemFlags> |
| <ItemName>s_CONNECT_RESPONSE</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>2137655295</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Frame_Header as s_FRAME_HEADER</SourceLine> |
| <SourceLine>Communication_Channel_ID as uint8</SourceLine> |
| <SourceLine>Status as uint8</SourceLine> |
| <SourceLine>Data_Endpoint as s_HPAI</SourceLine> |
| <SourceLine>CRD as s_CRD</SourceLine> |
| </ItemSource> |
| </Structure> |
| <Structure> |
| <TextEncoding>134217984</TextEncoding> |
| <ItemName>s_CRI</ItemName> |
| <ItemFlags>0</ItemFlags> |
| <ItemName>s_CRI</ItemName> |
| <Compatibility></Compatibility> |
| <Visible>1</Visible> |
| <PartID>1490841599</PartID> |
| <ItemSource> |
| <TextEncoding>134217984</TextEncoding> |
| <SourceLine>Structure_Length as uint8</SourceLine> |
| <SourceLine>Connection_Type_Code as uint8</SourceLine> |
| <SourceLine>KNX_Layer as uint8</SourceLine> |
| <SourceLine>reserved as uint8</SourceLine> |
| </ItemSource> |
| </Structure> |
| </block> |
| </RBProject> |
| |
| &&XSLT&& |
| |
| <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:template match="/RBProject">===== Constants ===== |
| |
| <datatables> |
| ^ ItemName ^ ItemDef ^ ItemType ^ |
| |
| <xsl:for-each select="block/Constant"> | <xsl:value-of select="../ObjName"/>.<xsl:value-of select="ItemName"/> | <xsl:value-of select="ItemDef"/> | <xsl:value-of select="ItemType"/> | |
| </xsl:for-each> |
| </datatables> |
| </xsl:template> |
| </xsl:stylesheet> |
| |
| &&END&& |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| ---- |
| |
| |
====== Constants ====== | ====== Constants ====== |
| |