20240919在友善之臂的NanoPC-T6开发板上适配宸芯的数传模块CX6602N

20240919在友善之臂的NanoPC-T6开发板上适配宸芯的数传模块CX6602N
2024/9/19 16:54


缘起,大毛PK二毛战况激烈,穿越机大卖!我司拆同行的图传作品。
发现:
主控:飞凌OK3588-C核心板
图传模块:宸芯的数传模块CX6602N

于是费了老鼻子劲,联系上了宸芯。
技术支持需要派工单,经过多方协调,终于和上海的软件FAE对接上了。

宸芯的数传模块CX6602N支持三频段:800M、1.4GHZ、2.4GHZ。
支持USB接口(PIN69的DP和PIN70的DM)和HSIC接口(PIN2的HSIS_DATA,PIN4的HSIC_STROBE)

USB接口可以直接以虚拟以太网卡的形式接友善之臂的NanoPC-T6开发板。
HSIC接口接LAN9730转【百兆】以太网RJ45之后,接下位机!


2. 上位机配置
2.1 添加 rndis 和 gserial 主机驱动
进入 kernel 目录 make menuconfig,1.添加配置 CONFIG_USB_NET_RNDIS_HOST=m:

2.添加配置 CONFIG_USB_SERIAL=m:
2.添加配置 CONFIG_USB_SERIAL_GENERIC=y:
编译模块:make modules && make modules_install


Z:\repo_RK3588_Buildroot20240508\kernel\arch\arm64\configs\rockchip_linux_defconfig
CONFIG_USB_DWC3=y
CONFIG_USB_DWC2=y
CONFIG_USB_SERIAL=y
CONFIG_USB_SERIAL_GENERIC=y

CONFIG_USB_SERIAL_CP210X=y
CONFIG_USB_SERIAL_FTDI_SIO=y
CONFIG_USB_SERIAL_KEYSPAN=y
CONFIG_USB_SERIAL_PL2303=y
CONFIG_USB_SERIAL_OTI6858=y
CONFIG_USB_SERIAL_QUALCOMM=y
CONFIG_USB_SERIAL_SIERRAWIRELESS=y
CONFIG_USB_SERIAL_OPTION=y
CONFIG_USB_GADGET=y


【注意,宏CONFIG_USB_USBNET是上一级目录,您也必须打开,否则编译生成的.config中没有CONFIG_USB_NET_RNDIS_HOST的】
Z:\repo_RK3588_Buildroot20240508\kernel\arch\arm64\configs\rockchip_linux_defconfig
CONFIG_USB_RTL8150=y
CONFIG_USB_RTL8152=y
CONFIG_USB_USBNET=y
CONFIG_USB_NET_RNDIS_HOST=y

CONFIG_WL_ROCKCHIP=y
CONFIG_WIFI_BUILD_MODULE=y


Z:\repo_RK3588_Buildroot20240508\kernel\.config
CONFIG_USB_RTL8150=y
CONFIG_USB_RTL8152=y
# CONFIG_USB_LAN78XX is not set
CONFIG_USB_USBNET=y
CONFIG_USB_NET_AX8817X=y
CONFIG_USB_NET_AX88179_178A=y
CONFIG_USB_NET_CDCETHER=y
# CONFIG_USB_NET_CDC_EEM is not set
CONFIG_USB_NET_CDC_NCM=y
# CONFIG_USB_NET_HUAWEI_CDC_NCM is not set
# CONFIG_USB_NET_CDC_MBIM is not set
# CONFIG_USB_NET_DM9601 is not set
# CONFIG_USB_NET_SR9700 is not set
# CONFIG_USB_NET_SR9800 is not set
# CONFIG_USB_NET_SMSC75XX is not set
# CONFIG_USB_NET_SMSC95XX is not set
# CONFIG_USB_NET_GL620A is not set
CONFIG_USB_NET_NET1080=y
# CONFIG_USB_NET_PLUSB is not set
# CONFIG_USB_NET_MCS7830 is not set
CONFIG_USB_NET_RNDIS_HOST=y

