Hallo, i have a problem with Network connectivity from FEZ CerbuinoNet board. When I using the Board with Netmf4.3 and GHI SDK 2015 R1 is by following Code no response by ping to the board. The same Code and board with Netmf4.2 and GHI SDK 2015 R1 and Board answers by ping. With Monutaineer Eth 1 give no Problem, this Board answers by Netmf4.2 + Netmf4.3 correctly. The Firmware is in each case on topical state.
Imports GT = Gadgeteer
Imports GTM = Gadgeteer.Modules
Imports Microsoft.SPOT.Net.NetworkInformation
Imports Microsoft.SPOT.Hardware
Imports VB = Microsoft.VisualBasic
Imports System
Namespace TestCerbuinoNet
Partial Public Class Program
Private IPAdresse As String = "192.168.0.25"
Private NetzMaske$ = "255.255.255.0"
Private DefaultGateway$ = "192.168.0.1"
Public Sub ProgramStarted()
Debug.Print("Program Started")
If InitializeNetzwerk() = True Then
Debug.Print("Is ping to device OK????")
End If
End Sub
Private Function InitializeNetzwerk() As Boolean
Debug.Print("Initialisiere Netzwerk...")
Dim interfaces As NetworkInterface() = NetworkInterface.GetAllNetworkInterfaces()
If interfaces IsNot Nothing AndAlso interfaces.Length > 0 Then
Dim NetInterface As NetworkInterface = interfaces(0)
NetInterface.EnableStaticIP(IPAdresse, NetzMaske, DefaultGateway)
Debug.Print(" IP Addresse: " + NetInterface.IPAddress)
Debug.Print(" Subnet Mask: " + NetInterface.SubnetMask)
Debug.Print(" DefaultGateway: " + NetInterface.GatewayAddress)
Return True
Else
Debug.Print("No network device found.")
Return False
End If
End Function
End Class
End Namespace
I hope you can help
many thanks
Klaus
@ Leuthold -
I am not sure if your code still correct for 4.3 because a lot of change from 4.2 to 4.3.
But, you can try our example from here:
https://www.ghielectronics.com/docs/30/networking
There is no ENC28 but ENC28 is same Wifi, just has no Join() function.
More detail is below:
using GHI.Networking;
using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;
using Microsoft.SPOT.Net.NetworkInformation;
using System;
using System.Net;
using System.Threading;
public class Program
{
private static EthernetENC28J60 netif;
public static void Main()
{
bool useDHCP = false;
NetworkChange.NetworkAvailabilityChanged += NetworkChange_NetworkAvailabilityChanged;
NetworkChange.NetworkAddressChanged += NetworkChange_NetworkAddressChanged;
netif = new EthernetENC28J60(SPI.SPI_module.SPI1, chipSelectPin, externalInterruptPin, resetPin);
if (useDHCP == false)
{
Debug.Print("Set static IP...");
netif.EnableStaticIP("x.x.x.x", "x.x.x.x", "x.x.x.x");
netif.EnableStaticDns(new string[] { "x.x.x.x", "x.x.x.x" });
}
else
{
Debug.Print("Get DHCP IP...");
//// DHCP IP
if (netif.IsDhcpEnabled == false)
{
netif.EnableDhcp();
netif.EnableDynamicDns();
}
}
Debug.Print(Opening ...");
netif.Open();
while (!isReady )
{
Thread.Sleep(250);
}
Debug.Print(Network is ready to use...");
Thread.Sleep(-1);
}
static bool isReady = false;
private static void NetworkChange_NetworkAddressChanged(object sender, Microsoft.SPOT.EventArgs e)
{
Debug.Print("Network address changed");
Debug.Print("Is DhCp enabled: " + netif.NetworkInterface.IsDhcpEnabled);
Debug.Print("Is DynamicDnsEnabled enabled: " + netif.NetworkInterface.IsDynamicDnsEnabled);
Debug.Print("NetworkInterfaceType " + netif.NetworkInterface.NetworkInterfaceType);
Debug.Print("Network settings:");
Debug.Print("IP Address: " + netif.NetworkInterface.IPAddress);
Debug.Print("Subnet Mask: " + netif.NetworkInterface.SubnetMask);
Debug.Print("Default Gateway: " + netif.NetworkInterface.GatewayAddress);
for (int i = 0; i < netif.NetworkInterface.PhysicalAddress.Length; i++)
{
Debug.Print(" " + netif.NetworkInterface.PhysicalAddress[i].ToString());
}
Debug.Print("Number of DNS servers:" + netif.NetworkInterface.DnsAddresses.Length);
for (int i = 0; i < netif.NetworkInterface.DnsAddresses.Length; i++)
Debug.Print("DNS Server " + i.ToString() + ":" + netif.NetworkInterface.DnsAddresses[i]);
Debug.Print("------------------------------------------------------");
if (netif.IPAddress != "0.0.0.0")
{
isReady = true;
}
}
private static void NetworkChange_NetworkAvailabilityChanged(object sender, NetworkAvailabilityEventArgs e)
{
Debug.Print("Network availability: " + e.IsAvailable.ToString());
}
}
@ Dat -
Hallo, first many Thanks for the answer. Now it funct ;D.
Here the code in vb.net ![:wink: :wink:](https://forums.ghielectronics.com/images/emoji/twitter/wink.png?v=12)
Imports GT = Gadgeteer
Imports GTM = Gadgeteer.Modules
Imports GHI.Networking
Imports Microsoft.SPOT.Net.NetworkInformation
Imports Microsoft.SPOT.Hardware
Imports VB = Microsoft.VisualBasic
Imports System.Text
Imports System
Namespace TestCerbuinoNet43
Partial Public Class Program
Private netif As EthernetENC28J60
Private IPAdresse As String = "x.x.x.x"
Private NetzMaske$ = "x.x.x.x"
Private DefaultGateway$ = "x.x.x.x"
' This is run when the mainboard is powered up or reset.
Public Sub ProgramStarted()
Debug.Print("Program Started")
AddHandler NetworkChange.NetworkAvailabilityChanged, AddressOf NetworkChange_NetworkAvailabilityChanged
AddHandler NetworkChange.NetworkAddressChanged, AddressOf NetworkChange_NetworkAddressChanged
Utility.SetLocalTime(New DateTime(2015, 9, 20, 20, 45, 0))
If InitializeNetzwerk() = True Then
Debug.Print("Is ping to device OK?")
End If
End Sub
Private Function InitializeNetzwerk() As Boolean
Debug.Print("Initialisiere Netzwerk...")
netif = New EthernetENC28J60(Hardware.SPI.SPI_module.SPI1, GHI.Pins.FEZCerbuinoNet.EthernetInterface.ChipSelect, GHI.Pins.FEZCerbuinoNet.EthernetInterface.ExternalInterrupt, GHI.Pins.FEZCerbuinoNet.EthernetInterface.Reset)
Debug.Print("Set static IP...")
netif.EnableStaticIP(IPAdresse, NetzMaske, DefaultGateway)
netif.EnableStaticDns(New String() {DefaultGateway})
Debug.Print("Opening...")
netif.Open()
While Not isReady
Thread.Sleep(250)
End While
Debug.Print("Network is ready to use...")
Return True
End Function
Private isReady As Boolean = False
Private Sub NetworkChange_NetworkAddressChanged(ByVal sender As Object, ByVal e As Microsoft.SPOT.EventArgs)
Debug.Print("Network address changed")
Debug.Print(("NetworkInterfaceType " + netif.NetworkInterface.NetworkInterfaceType.ToString))
Debug.Print("Network settings:")
Debug.Print(("IP Address: " + netif.NetworkInterface.IPAddress))
Debug.Print(("Subnet Mask: " + netif.NetworkInterface.SubnetMask))
Debug.Print(("Default Gateway: " + netif.NetworkInterface.GatewayAddress))
Dim i As Integer = 0
Debug.Print("MAC Adresse: " & Bytes2HexString(netif.NetworkInterface.PhysicalAddress))
Debug.Print("DNS server:" + netif.NetworkInterface.DnsAddresses(0))
Debug.Print("------------------------------------------------------")
If (netif.IPAddress <> "0.0.0.0") Then
isReady = True
End If
End Sub
Private Sub NetworkChange_NetworkAvailabilityChanged(ByVal sender As Object, ByVal e As NetworkAvailabilityEventArgs)
Debug.Print(("Network availibility: " + e.IsAvailable.ToString))
End Sub
Dim HexArray() As Char = "0123456789ABCDEF".ToCharArray
Private Function Bytes2HexString(ByVal ByteArray As Byte()) As String
Dim sb As New StringBuilder
Dim HexByte$ = ""
For Each b As Byte In ByteArray
Dim v% = b And &HFF
' leider gibt es im Framework 4.3 keine bit shift Operations im VB Compiler mehr :-((
HexByte = HexArray(v \ 16)
HexByte += HexArray(v And &HF)
sb.Append(HexByte)
sb.Append(" ")
Next
Return sb.ToString()
End Function
End Class
End Namespace