精华内容
下载资源
问答
  • 基于android4.0的以太网DHCP或者设置静态Ip来实现网络连接,主要实现过程如下: 一。DHCP动态获取ip实现网络连接 1.注册网络状态变化的广播接收: private void registerEthernet() {  ...

        前段时间做了个厂家测试程序,中间有涉及到网口的检测。基于android4.0的以太网DHCP或者设置静态Ip来实现网络连接,主要实现过程如下:

    一。DHCP动态获取ip实现网络连接

    1.注册网络状态变化的广播接收:

    private void registerEthernet() {
        IntentFilter ethFilter = new IntentFilter(EthernetManager.ETHERNET_STATE_CHANGED_ACTION);
        ethFilter.addAction(EthernetManager.NETWORK_STATE_CHANGED_ACTION);
        registerReceiver(mEthConnectReceiver, ethFilter);
    }
    
    private BroadcastReceiver mEthConnectReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();
            Log.d(TAG, " Ethernet onRecevice action = " + action);
            if (action.equals(EthernetManager.ETHERNET_STATE_CHANGED_ACTION)) {
                int msg = intent.getIntExtra(EthernetManager.EXTRA_ETHERNET_STATE, -1);
                switch (msg) {
                case EthernetDataTracker.EVENT_DHCP_CONNECT_FAILED:
                    break;
                case EthernetDataTracker.EVENT_DHCP_DISCONNECT_FAILED:
                    break;
                case EthernetDataTracker.EVENT_STATIC_CONNECT_FAILED:
                    break;
                case EthernetDataTracker.EVENT_STATIC_DISCONNECT_FAILED:
                    break;
                case EthernetDataTracker.EVENT_DHCP_CONNECT_SUCCESSED:
                    pingEthGateway(getEthGateWay());//ping命令DHCP连接网络是否成功
                    break;
                case EthernetDataTracker.EVENT_DHCP_DISCONNECT_SUCCESSED:
                    break;
                case EthernetDataTracker.EVENT_STATIC_CONNECT_SUCCESSED:
                    pingEthGateway(getEthGateWay());//ping命令测试静态IP连接网络是否成功
                    break;
                case EthernetDataTracker.EVENT_STATIC_DISCONNECT_SUCCESSED:
                    break;
                case EthernetDataTracker.EVENT_PHY_LINK_UP:
                    setDhcp();//网线插上后自己进行DHCP
                    break;
                case EthernetDataTracker.EVENT_PHY_LINK_DOWN:
                    Log.d(TAG, "EVENT_PHY_LINK_DOWN ");//网线拔出
                    break;
                default:
                    break;
                }
            }
        }
    };

    2.通过DHCP实现网络连接

    private String dhcp_gateway = null;
    private String wifi_gateway = null;
    private EthernetManager mEthManager = null;
    private WifiManager mWifiManager = null;
    private ConnectivityManager mConnectivityManager = null;
    
    public void getInstance(Context context) {
            mEthManager = (EthernetManager) context.getSystemService(Context.ETHERNET_SERVICE);
            mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
            mConnectivityManager = (ConnectivityManager) context
    				.getSystemService(Context.CONNECTIVITY_SERVICE);
    }
    public void setDhcp() {
    	mWifiManager.setWifiEnabled(false);//断开WIFI的连接
    	mEthManager.setEthernetEnabled(false);
    	Log.i(TAG, "getEthernetState=" + mEthManager.getEthernetState());
    	mEthManager.setEthernetDefaultConf();
    	mEthManager.setInterfaceName("eth0");
    	mEthManager.setEthernetEnabled(true);
    	Log.i(TAG, "getEthernetState=" + mEthManager.getEthernetState());
    }

    3.获取IP信息:

    public String getEthGateWay() {
    	String ip = mConnectivityManager.getLinkProperties(ConnectivityManager.TYPE_ETHERNET)
    			.getAddresses().toString();
    	String mGW = mConnectivityManager.getLinkProperties(ConnectivityManager.TYPE_ETHERNET)
    				.getRoutes().toString();
    	String mDns = mConnectivityManager.getLinkProperties(ConnectivityManager.TYPE_ETHERNET)
    				.getDnses().toString();
    	Log.i(TAG, "getEthGateWay ip=" + ip);
    	Log.i(TAG, "getEthGateWay mGW=" + mGW);
    	Log.i(TAG, "getEthGateWay mDns=" + mDns);
    	if (mGW.contains(">")) {
    		mGW = mGW.substring(mGW.lastIndexOf('>') + 2, mGW.length() - 1);
    	}
    	dhcp_gateway = mGW;
    	return mGW;
    }

    其中获取的Ip信息为:

        getEthGateWay ip=[/192.168.1.102]
        getEthGateWay mGW=[0.0.0.0/0 -> 192.168.1.1]
        getEthGateWay mDns=[/192.168.10.247, /192.168.1.1]

    因此需要对网关信息进行处理。

    4.Ping命令测试IP地址:

       使用Root权限,通过JNI封装成一个系统库,调用exe command进行ping -c 4 -w 100 192.168.1.1测试。代码将不详细贴出。

        执行结果:

        I/SystemTestingJNI( 1836): executeCommand ret=0, result=PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
        I/SystemTestingJNI( 1836): 64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=6.54 ms
        I/SystemTestingJNI( 1836): 64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.316 ms
        I/SystemTestingJNI( 1836): 64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.194 ms    
        I/SystemTestingJNI( 1836): 64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=0.255 ms
        I/SystemTestingJNI( 1836): 
        I/SystemTestingJNI( 1836): --- 192.168.1.1 ping statistics ---
        I/SystemTestingJNI( 1836): 4 packets transmitted, 4 received, 0% packet loss, time 3001ms
        I/SystemTestingJNI( 1836): rtt min/avg/max/mdev = 0.194/1.826/6.542/2.723 ms

      --还有一种方法,使用Runtime去ping,但是需要注意权限问题,以及输入输出流得自己处理。 exec执行时阻塞、非阻塞,返回结果问题

        Process p= Runtime.getRuntime().exec(cmd);//String cmd

    -------------------------------------------------------------------------------------------------------------------

    二。通过设置静态IP连接网络:

    public static void setStaticIp() {
    	mWifiManager.setWifiEnabled(false);
    	mEthManager.setEthernetEnabled(false);
    	DhcpInfoInternal mDhcpInfoInternal = new DhcpInfoInternal();
    	InetAddress iRoute = NetworkUtils.numericToInetAddress("192.168.1.103");
    	InetAddress iNetmask = NetworkUtils.numericToInetAddress("255.255.255.0");
    	try {
    		int netmask = NetworkUtils.inetAddressToInt(iNetmask);
    		int prefixLength = NetworkUtils.netmaskIntToPrefixLength(netmask);
    		mDhcpInfoInternal.prefixLength = prefixLength;
    	} catch (IllegalArgumentException e) {
    		e.printStackTrace();
    	}
    	mDhcpInfoInternal.ipAddress = "192.168.1.103";
    	mDhcpInfoInternal.addRoute(new RouteInfo(iRoute));
    	mDhcpInfoInternal.dns1 = "192.168.10.248";
    	mDhcpInfoInternal.serverAddress = "255.255.255.0";
    
    	mEthManager.saveEthernetIpInfo(mDhcpInfoInternal.makeDhcpInfo(),
    				EthernetManager.ETHERNET_CONNECT_MODE_MANUAL);
    	mEthManager.setEthernetEnabled(true);
    	DhcpInfo dhcpInfo = mEthManager.getSavedEthernetIpInfo();
    	dhcp_gateway = Formatter.formatIpAddress(dhcpInfo.gateway);
    }


    ----通过网口实现网络连接实现,就此Ending。。------

    DHCP详细代码:http://www.oschina.net/code/snippet_1051613_26563

    配置工程中需要引用framework.jar,services.jar。

    配置方法:

           取到out\target\common\obj\JAVA_LIBRARIES\framework_intermediates\class.jar,然后放到本地,右击工程进入java build path ,通过add Library--user library ---添加刚取到的class.jar,取名为framewrok.最后调整Java build path 中的order and Export 将framework一直up到第一个。

         取到out\target\common\obj\JAVA_LIBRARIES\services_intermediates\class.jar。方法同framework.

         环境配置好后,重新Build。就不会有红叉叉了!!


    WIFI文章:WIFI,热点扫描,配对,以及IP的获取。

    http://my.oschina.net/hiliusl/blog/175605

    转载于:https://my.oschina.net/hiliusl/blog/174973

    展开全文
  • 在加装了 Zero Quick Plug 或 microUSB/USB 转换头之后,将树莓派 Zero 和电脑连接起来。树莓派 Zero 即可配置成 USB/以太网设备,这时仅需要一个 USB 接口就实现给树莓派供电的同时将它接入因特网。不再需要携带...

    树莓派 Zero 之所以成为一款非常棒的单板计算机并不全因为它小巧的尺寸和便宜的价格,还得益于它便捷、易用的特性。在加装了 Zero Quick Plug 或 microUSB/USB 转换头之后,将树莓派 Zero 和电脑连接起来。树莓派 Zero 即可配置成 USB/以太网设备,这时仅需要一个 USB 接口就实现给树莓派供电的同时将它接入因特网。不再需要携带额外的电源适配器、 USB HUB和无线网卡。可以说这是迄今为止连接树莓派最简单、方便的方式!
    对于 Raspbian 2016-10-5 之后的系统镜像,你只需要在系统 SD 卡上修改几处配置文件即可将树莓派配置成一个 USB/以太网设备。
    这个教程基于 Windows 平台,在连接树莓派之前,你可能需要在电脑上安装 Bonjour。它允许你的电脑自动识别 USB/以太网设备,例如打印机、扫描仪以及我们需要的树莓派。Bonjour 被包含在 iTunes 与 Adobe CS 软件中,所以很可能你已经装有这个软件,如果没有,你可以在这里单独下载安装。

    一、配置 CONFIG.TXT 和 CMDLINE.TXT 文件

    开始刷入系统,请确认你下载的系统镜像是 2016-10-5 之后的版本。在电脑上将系统镜像写入 micro SD 卡,可以使用 Win32 Disk Imager 这个工具(这里下载)。

    完成之后,在电脑上打开这个 micro SD 卡的根目录 (例如. boot(E:)) 并打开 config.txt 文件。在文件末尾添加一行 dtoverlay=dwc2。

    保存并关闭 config.txt 文件。

    再打开 cmdline.txt 文件,请确认你的编辑器已关闭“自动换行”。编辑这个文件的时候不需要插入任何换行符,所有字符都在同一行。找到 rootwait,在后面插入 modules-load=dwc2,g_ether。

    保存并关闭 cmdline.txt 文件。

    最后在根目录创建一个名为 ssh 的文件或目录。

    好了,可以从电脑上弹出 SD 卡了。把 SD 卡插入树莓派 Zero,用 Zero Quick Plug 或 microUSB/USB 转换头将树莓派 Zero 和电脑连接起来。

    图中用到的这款连接部件是树莓派 Zero 多功能 USB 插头(Zero Quick Plug),详见下图。

    这时 Windows 会自动识别到树莓派,并尝试安装驱动。

    注意,有用户发现在 Windows 10 下设备会被识别为 COM 设备,这时请在设备管理器中更新该设备的驱动程序即可。驱动程序可在这里下载

    到这里,打开 PuTTY(这里下载)并尝试通过 SSH 连接树莓派的地址 raspberrypi.local。

    如果你发现可以正常连接和登录树莓派,恭喜你!下面“安装 RNDIS 驱动”的步骤可以跳过了!直接从下面“设置共享互联网连接”开始阅读。

    如果在这里遇到错误提示 “Unable to open connection to raspberrypi.local. Host does not exist”, 那么你需要在电脑上安装 RNDIS 驱动。

    二、安装 RNDIS 驱动(酌情跳过)

    保持树莓派与电脑的连接,打开 Windows 的“设备管理”,在“其他设备”中找到“RNDIS/Ethernet Gadget”, 右键选择“更新驱动程序”。

    再选择“Browse my computer for driver software”。

    选择“Let me pick from a list of device drivers on my computer”。

    选择“Network adapters”,下一步。

    在 “Manufacturer” 列表中选择 “Microsoft”。在 “Network Adapters” 列表中选择“Remote NDIS Compatible Device”,下一步。

    在弹出的对话框中选择“Yes”。

    安装完驱动之后,你将看到这个窗口。

    现在尝试用 PuTTY 连接地址 raspberrypi.local。

    三、设置共享互联网连接

    为了将电脑的互联网连接共享给树莓派,我们需要允许共享你电脑上的一个网络连接。打开“Network Connections”。

    你的树莓派在里面显示为 “RNDIS/Ethernet Gadget” 的设备类型,在上图示例中,名字是“Ethernet 2”。

    现在你要确定用哪一个连接给树莓派访问用 (WiFi 或以太网)。这里我选择让树莓派通过电脑的“Wi-Fi”这个连接去访问互联网,所以我启用这个连接之后在右键“属性”中进行设置。

    选择“共享”标签。

    勾选“Allow other network users to connect through this computer’s Internet connection”,在下拉菜单中找到树莓派的连接名称(这里选择 Ethernet 2)。

    WiFi 网络这时出现“Shared”标注了。

    现在可以重启你的树莓派并重新用 PuTTY 登录了。

    登录树莓派之后,用 ifconfig 命令查看 usb0 连接可以看到网络上行和下行的流量。

    Ping 一下某些网站域名,确认互联网连接是否正常。

    如果你用的是 Raspbian 桌面版,你可以安装一个 RDP(远程桌面协议)客户端然后在电脑上通过远程桌面( “Remote Desktop Connection” )客户端连接到树莓派,连接地址同样是raspberrypi.local。(具体方法

    将你的树莓派 Zero 配置成 USB/以太网设备,可以仅需要一个 USB 接口就实现给树莓派供电的同时将它接入因特网。不再需要携带额外的电源适配器、 USB HUB和无线网卡。可以说这是迄今为止连接树莓派最简单、方便的方式!

    转载地址:http://shumeipai.nxez.com/2018/02/20/raspberry-pi-zero-usb-ethernet-gadget-tutorial.html

    展开全文
  • 三菱FX系列PLC(包括FX1S、FX1N/FX2N、FX3U/FX3G/FX3S等)没有以太网接口,无法直接通过以太网的方式与三菱触摸屏通讯,本文将介绍通过以太网通讯桥接器实现三菱触摸屏以太网连接三菱FX系列PLC。
  • 三菱FX系列PLC以太网连接西门子wincc软件 三菱FX系列PLC,包括FX1N、FX2N、FX3U、FX3S、FX3G等;可以通过MCTCP和ModbusTCP两种以太网方式连接西门子wincc软件。 配置步骤: 一、通过三菱MCTCP以太网...

    三菱FX系列PLC以太网连接西门子wincc软件

    三菱FX系列PLC,包括FX1N、FX2N、FX3U、FX3S、FX3G等;可以通过MCTCP和ModbusTCP两种以太网方式连接西门子wincc软件。

    img1

    配置步骤:

    一、                      通过三菱MCTCP以太网连接

    1、打开Wincc7.3软件,新建一个项目,右击“变量管理”,选择“添加新的驱动程序”,在列表中选择“Mitsubishi Ethernet”,点击“确定”。

    C:\Users\ADMINI~1\AppData\Local\Temp\1593505425(1).jpg

    2、右击“Mitsubishi FX3U series”选择“新建连接”,新建一个连接。

    img3

    3、右键新建的连接,选择“连接参数”

    img4

    4、在弹出的对话框中,选择CPU类型,填入桥接器NET30-FX的IP地址,端口号,选择TCP方式。

    img5

    5、在变量区,新建变量,变量名称“D0”,地址配置,在弹出对话框,“区域”中选择“D0”。 

    img6

    二、                      通过ModbusTCP以太网连接;

    通讯桥接器内部集成了Modbustcp的服务器,支持标准的modbus协议,支持功能码包括,FC1,FC2,FC3,FC5,FC6,FC16。所有支持ModbusTCP的客户端可以直接连接模块进行数据通讯。PLC内部寄存器地址与MODBUS地址直接映射,无需PLC内部编程。

    1、打开Wincc7.3软件,新建一个项目,右击“变量管理”,选择“添加新的驱动程序”,在列表中选择“Modbus TCPIP”,点击“确定”。

    img7

    2、右击“Modbus TCPIP/IP 单元#1”选择“新建连接”,新建一个连接。

    img8

    3、右键新建的连接,选择“连接参数”

    img9

    4、在弹出的对话框中,选择CPU类型,填入桥接器NET30-CS的IP地址。

    img10

    5、在变量区,新建变量,变量名称“D0”,地址配置,在弹出对话框,“区域”中选择“4x保持寄存器”,“4x”中填入“402001”对应三菱FX系列PLC的D0。 

    img11

    展开全文
  • 以太网PHY直接连接

    万次阅读 2017-03-21 19:09:36
    不使用网变,而直接使用电容耦合以减少BOM cost和PCB布局面积,在以太网连接(PHYs)是一种常用的做法。 最常用的一种做法参见下图: 当接收端内部还有偏置电压是可使用如下的方式连接。 当接收端内部没有...
     
    不使用网变,而直接使用电容耦合以减少BOM cost和PCB布局面积,在以太网连接(PHYs)是一种常用的做法。
     
    最常用的一种做法参见下图:
     
     
    当接收端内部还有偏置电压是可使用如下的方式连接。

     

     
    当接收端内部没有偏置电压时可采用以下这种连接方式,也是最常用的连接方式:

     

     
    通常偏置上拉电阻为50ohm,传输电流按20mA计算。
     
    总结:1.以太网PHY连接,不使用变压器时需要用电容耦合连接,两端都需要上拉到对应的偏置电压,上拉电阻决定了实际数据线上的直流电平,设计时按20mA设计。
    通常使用50ohm上拉到3v3.
        2.网口连接一般使用交叉连接方式,即Tx接Rx。
     
     
    以上电容耦合是针对于电压驱动型PHY,电流驱动型不需要偏置。如使用变压器,中心抽头接地即可。
     
    参考笔记
     
     
     
     
    展开全文
  • 三菱FX系列PLC,包括FX1N、FX2N、FX3U、FX3S、FX3G等;可以通过MCTCP和ModbusTCP两种以太网方式连接西门子wincc软件。
  • iSCSI连接速度有:1GB/S与10GB/S SAS连接速度有:6GB/S与12GB/S FC连接速度有:8GB/S与16GB/S
  • 轻松学TIA博途SCL编程之程序初始化轻松学TIA博途SCL编程之变量改变统计轻松学TIA博途SCL编程之圆周率计算秒懂S7-1500PLC读写SQL微软...本次通过BCet-FX实现GX Works2以太网连接FX3UC为例,说明使用步骤:新建FX...
  • 三菱触摸屏GS2107以太网连接FX系列PLC

    千次阅读 2020-06-06 12:37:48
    三菱FX系列PLC(包括FX1S、FX1N/FX2N、FX3U/FX3G/FX3S等)没有以太网接口,无法直接通过以太网的方式与三菱触摸屏通讯,本文将介绍通过以太网通讯桥接器实现三菱触摸屏以太网连接三菱FX系列PLC。 一、方案介绍 通过...
  • MX Component控件是三菱公司通信软件包,是计算机和三菱PLC通讯插件。以FX系列PLC为例,通过以太网通讯方式配置接MX控件,以太网通讯模块可以采用FX3U-ENET-ADP或者NET30-FX。
  • 三菱FX3U通过以太网连接MX Component

    千次阅读 2020-06-06 12:31:46
    以FX系列PLC为例,通过以太网通讯方式配置接MX控件,以太网通讯模块可以采用FX3U-ENET-ADP或者NET30-FX。 一、MX Component控件参数配置 设置过程如下: 1.运行Communication Setup Utility。 2.点击“Wizard...
  • 可以通过MCTCP以太网连接力控软件ForceControl。 配置步骤: 1、新建IO设备,这里选择A、ANA系列以太网驱动,在设备配置中的【通讯方式】选择TCP/IP网络,点击【下一步】按钮; 2、在【设备IP地址】处输入桥...
  • Modbus以太网传输方式

    千次阅读 2019-08-06 23:38:26
    通信结构 MODBUS TCP/IP 的通信系统可以包括不同类型... 互连设备,例如:在TCP/IP网络和串行链路子网之间互连的网桥、路由器或网关,联接,该子网允许将MODBUS 串行链路客户机和服务器终端设备连接起来。 ...
  • 组态王内置西门子以太网驱动通道,通过以太网通讯方式连接西门子PLC 的网口、CP343、或者第三方MPI转以太网模块等以太网接口。 1、新建工程,填入工程名称,如:“ttt”并打开工程,右击“IOServer应用组”,...
  • 接下来,杭州飞畅科技的小编来为大家详细介绍下工业以太网交换机组网方式,感兴趣的朋友就一起来看看吧!工业以太网交换机组网方式更重点关注于环路设计。环路有单环和多环的区别,同时亦有在STP和RSTP...
  • 在加装了 Zero Quick Plug 或microUSB/USB 转换头之后,将树莓派 Zero 和电脑连接起来。树莓派 Zero 即可配置成 USB/以太网设备,这时仅需要一个 USB 接口就实现给树莓派供电的同时将它接入因特网。不再需要携带额外...
  • 附件描述了以太网PHY连接时,不使用变压器,而使用电容直接耦合时各种方式及其参数计算
  • 两个S7-300PLC以太网通讯实现两台S7-300通过以太网方式的通讯,并在此基础上实现一台S7-300通过另一台S7-300对水箱进行PID控制。一、实验设备S7系列315-2PN/DPPLC两台,PC机一台,工业交换机...
  • 三菱 FX系列 PLC大多没有以太网接口,无法直接通过以太网的方式与三菱触摸屏通讯,本文将介绍通过以太网通讯模块BCNet-FX,实现三菱触摸屏以太网连接三菱 FX系列 PLC。 关键词 三菱触摸屏 BCNet-FX 三菱 PLC以太网 ...
  • 第四次工业革命正在改变我们制造产品的方式,这要归功于制造和加工设备的数字化。过去几十年,我们已经见证了自动化技术带来的好处,现在随着数据处理、机器学习和人工智能的 进步,进一步促进了自动化系统的发展。...
  • (文章参考西门子官网)每个S7-200 SMART CPU都提供一个以太网端口和一个RS485端口(端口0),标准型CPU额外支持SB CM01信号板(端口1),信号板可通过STEP 7-Micro/WIN SMART软件组态为RS232通信端口或RS485通信端口。...
  • 通过工业以太网OPEN_IE的通信方式怎样编写UDP连接的通信程序
  • 在加装了 Zero Quick Plug 或microUSB/USB 转换头之后,将树莓派 Zero 和电脑连接起来。树莓派 Zero 即可配置成 USB/以太网设备,这时仅需要一个 USB 接口就实现给树莓派供电的同时将它接入因特网。不再需要携带额外...
  • 时间是变化的财富。时钟模仿它,却只有变化而无财富。—— 泰戈尔以太网(Ethernet)一词源于Ether...以太网最早是由美国的几家公司设计的通信方式,当时命名为Ethernet,之后,IEEE802.3委员会将其规范化,但是两...
  • A 以太网的连接形式: 现在,一般采用终端与交换机之间独占电缆的方式实现通信(以前,一般采用多台终端同时使用同一根 同轴电缆的共享介质型连接方式)。 B 以太网的分类: 以太网 按照通信速度以及通信介质分类:...
  • 1适用于FX3G/3GC、FX3S、FX3U/3UC该方式适用于FX3G/3GC、FX3S、FX3U/FX3UC这些3系列的FX,本次通过BCet-FX实现GX Works2以太网连接FX3UC为例,说明使用步骤:新建FX3U/FX3UC工程,双击导航栏中的连接目标:...
  • 在坑里爬了几天,最后换方式,使用命令行实现,最终成功了(内心兴奋的一批,作为程序员的你,你懂的)。 我不知道h废话少说,上菜 在系统的Ethernet里每次切换动态IP或静态IP的时候,以太网的网络图标都会消失,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,463
精华内容 585
关键字:

以太网连接方式