CONFIG_USB_NET_CDC_SUBSET_ENABLE=y
CONFIG_USB_NET_CDC_SUBSET=y
# CONFIG_USB_ALI_M5632 is not set
# CONFIG_USB_AN2720 is not set
CONFIG_USB_BELKIN=y
CONFIG_USB_ARMLINUX=y
# CONFIG_USB_EPSON2888 is not set
# CONFIG_USB_KC2190 is not set
CONFIG_USB_NET_ZAURUS=y
# CONFIG_USB_NET_CX82310_ETH is not set
# CONFIG_USB_NET_KALMIA is not set
# CONFIG_USB_NET_QMI_WWAN is not set
# CONFIG_USB_HSO is not set
# CONFIG_USB_NET_INT51X1 is not set
# CONFIG_USB_IPHETH is not set
# CONFIG_USB_SIERRA_NET is not set
# CONFIG_USB_VL600 is not set
# CONFIG_USB_NET_CH9200 is not set
# CONFIG_USB_NET_AQC111 is not set
CONFIG_WLAN=y
# CONFIG_WIRELESS_WDS is not set


2.2 加载驱动

1. 加载 rndis 主机驱动:modprobe rndis_host
2. 连接下位机,确认 rndis 驱动绑定 rndis 接口
3. 查看下位机的 usb 设备 ID:
     # lsusb
     Bus 001 Device 006: ID 18d1:181f Google Inc.


root@rk3588-buildroot:/# 
root@rk3588-buildroot:/# lsusb
Bus 005 Device 001: ID 1d6b:0002
Bus 003 Device 001: ID 1d6b:0001
Bus 001 Device 001: ID 1d6b:0002
Bus 005 Device 003: ID 18d1:181f

Bus 006 Device 001: ID 1d6b:0003
Bus 004 Device 001: ID 1d6b:0001
Bus 002 Device 001: ID 1d6b:0002
root@rk3588-buildroot:/# 
root@rk3588-buildroot:/# uname -a
Linux rk3588-buildroot 5.10.198 #1 SMP Thu Sep 19 16:04:55 CST 2024 aarch64 GNU/Linux

root@rk3588-buildroot:/# 


4. # lsusb -t
     /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/6p, 480M

           |__ Port 1: Dev 15, If 0, Class=Wireless, Driver=rndis_host, 480M
      |__ Port 1: Dev 15, If 1, Class=CDC Data, Driver=rndis_host, 480M
      |__ Port 1: Dev 15, If 2, Class=Vendor Specific Class, Driver=, 480M
      |__ Port 1: Dev 15, If 3, Class=Vendor Specific Class, Driver=, 480M
      |__ Port 1: Dev 15, If 4, Class=Vendor Specific Class, Driver=, 480M
      |__ Port 1: Dev 15, If 5, Class=Vendor Specific Class, Driver=, 480M

5. 加载 gserial 主机驱动:modprobe usbserial vendor=0x18d1 product=0x181f
     其中,0x18d1 是从机的 VID,0x181f 是从机的 PID

6. 确认 gserial 驱动绑定 gserial 接口:
     # lsusb -t
     /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/6p, 480M
           |__ Port 1: Dev 15, If 0, Class=Wireless, Driver=rndis_host, 480M
           |__ Port 1: Dev 15, If 1, Class=CDC Data, Driver=rndis_host, 480M
           |__ Port 1: Dev 15, If 2, Class=Vendor Specific Class,
     Driver=usbserial_generic, 480M
           |__ Port 1: Dev 15, If 3, Class=Vendor Specific Class,
     Driver=usbserial_generic, 480M
           |__ Port 1: Dev 15, If 4, Class=Vendor Specific Class,
     Driver=usbserial_generic, 480M
           |__ Port 1: Dev 15, If 5, Class=Vendor Specific Class,
     Driver=usbserial_generic, 480M


3. 设备调试
3.1 端口识别

