public MessageCmd(InterfaceAddress interfaceAddr, InterfaceCommand interfaceCommand, byte[] data) : base(interfaceAddr) { m_InterfaceCmd = interfaceCommand; m_Data = data; }
public override IDestination CreateDestination(InterfaceAddress nic, int port, bool isOpenExternally) { var address = nic.Address; address.ScopeId = 0; return(new TCPIPv6Destination(nic.IPv6PrefixLength, address, (uint)port, isOpenExternally)); }
public InterfaceAddress[] GetInterfaceAddresses() { var result = new List <InterfaceAddress>(); IntPtr ifap; if (getifaddrs(out ifap) != 0) { throw new SystemException("getifaddrs() failed"); } try { var next = ifap; while (next != IntPtr.Zero) { var addr = (ifaddrs)Marshal.PtrToStructure(next, typeof(ifaddrs)); var name = addr.ifa_name; if (addr.ifa_addr != IntPtr.Zero) { var index = if_nametoindex(name); var sockaddr = (sockaddr_in)Marshal.PtrToStructure(addr.ifa_addr, typeof(sockaddr_in)); if (sockaddr.sin_family == AF_INET6) { var nmask = (sockaddr_in6)Marshal.PtrToStructure(addr.ifa_netmask, typeof(sockaddr_in6)); var prefixLength = GetIPv6PrefixLength(nmask.sin6_addr.u6_addr8); var sockaddr6 = (sockaddr_in6)Marshal.PtrToStructure(addr.ifa_addr, typeof(sockaddr_in6)); var address = new IPAddress(sockaddr6.sin6_addr.u6_addr8, sockaddr6.sin6_scope_id); var info = new InterfaceAddress(index, name, address, prefixLength); result.Add(info); } else if (sockaddr.sin_family == AF_INET) { var netmaskaddr = (sockaddr_in)Marshal.PtrToStructure(addr.ifa_netmask, typeof(sockaddr_in)); var netmask = new IPAddress(netmaskaddr.in_addr); var address = new IPAddress(sockaddr.in_addr); var info = new InterfaceAddress(index, name, address, netmask); result.Add(info); } } next = addr.ifa_next; } } finally { freeifaddrs(ifap); } return(result.ToArray()); }
public BillToBillDevice( string communicationPortName ) { //configure serial port ------------- var serialPort = CreateSerialPort(); serialPort.PortName = communicationPortName; m_CommunicationPort = serialPort; //---------------------------------- m_InterfaceAddress = InterfaceAddress.B2B; //object used for synchronize port read \ write requests m_PortLocker = new object(); // device responses handler m_ResponseHandler = CreateResponseHandler(); }
public static bool CheckResponseData( byte[] responseData, InterfaceAddress deviceInterfaceAddr) { bool ret = false; if (responseData.Length >= PACKET_MIN_LENGTH) { var synch = responseData[0]; var ifaceaAddr = responseData[1]; var packetLen = responseData[2]; var calcData = new byte[responseData.Length - 2]; Array.Copy(responseData, calcData, calcData.Length); var checkCrc = CalculateCrc(calcData); //var preCrcData = new byte[CRC_BYTE_COUNT]; var preCrc = new byte[CRC_BYTE_COUNT]; Array.Copy( responseData, responseData.Length - CRC_BYTE_COUNT, preCrc, 0, CRC_BYTE_COUNT); var crc = ((short)preCrc[1] << 8) + preCrc[0]; //Debug.WriteLine("CheckCrc " + checkCrc); //Debug.WriteLine("My Crc " + crc); if (synch == 0x2 && ifaceaAddr == (byte)deviceInterfaceAddr && checkCrc == crc && packetLen == responseData.Length) { ret = true; } } //somtimes after reset command //device return wrong ack response, handle it else if (responseData.Length == 4) { if (responseData[0] == SYNC && responseData[1] == (byte)deviceInterfaceAddr && responseData[2] == PACKET_MIN_LENGTH && responseData[3] == 0x00) { ret = true; } } return(ret); }
/// <summary> /// Compares this object against the specified object. /// The result is {@code true} if and only if the argument is /// not {@code null} and it represents the same interface address as /// this object. /// <para> /// Two instances of {@code InterfaceAddress} represent the same /// address if the InetAddress, the prefix length and the broadcast are /// the same for both. /// /// </para> /// </summary> /// <param name="obj"> the object to compare against. </param> /// <returns> {@code true} if the objects are the same; /// {@code false} otherwise. </returns> /// <seealso cref= java.net.InterfaceAddress#hashCode() </seealso> public override bool Equals(Object obj) { if (!(obj is InterfaceAddress)) { return(false); } InterfaceAddress cmp = (InterfaceAddress)obj; if (!(Address_Renamed == null ? cmp.Address_Renamed == null : Address_Renamed.Equals(cmp.Address_Renamed))) { return(false); } if (!(Broadcast_Renamed == null ? cmp.Broadcast_Renamed == null : Broadcast_Renamed.Equals(cmp.Broadcast_Renamed))) { return(false); } if (MaskLength != cmp.MaskLength) { return(false); } return(true); }
public override IDestination CreateDestination(InterfaceAddress nic, int port, bool isOpenExternally) { return(new TCPIPv4Destination(nic.Address, (uint)port, isOpenExternally)); }
public abstract IDestination CreateDestination(InterfaceAddress nic, int port, bool isOpenExternally);
public MessageBase(InterfaceAddress interfaceAddr) { m_InterfaceAddr = interfaceAddr; }
public MessageAck(InterfaceAddress interfaceAddr) : base(interfaceAddr) { }