查看串口设备:
# ls /dev/ttyUSB*
/dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2 /dev/ttyUSB3

root@rk3588-buildroot:/dev# 
root@rk3588-buildroot:/dev# ls -l ttyUSB*
crw-rw---- 1 root dialout 188, 0 Jan  1 14:46 ttyUSB0
crw-rw---- 1 root dialout 188, 1 Jan  1 14:46 ttyUSB1
crw-rw---- 1 root dialout 188, 2 Jan  1 14:46 ttyUSB2
crw-rw---- 1 root dialout 188, 3 Jan  1 14:46 ttyUSB3
crw-rw---- 1 root dialout 188, 4 Jan  1 14:46 ttyUSB4

root@rk3588-buildroot:/dev# 


查看网卡设备:
ls /sys/class/net/ -l
total 0
lrwxrwxrwx 1 root root 0 Oct 23 07:33 usb0
-> ../../devices/pci0000:00/0000:00:11.0/0000:02:02.0/usb1/1-1/1-1:1.0/net/usb0
lrwxrwxrwx 1 root root 0 Oct 23 07:33 lo -> ../../devices/virtual/net/lo

# ifconfig usb0 192.168.1.15
usb0     Link encap:Ethernet HWaddr 1e:62:45:10:50:41
         inet addr:192.168.1.15 Bcast:192.168.1.255 Mask:255.255.255.0
         UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
         RX packets:6 errors:0 dropped:0 overruns:0 frame:0
         TX packets:640 errors:0 dropped:0 overruns:0 carrier:0
                    collisions:0 txqueuelen:1000
                    RX bytes:384 (384.0 B) TX bytes:51178 (51.1 KB)

root@rk3588-buildroot:/dev# 
root@rk3588-buildroot:/dev# cd /sys/class/net/
root@rk3588-buildroot:/sys/class/net# 
root@rk3588-buildroot:/sys/class/net# ls -l
total 0
lrwxrwxrwx 1 root root 0 Jan  1 14:46 eth0 -> ../../devices/platform/fe1c0000.ethernet/net/eth0
lrwxrwxrwx 1 root root 0 Jan  1 14:46 lo -> ../../devices/virtual/net/lo
lrwxrwxrwx 1 root root 0 Jan  1 14:46 usb0 -> ../../devices/platform/usbdrd3_1/fc400000.usb/xhci-hcd.5.auto/usb5/5-1/5-1:1.0/net/usb0

root@rk3588-buildroot:/sys/class/net# 
root@rk3588-buildroot:/sys/class/net# cd /
root@rk3588-buildroot:/# 
root@rk3588-buildroot:/# ifconfig
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:118 errors:0 dropped:0 overruns:0 frame:0
          TX packets:118 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:7528 (7.3 KiB)  TX bytes:7528 (7.3 KiB)

root@rk3588-buildroot:/# 
root@rk3588-buildroot:/# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 8E:BA:83:CE:09:59  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:88 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:118 errors:0 dropped:0 overruns:0 frame:0
          TX packets:118 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:7528 (7.3 KiB)  TX bytes:7528 (7.3 KiB)

usb0      Link encap:Ethernet  HWaddr 96:92:B8:79:43:AD  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

root@rk3588-buildroot:/# 


3.2 AT 及灌包测试

     1.通过 USB 连接上位机后,使用 minicom 工具发送 AT 命令:
     minicom -D /dev/ttyUSB0

     2.利用 iperf 测试网络性能:
     上位机配置 ipv4 地址:
     ifconfig usb0 192.168.42.130
     上位机作为 udp 服务端接收数据:
     iperf -u -s -i 1
     下位机作为 udp 客户端发送数据:
     iperf -u -c 192.168.42.130 -i 1 -p 5001 -t 30 -b 200m
上位机作为 udp 服务端接收数据:


root@rk3588-buildroot:/# 
root@rk3588-buildroot:/# ifconfig usb0 192.168.42.130
root@rk3588-buildroot:/# 
root@rk3588-buildroot:/# ifconfig

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:154 errors:0 dropped:0 overruns:0 frame:0
          TX packets:154 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:9688 (9.4 KiB)  TX bytes:9688 (9.4 KiB)

usb0      Link encap:Ethernet  HWaddr 96:92:B8:79:43:AD  
          inet addr:192.168.42.130  Bcast:192.168.42.255  Mask:255.255.255.0
          inet6 addr: fe80::9492:b8ff:fe79:43ad/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:384 (384.0 B)  TX bytes:780 (780.0 B)

root@rk3588-buildroot:/# 
root@rk3588-buildroot:/# 


【服务器端】
root@rk3588-buildroot:/# 
root@rk3588-buildroot:/# iperf -u -s -i 1
------------------------------------------------------------
Server listening on UDP port 5001
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  1] local 192.168.42.130 port 5001 connected with 192.168.42.130 port 38629
[ ID] Interval       Transfer     Bandwidth        Jitter   Lost/Total Datagrams
[  1] 0.00-1.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17006 (0%)
[  1] 1.00-2.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17008 (0%)
[  1] 2.00-3.00 sec  23.8 MBytes   200 Mbits/sec   0.000 ms 0/17002 (0%)
[  1] 3.00-4.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17008 (0%)
[  1] 4.00-5.00 sec  23.8 MBytes   200 Mbits/sec   0.000 ms 0/17007 (0%)

[  1] 5.00-6.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17009 (0%)
[  1] 6.00-7.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17009 (0%)
[  1] 7.00-8.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17004 (0%)
[  1] 8.00-9.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17008 (0%)
[  1] 9.00-10.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17009 (0%)
[  1] 10.00-11.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17004 (0%)
[  1] 11.00-12.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17007 (0%)
[  1] 12.00-13.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17006 (0%)
[  1] 13.00-14.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17007 (0%)
[  1] 14.00-15.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17008 (0%)
[  1] 15.00-16.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17003 (0%)
[  1] 16.00-17.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17011 (0%)
[  1] 17.00-18.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17006 (0%)
[  1] 18.00-19.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17006 (0%)
[  1] 19.00-20.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17008 (0%)
[  1] 20.00-21.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17007 (0%)
[  1] 21.00-22.00 sec  23.8 MBytes   200 Mbits/sec   0.000 ms 0/17005 (0%)
[  1] 22.00-23.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17008 (0%)
[  1] 23.00-24.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17008 (0%)
[  1] 24.00-25.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17008 (0%)
[  1] 25.00-26.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17003 (0%)
[  1] 26.00-27.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17009 (0%)
[  1] 27.00-28.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17006 (0%)
[  1] 28.00-29.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17006 (0%)
[  1] 29.00-30.00 sec  23.8 MBytes   200 Mbits/sec   0.001 ms 0/17009 (0%)
[  1] 0.00-30.00 sec   715 MBytes   200 Mbits/sec   0.001 ms 0/510208 (0%)

^Croot@rk3588-buildroot:/# 


【客户端】
Microsoft Windows [版本 10.0.22621.3296]
(c) Microsoft Corporation。保留所有权利。

C:\Users\QQ>adb shell
root@rk3588-buildroot:/# iperf -u -c 192.168.42.130 -i 1 -p 5001 -t 30 -b 200m
------------------------------------------------------------
Client connecting to 192.168.42.130, UDP port 5001
Sending 1470 byte datagrams, IPG target: 58.80 us (kalman adjust)
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  1] local 192.168.42.130 port 38629 connected with 192.168.42.130 port 5001
[ ID] Interval       Transfer     Bandwidth
[  1] 0.00-1.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 1.00-2.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 2.00-3.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 3.00-4.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 4.00-5.00 sec  23.8 MBytes   200 Mbits/sec

[  1] 5.00-6.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 6.00-7.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 7.00-8.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 8.00-9.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 9.00-10.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 10.00-11.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 11.00-12.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 12.00-13.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 13.00-14.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 14.00-15.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 15.00-16.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 16.00-17.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 17.00-18.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 18.00-19.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 19.00-20.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 20.00-21.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 21.00-22.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 22.00-23.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 23.00-24.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 24.00-25.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 25.00-26.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 26.00-27.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 27.00-28.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 28.00-29.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 29.00-30.00 sec  23.8 MBytes   200 Mbits/sec
[  1] 0.00-30.00 sec   715 MBytes   200 Mbits/sec
[  1] Sent 510209 datagrams
[  1] Server Report:
[ ID] Interval       Transfer     Bandwidth        Jitter   Lost/Total Datagrams
[  1] 0.00-30.00 sec   715 MBytes   200 Mbits/sec   0.000 ms 0/510208 (0%)
root@rk3588-buildroot:/#


参考资料:
CX660X模块产品技术手册202102.pdf
lc1860 lc1881在安卓上位机下的RNDIS&GSERIAL使用.pdf
CX660X产品webui快速配置操作指导.pdf

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1539118.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

不断挑战才有不断机遇!Eagle Trader等你来加入!

2024“Eagle Trader杯”全国职业交易联赛S1赛季已火热进行一个多月,吸引了超过355名交易员的积极参与!目前,每天都有新的交易员踊跃报名参加! 经过严格地交易考核,13名选手成功通过初试,正进入下一阶段的挑…

【C++初阶】vector模拟实现

✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅ ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨ 🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿&#x1…

方法:批量提取PPT幻灯片中图片

处理包含大量图片的PPT(PowerPoint)幻灯片已成为许多专业人士的日常任务之一。然而,手动从每张幻灯片中逐一提取图片不仅耗时耗力,还容易出错。为了提升工作效率,减少重复劳动,探索并实现一种高效批量提取P…

WebGL系列教程十(模型Model、视图View、投影Projection变换)

目录 1 前言2 模型变换3 视图变换3.1 公式推导3.1.1 确定摄像机的参数3.1.2 构建摄像机坐标系3.1.3 构建视图变换矩阵3.1.4 组合视图矩阵 3.2 方法调用 4 投影变换4.1 正交投影推导4.2 正交投影调用4.3 透视投影推导4.3 透视投影调用 5 总结 1 前言 上一讲我们讲了动画&#xf…

“AI 教母”李飞飞最新对话:当空间智能技术成熟时,机器人革命即将开始

李飞飞:“对开源风险最好的防御措施,就是领先于那些会利用这些工具造成危害的人。” 文 | 王启隆 出品 | AI 科技大本营(ID:rgznai100) 本文为 CSDN 编辑整理,未经授权禁止转载,违者必究。 近期…

在WordPress中最佳Elementor主题推荐:专家级指南

对于已经在WordPress和Elementor上有丰富经验的用户来说,选择功能强大且高度灵活的主题,能大大提升网站的表现和定制能力。今天,我们来介绍六款适合用户的专家级Elementor主题:Sydney、Blocksy、Rife Free、Customify、Deep和Laye…

Threejs中的欧拉角Euler

本文目录 前言1、欧拉角1.1 欧拉角的基本概念1.2 在Three.js中的使用1.3 欧拉角的优点与局限性1.4 总结 2、前置代码准备2.1 前置代码准备2.2 效果 3、欧拉角应用到项目中3.1 绕x轴旋转90度3.2 动画 4、万向锁问题5、完整代码 前言 Three.js中的欧拉角(Euler Angles…

CDN加速是什么?CDN加速的原理是什么?

网页的加载速度过慢,很大可能导致用户流失。因此,许多网站为了解决网站打开速度问题,都会使用CDN加速。本文将详细介绍CDN加速的概念、原理以及应用。 CDN加速是一种分布式网络架构,把网站内容缓存到全球的各个服务器,…

elasticsearch实战应用

Elasticsearch(ES)是一种基于分布式存储的搜索和分析引擎,目前在许多场景得到了广泛使用,比如维基百科和github的检索,使用的就是ES。本文总结了一些使用心得体会,希望对大家有所帮助。 一、技术选型 说到全文搜索大家肯定会想到…

智慧园区:解析集成运维的未来之路

随着科技的进步和社会的发展,智慧园区已经成为了城市建设的重要方向。作为一个集信息技术、通信技术、能源技术等多种技术于一体的综合性项目,智慧园区的建设具有极高的科技含量和产业复杂度。而在智慧园区的运维管理中,更是需要集成化的处理…

[Linux]自定义shell详解

自定义shell 前言1.命令行提示符,字符串的打印1.1命令行提示符2.命令行字符串 2.0对命令行字符串进行切割2.执行命令3.有趣的小问题完整代码 前言 写之前我们先看看一个完整的shell都包括了什么 $符号前面(包括这个符号)就是命令行提示符&a…

WPS表格简易应用:让财务求和公式sum()自动更新行数

WPS表格中的一列的价钱求和, 如何确保行数中途增加后, 求和仍然是自动把这一整列都加进来的? 比如一个excel 的第G列。 正左边F列的单元格内容为:TOTAL: (USD) 如上图的G15, 简单的公式是: su…

高效财税自动化软件如何提升企业财务工作的效率与准确性

在当今企业运营中,财务管理发挥着核心作用。它不仅涉及企业正常运转和市场决策,还是推动企业向高质量发展迈进的关键动力。面对激烈的市场竞争与科技革新的双重挑战,财务管理亟需进行持续的转型与提升,为企业高质量发展目标的实现…

基于SpringBoot+Vue+MySQL的在线宠物用品商城销售系统

系统展示 用户前台界面 管理员后台界面 系统背景 随着人们生活质量的提升和宠物经济的蓬勃发展,宠物已成为众多家庭不可或缺的一员。宠物市场的需求日益增长,涵盖了食品、用品、医疗、美容等多个领域。基于SpringBootVueMySQL的在线宠物用品商城销售系统…

卷积和相关

卷积和相关是两种运算关系(或过程),都是含参变量的无穷积分。都是两个函数通过某种运算得到另外一个函数。 卷积运算: 可用来表示一个观测系统或一个观 测仪器对输入信号的作用过程等。 相关运算:常用来比较两个函数的关联性,相似程度,用于信号检测,图像识别。如:在混…

分类预测 | Matlab实现SMA-CNN-SVM黏菌算法优化卷积支持向量机分类预测

分类预测 | Matlab实现SMA-CNN-SVM黏菌算法优化卷积支持向量机分类预测 目录 分类预测 | Matlab实现SMA-CNN-SVM黏菌算法优化卷积支持向量机分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现SMA-CNN-SVM黏菌算法优化卷积支持向量机分类预测&#xff0…

【环境问题】清除僵尸进程 | 深度学习任务中止但是GPU仍在占用

我一般遇到这种是本地网络意外中断了,程序不见了,但是GPU仍在占用。 1.确认GPU显存: 终端输入 nvidia-smi 查看显存使用情况: 2.查看所有进程: 输入fuser -v /dev/nvidia* 查看进程。如果出现bash: fuser: command no…

Nuxt Kit 中的布局管理

title: Nuxt Kit 中的布局管理 date: 2024/9/18 updated: 2024/9/18 author: cmdragon excerpt: 摘要:本文详述了在Nuxt.js框架中使用addLayout工具进行布局管理的方法,包括布局的概念、如何通过addLayout函数注册布局、创建布局文件及在页面中应用布局的示例代码。并通过…

LAN8720A-CP-TR-ABC QFN-24 以太网收发器芯片

功能: 高性能收发器:支持10BASE-T和100BASE-TX标准,能够自动协商最佳速度和双工模式。 小尺寸:是业界尺寸最小的解决方案,适合空间受限的应用场景。 低功耗:功耗比现有的Microchip收发器低40%&#x…

oracle avg、count、max、min、sum、having、any、all

组函数 having的使用 any的使用 all的使用