【2023研电赛】东北赛区一等奖作品:基于FPGA的小型水下无线光通信端机设计
本文为2023年第十八届中国研究生电子设计竞赛东北赛区一等奖作品分享,参加极术社区的【有奖活动】分享2023研电赛作品扩大影响力,更有丰富电子礼品等你来领!,分享2023研电赛作品扩大影响力,更有丰富电子礼品等你来领!
基于FPGA的小型水下无线光通信端机设计
参赛单位:大连理工大学
指导教师:殷洪玺教授
参赛成员:黄安、文浩、肖胡浩
研究背景
随着海洋开放程度越来越高、海洋发展速度的加快,以及半导体器件的连续突破,水下无线光通信技术飞速发展并逐渐投入到应用中去,实现科学技术到生产力的转变。
现有研究中的LED设计的UWOC系统,不管是在传输距离还是传输速率上,都还有较大的改进空间,同时,系统的设计可以通过在收发端均利用FPGA,以实现高阶调制、编码和信号处理及小型化系统集成,进一步提高系统的性能和实用化。
针对水下无线通信高速率、远距离、低成本和小型化设备的实用需求,本文设计研制了一种高鲁棒性的基于FPGA和大功率LED阵列的小型化水下无线光通信系统。光发射机的光源采用45W大功率LED阵列,基于FPGA实现高阶调制与编码,并设计了准直光学发射天线能有效减少光束发散角,大幅度延长了传输距离。在光接收端,设计了一种基于3mm大孔径APD的自动增益控制放大和FPGA解调与信号处理的光接收机,可以将一定范围内不同功率光信号转换成等幅度电信号并由FPGA实时解调、译码,可应对水下由于光链路轴偏角改变、传输距离变化、抖动、湍流等复杂因素造成光强度的闪烁或波动,降低了光通信系统对准的严苛要求,具有高鲁棒性。
该系统收发端均采用FPGA处理信号,可支持常用的OOK调制信号和以RS信道编码的16-QAM为例的高阶调制信号水下实时同步传输,可以满足水下不同场景下应用需求。光通信收发端机均实现小型集成化,以及严格的防水封装,通过电路设计、内部集成摆脱了传统UWOC系统体大笨重的AWG信号源、示波器、线性电源等设备,有极高的实际应用价值。
在速率上,该设备可实现30Mbps的OOK信号和16QAM信号12m水下信道实时传输,前者误码可达2.467×10-4,后者误码为3.467×10-3;在传输距离上,实现22Mbps 的NRZ-OOK整形信号12m水下30m空气跨介质传输,误码率为3.619×10-4;在系统鲁棒性方面,实现在12m水下信道中接收机偏离主光轴40°之内22Mbps OOK信号有效接收;实际应用方面,除了可以应用水下如搭载在潜艇上实现水下链路部署,进行水下节点信息采集或信号传输;其大功率LED阵列还支持空气-水链路无线光通信链路部署,如在船只上部署端机并和水下蛙人或水下机器人群落进行信息交互。其传输能力已经过水下验证。
论文地址:
地址一:
http://www.opticsjournal.net/Articles/g230966/EarlyPosting
地址二:
https://kns.cnki.net/kcms2/article/abstract?v=3uoqIhG8C45S0n9fL2suRadTyEVl2pW9UrhTDCdPD660zuLoGYfYSZ97VrLV1wB_pK8Y_L5H8mv4-c4_7_O25s6YT2XFv8aI&uniplatform=NZKPT
研电赛门型框架
创新点与应用性
创新点
1.硬件设计方面:发射端基于FPGA设计了一种45W大功率LED光发射机,实现长距离、高速率信号传输;接收端基于FPGA设计了一种自动增益控制光接收机,将一定范围内不同功率光信号转换成等幅度电信号并由FPGA实时解调、译码,可应对水下由于光链路轴偏角改变、传输距离变化、抖动、湍流等复杂因素造成光强度的闪烁或波动,具有高鲁棒性。
2.系统性能方面:设计并实现了一种高鲁棒性的基于大功率LED阵列和FPGA的小型水下无线光通信系统,系统兼顾了大功率与调制带宽,在传输速率(30Mbps)、传输距离(12m水下+30m空气)、鲁棒性(接收角度40°)性能方面在国内外的研究中处于领先地位。
3.信号实时同步传输方面:该系统收发端均采用FPGA处理信号,可支持常用的OOK调制信号和以RS信道编码的16-QAM为例的高阶调制信号水下实时同步传输。
4.小型化集成方面:光通信收发端机均实现小型集成化,以及严格的防水封装,通过电路设计、内部集成摆脱了传统UWOC系统体大笨重的AWG信号源、示波器、线性电源等设备,有极高的实际应用价值。
应用前景
除了可以应用水下如搭载在潜艇或AUV水下潜航器上实现水下链路部署,进行水下节点信息采集或信号传输;其大功率LED阵列还支持空气-水链路无线光通信链路部署,如在船只上部署端机并和水下蛙人或水下机器人群落进行信息交互。其传输能力已经过水下验证。
设计实现
硬件设计
光学系统是水下光通信的基础与前提,光源设备的选型,镜片孔径选择,光斑的整形,以及透镜材料等都会大幅度影响光通信系统的性能。相对于对人体有害、对准难度高的LD激光光源,价格低廉、技术已经成熟的LED光源是很好的选择,LED光源的水下光通信应用除了实现点对点之间信息传输外,还可以兼顾水下照明、水下视频拍摄、水下地貌勘探等。
光发射机由DE1-SOC FPGA开发板、45W大功率LED阵列、驱动电路、偏置器(Bias-tee)以及发射准直天线构成。LED阵列采用5串9并3030贴片集成光源芯片,单个芯片额定功率1W,实测波长517nm。光发射机实物图如下图所示,其尺寸(mm)为150×200×450,实测质量5.7kg,散热方案采取鳍片式铝制散热片与12V内置风扇散热,接口采用凌科DH20旋转式防水航空连接器,发射准直天线采用高透光亚克力(PMMA)防水法兰与胶圈结构,系统严格按照防水标准封装。
光接收机模块包含DE1-SOC FPGA开发板,3mm光敏面大孔径APD自动增益控制光接受模块、线性电源模块以及光学接收模块,系统框图如下图所示。其尺寸(mm)为300×200×200,质量为3kg,接口采用凌科DH20旋转式防水航空连接器。
本设计基于3mm光敏面大孔径雪崩光电二极管设计了一种自动增益控制光通信接收机。光接收机在实际应用中,由于光链路轴偏角改变、传输距离变化、抖动、湍流等外部因素的影响,接收到的光信号强度变化会使接收机FPGA处理器最终接收到的电信号质量剧烈变化,这对复杂的调制信号传输方案影响巨大。而本设计中高鲁棒性自动增益控制光通信接收机可以有效解决这一难题。光信号经过APD转化成电流信号后,经过跨阻放大器模块转化成电压信号,随后通过VCA821芯片构建的自动增益放大器模块(Automatic Generation Control, AGC)放大成峰值幅度固定不变的电压信号,最终输入至模数变换(ADC)模块。因此,本系统除了支持OOK调制方案,还可以应用于其他复杂模拟调制信号传输方案。在光接收机光链路空间结构上,3mm大孔径APD雪崩光电二极管固定在凸透镜焦点处,其高响应度的性能降低光学聚焦的严苛度,并结合有一定光发散角的大功率LED发射机系统解决了传统水下光通信对准困难的问题,增加了系统的鲁棒性。
信号选择与同步实现
在水下实时光通信方面,小型端机传输信号方面除了传统的OOK调制信号实时通信外,还可以实现RS编码的16QAM联合编码调制信号的实时传输。实验测试结果表明,该设备可实现12m以上水下环境中30Mbps的OOK信号和16QAM信号实时同步传输。
以16QAM为例:
在光发射端,16QAM调制信号在DE1-SOC FPGA开发板上实现。随机数据流先进行串/并转换,生成的4bit原始信号进行RS信道编码作为外码,随后进行差分编码作为内码,经过星座映射并添加载波信号生成RS-16QAM调制信号。生成的数字信号通过DAC数/模转换后由放大器放大,通过Bias-tee偏置器注入DC直流电流, 调制到大功率LED阵列转换成光信号。
在接收端,对16QAM信号进行严格的载波同步和位同步后,还原成I、Q两路信号。本设计采用DD算法载波同步,将接收的信号根据最近原则判决到最近的量化星座点上。载波同步过程中,由DDS生成相干载波,通过鉴相器和环路滤波器实时反馈调整载波的相位与频率。16QAM调制信号与相干载波相乘后经过滤波器恢复成I、Q两路基带信号。位同步方面,使用基于插值算法的位同步。插值区间由数控振荡器(NCO)生成,并输入到基于Farrow结构的插值滤波器,以计算两个下变频分支信号并恢复基带信号的最佳判断时间。插值间隔通过实时反馈进行调整,使用基于Gardner算法的误差检测器和环路滤波器进行计算。随后采用自适应门限判决的方法,周期性训练出星座判决门限,将I、Q两路位同步后的信号进行星座逆映射。最后进行部分差分解码、RS信道译码、串并变换还原成m伪随即序列二进制比特码流。
信号生成与同步详细实现过程可见论文:
黄安, 殷洪玺, 季秀阳, 梁彦军, 文浩, 王建英, 沈众卫. 基于FPGA和大功率LED阵列光源的小型化UWOC系统的研究与实现[J]. 光学学报, 2024, 44(06): 02.
地址一:
http://www.opticsjournal.net/Articles/g230966/EarlyPosting
地址二:
https://kns.cnki.net/kcms2/article/abstract?v=3uoqIhG8C45S0n9fL2suRadTyEVl2pW9UrhTDCdPD660zuLoGYfYSZ97VrLV1wB_pK8Y_L5H8mv4-c4_7_O25s6YT2XFv8aI&uniplatform=NZKPT
性能验证
为了验证基于FPGA的水下无线光通信接收机的接收性能,使用基于FPGA的45W大功率LED阵列发射机生成5MHz-30MHz的正弦波,以及15Mbps-30Mbps传输速率的NRZ-OOK脉冲整形信号,经过12m水下信道传输后,用示波器采集基于FPGA的自动增益控制接收端接收到的信号,查看其性能。接收端接收5MHz-30MHz的正弦波如上图所示。
接收端接收15Mbps-30Mbps NRZ-OOK脉冲整形信号眼图如下图(a)~(d)所示,可以看出15Mbps-25Mbps眼图质量较好,三张采集到的眼图区分不太明显,眼睛张开均比较明显,信噪比较高,误码率较低。由于光发射端原始带宽为22MHz,当传输的NRZ-OOK信号速率为30Mbps超出-3dB光发射机器件原始带宽时,信号一定程度畸变,但眼图张开依旧明显。
对研制的基于FPGA和LED阵列大功率光源的小型UWOC端机,进行误比特率(Bit Error Rate, BER)性能测试。水下信道长12m,系统采用OOK和16QAM两种调制方式,同步传输速率均从10Mbps逐步增大至30Mbps。测试结果下图所示,可看出二者的BER均随着比特率的增加而增加,但16QAM的误比特率总是高于OOK系统的误比特率。当系统速率达30Mbps时,OOK脉冲整形信号的误比特率为2.47×10-4,而16QAM误比特率已为3.47×10-3,尽管均低于3.8×10-3 (FEC, Forward Error Correction )的阈值,但16QAM的误比特率性能劣于OOK调制方式。这是因为QAM调制对信号的实时同步要求较高、及LED阵列的光束较宽致使水下信道的多径效应造成同步困难所致。
但是,在相同的传输速率下,16QAM的带宽利用率高于OOK调制,测试结果下图所示,可看出当传输速率为30Mbps时,OOK信号需要30MHz的带宽,而16QAM信号的带宽仅需13.5MHz,远低于OOK调制。设计的16QAM系统的滚降系数为α=0.8,中心频率为7.5MHz,符号速率为7.5Mbaud/s,带宽利用率为2.22bit/s/Hz,根据带宽公式B=RB(1+α)计算,其理论值与实测值一致。由于系统受ADC采样率和同步算法限制,没有充分利用16QAM高阶调制信号的带宽优势,在速率提升上仍有较大的潜力。
为了进一步测试设计的光通信端机传输的极限距离,但由于受到实验条件的限制,实验中在已有的12m长水管的基础上增加了不同长度的空气链路,构成了水-空气跨介质链路,测试结果如下图所示。实验传输22Mbps的NRZ-OOK整形信号,12m水下信道分别加上10m、20m、30m的空气信道传输后,系统误码分别为7.635×10-6、1.654×10-4、3.619×10-4。将光发射端的速率增加至30Mbps后,根据发射端放大器带宽增益积不变性质、及LED器件带宽的影响,发射端信号幅度衰减,12m水下信道分别加上10m、20m、30m空气信道传输后,系统误码分别为3.619×10-4、1.595×10-4、1.975×10-2。在图中还给出了对应的信号眼图,可以看出端机大功率LED光源线性较好,在30Mbps速率传输时,明显看出随着传输距离增长信号质量恶化,眼图闭合明显。在12m水加上30m空气链路传输时,22Mbps信号误码率可达3.8×10-3 EFC阈值。此外,水-空气链路中,当517nm波长光通信端机部署在自然光较强的场景下,端机性能会受到影响。图中还对比了在白天正午外界自然光较强情况下30Mbps OOK信号传输,其误码性能整体低于自然光影响较弱外界条件下的30Mbps OOK信号的误码率。
其它性能可通过上文见论文原文。
心得与总结
- 要在文章以及展示过程中强调并说明作品的应用性/实用价值
- 视频要美观,用流畅的普通话录制,如果条件允许可以找专业人员录制
- 要有一定创新点
- 作品要求完整性,可以自圆其说
- 国赛作品大多有论文专利成果
本组设计很荣幸获得兆易创新杯第十八届研电赛东北赛区一等奖,因为团队多数成员实习时间无法调整因素,未能参与晋级赛,略微遗憾。设计还有进步空间,如使用TFT显示屏和摄像头实时传输视频,结合LED阵列照明来实现水下视频实时拍摄,有极大进步空间,这正是我们努力进步的方向!
参加极术社区的【有奖活动】分享2023研电赛作品扩大影响力,更有丰富电子礼品等你来领!,分享2023研电赛作品扩大影响力,更有丰富电子礼品等你来领!
相关文章:
【2023研电赛】东北赛区一等奖作品:基于FPGA的小型水下无线光通信端机设计
本文为2023年第十八届中国研究生电子设计竞赛东北赛区一等奖作品分享,参加极术社区的【有奖活动】分享2023研电赛作品扩大影响力,更有丰富电子礼品等你来领!,分享2023研电赛作品扩大影响力,更有丰富电子礼品等你来领&a…...
JWT授权为啥要在 Authorization标头里加个Bearer 呢
这是因为 W3C 的 HTTP 1.0 规范,Authorization 的格式是: Authorization: <type> <authorization-parameters> w3c规定,请求头Authorization用于验证用户身份。这就是告诉我们,token应该写在请求头Authorization中 …...
一篇理解TCP协议
一、TCP协议概念。 TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的传输层协议。它主要用于在计算机网络中,通过建立可靠的通信连接来进行数据传输。 TCP协议的特点如下: 可靠性…...
rk平台android12系统设置里面互联网选项中的以太网选项点击不了问题
rk平台android12系统中,系统设置中的互联网选项,当连接以太网以后,会显示以太网的选项,但是点击没作用,现在需要点击能够进入到以太网的设置界面,需要添加相关的点击事件。 首先,在packages/apps/Settings/AndroidManifest.xml中的以太网设置配置添加一个action,用于打…...
ctrl+d和ctrl+c的区别
CtrlD和CtrlC都是常用的键盘快捷键,但它们的功能不同。 CtrlD 在不同的操作系统和应用程序中可以有不同的功能。在Unix/Linux系统的命令行终端中,CtrlD的作用是发送EOF(End of File)信号,表示输入结束。在Windows系统中…...
ChatGLM2-6B微调实践
ChatGLM2-6B微调实践 环境准备安装部署1、安装 Anaconda2、安装CUDA3、安装PyTorch4、安装 ChatGLM2-6B 微调实践1、准备数据集2、安装python依赖3、微调并训练新模型4、微调后模型的推理与评估5、验证与使用微调后的模型 微调过程中遇到的问题 环境准备 申请阿里云GPU服务器&…...
YOLOv7独家改进FPN系列:结合新颖的 GhostSlimPAN 范式网络结构,进一步提升检测器性能
💡本篇内容:YOLOv7改进FPN系列:结合新颖的 GhostSlimFPN 范式网络结构,进一步提升检测器性能 重点:🔥🔥🔥YOLOv7 使用这个 核心创新点 在数据集改进做实验:即插即用: 当 Slim 遇到 YOLO 系列 💡🚀🚀🚀本博客 YOLO系列 + 改进源代码改进 适用于 YOLOv7…...
12. Java异常及异常处理处理
Java —— 异常及处理 1. 异常2. 异常体系3. 常见Exception4. 异常处理4.1 try finally catch关键字4.2 throws和throw 自定义异常4.3 finally,final,finalize三者的区别 1. 异常 异常:在程序执行过程中发生的意外状况,可能导致程…...
自定义hooks函数
体会1 1、js文件中定义useXX函数 export function usetestY() {const count ref(10);const doubleCount computed(() > count.value * 2);return {count,doubleCount,}; } 2、在vue文件中使用useXX函数 import { usetestY } from ./data;const { count, doubleCount } …...
Linux系统及Docker安装RabbitMq
目录 一、linux系统安装 1、上传文件 2、在线安装依赖环境 3、安装Erlang 4、安装RabbitMQ 5、开启管理界面及配置 6、启动 7、删除mq 二、docker安装 1、上传mq.tar包或使用命令拉取镜像 2、启动并运行 3、访问mq 一、linux系统安装 1、上传文件 2、在线安装依赖环…...
山东省赛二阶段第一部分解题思路
提交攻击者的IP地址 192.168.1.7 这个直接awk过滤一下ip次数,这个ip多得离谱,在日志里面也发现了它的恶意行为,后门,反弹shell 识别攻击者使用的操作系统 Linux 找出攻击者资产收集所使用的平台 shodan 提交攻击者目…...
WebGoat 靶场 JWT tokens 四 五 七关通关教程
文章目录 webGoat靶场第 四 关 修改投票数第五关第七关 你购买书,让Tom用户付钱 webGoat靶场 越权漏洞 将webgoat-server-8.1.0.jar复制到kali虚拟机中 sudo java -jar webgoat-server-8.1.0.jar --server.port8888解释: java:这是用于执行…...
【单元测试】如何使用 JUnit5 框架?
JUnit5 单元测试框架使用教程 一、Junit5 是什么? Junit5是一个用于在Java平台上进行单元测试的框架。JUnit 5 框架主要由三部分组成:JUnit Platform、JUnit Jupiter 和 JUnit Vintage。 JUnit Platform:定义了测试引擎的 API,是…...
C#封装、继承和多态的用法详解
大家好,今天我们将来详细探讨一下C#中封装、继承和多态的用法。作为C#的三大面向对象的特性,这些概念对于程序员来说非常重要,因此我们将对每个特性进行详细的说明,并提供相应的示例代码。 目录 1. 封装(Encapsulati…...
数据结构与算法(持续更新)
线性表 单链表 单链表的定义 由于顺序表的插入删除操作需要移动大量的元素,影响了运行效率,因此引入了线性表的链式存储——单链表。单链表通过一组任意的存储单元来存储线性表中的数据元素,不需要使用地址连续的存储单元,因此它…...
HDLbits: ece241 2014 q4
module top_module (input clk,input x,output z ); reg [2:0] Q;always(posedge clk)beginQ[0] < Q[0] ^ x;Q[1] < (~Q[1]) & x;Q[2] < (~Q[2]) | x;z < ~(| Q[2:0]); //错误!!!!endendmodule 正确答案…...
LuatOS-SOC接口文档(air780E)-- gmssl - 国密算法
sm.sm2encrypt(pkx,pky,data)# sm2算法加密 参数 传入值类型 解释 string 公钥x,必选 string 公钥y,必选 string 待计算的数据,必选,最长255字节 返回值 返回值类型 解释 string 加密后的字符串, 原样输出,未经HEX转换 例子 local originStr "encryptio…...
【线性代数及其应用 —— 第一章 线性代数中的线性方程组】-1.线性方程组
所有笔记请看: 博客学习目录_Howe_xixi的博客-CSDN博客https://blog.csdn.net/weixin_44362628/article/details/126020573?spm1001.2014.3001.5502思维导图如下: 内容笔记如下:...
vue实现拖拽排序
在业务中列表拖拽排序是比较常见的需求,常见的JS拖拽库有Sortable.js,Vue.Draggable等,大多数同学遇到这种需求也是更多的求助于这些JS库,其实,使用HTML原生的拖放事件来实现拖拽排序并不复杂,结合Vue的tra…...
IS-IS
二、IS-IS中的DIS与OSPF中的DR Level-1和Level-2的DIS是分别选举的,用户可以为不同级别的DIS选举设置不同的优先级。DIS的选举规则如下:DIS优先级数值最大的被选为DIS。如果优先级数值最大的路由器有多台,则其中MAC地址最大的路由器会成为DI…...
【MySQL】为什么使用B+树做索引
MySQL的innoDB引擎使用的是B树的结构来存储索引的,那么为什么会使用B树呢?为什么不使用其他的结构?本篇我们深入MySQL底层来了解B树。本文中说到的MySQL都是InnoDB引擎的 在这之前,先了解一下InnoDB是如何存储数据的 MySQL是根据数据页的方式…...
php 安装mongodb扩展模块,rdkafka模块
mongodb mongodb扩展下载 选择php版本,根据报错提示,选择扩展对应的版本选择非安全进程将php_mongodb.dll放到php/ext目录下修改php.ini配置,添加extensionphp_mongodb.dll开启php_mongodb扩展,重启服务php -m 查看是否开启成功…...
【数据结构】初探时间与空间复杂度:算法评估与优化的基础
🚩纸上得来终觉浅, 绝知此事要躬行。 🌟主页:June-Frost 🚀专栏:数据结构 🔥该文章主要了解算法的时间复杂度与空间复杂度等相关知识。 目录: 🌏 时间复杂度🔭…...
SpringCloud Alibaba - Sentinel 限流规则(案例 + JMeter 测试分析)
目录 一、Sentinel 限流规则 1.1、簇点链路 1.2、流控模式 1.2.1、直接流控模式 1.2.2、关联流控模式 a)在 OrderController 中新建两个端点. b)在 Sentinel 控制台中对订单查询端点进行流控 c)使用 JMeter 进行测试 d)分…...
uniapp 条件编译 APP 、 H5 、 小程序
一、#ifdef、#ifndef、 #endif三者的区别、 标识作用#ifdef仅在某个平台上使用#ifndef在除了这个平台的其他平台上使用(非此平台使用)#endif结束条件编译 二、平台标识 标识平台APP-PLUS5AppMP微信小程序/支付宝小程序/百度小程序/头条小程序/QQ小程序MP-WEIXIN微…...
深度学习——权重衰减(weight_decay)
深度学习——权重衰减(weight_decay) 文章目录 前言一、权重衰减1.1. 范数与权重衰减1.2. 高维线性回归1.3. 从零开始实现1.3.1.初始化模型参数1.3.2. 定义L₂范数惩罚1.3.3. 定义训练代码实现1.3.4. 不管正则化直接训练1.3.5. 使用权重衰减 1.4. 简洁实现 总结 前言…...
nignx如何部署让前端不用清缓存就可以部署
在Nginx中,可以使用以下方法来部署前端应用程序,使前端用户无需清空缓存即可进行部署: 1、使用版本号:在前端应用程序的构建过程中,可以添加一个独特的版本号到应用程序的名称中。每次部署时,将版本号更新…...
CSS3实现动画加载效果
<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>加载效果</title><link rel"style…...
springboot定时任务Scheduled使用和弊端分析
1.springboot定时任务Scheduled使用说明: (1)创建定时任务类 import com.one.utils.DateUtil; import org.springframework.beans.factory.annotation.Autowired; import...
openGauss学习笔记-93 openGauss 数据库管理-访问外部数据库-oracle_fdw
文章目录 openGauss学习笔记-93 openGauss 数据库管理-访问外部数据库-oracle_fdw93.1 编译oracle_fdw93.2 使用oracle_fdw93.3 常见问题93.4 注意事项 openGauss学习笔记-93 openGauss 数据库管理-访问外部数据库-oracle_fdw openGauss的fdw实现的功能是各个openGauss数据库及…...
网站建设新趋势/自动点击器软件
各种按钮之间的继承关系: 一、 Basic Button 的基本用法: 1. 在布局文件 (main.xml) 增加对按钮的相关属性进行如下描述: < Button android:id "id/basic_button" android:layout_width "wrap_content" android…...
温岭网站开发/朋友圈信息流广告投放价格
Exchange Server 2016 RTM 可以在 Windows Server 2012、Windows Server 2012 R2 和 Windows Server 2016 的标准版和企业版中进行部署安装,但 Exchange Server 2016 只支持完整 GUI 的 Windows Server 而不支持核心安装的系统,本文我们将对快速部署方式…...
wordpress内网oss/seo搜索引擎优化实战
2019独角兽企业重金招聘Python工程师标准>>> 算法很简单 如果你不明白,找一堆台球和两个杯子,想想怎么把球按照放的顺序取出来就行了。 整存整取思想package queueimport java.util.*fun main(args: Array<String>) {var twoStackQueue…...
番禺网站建设知乎/日本产品和韩国产品哪个好
网上解决办法都是用淘宝镜像,但我先切换了镜像,安装还是慢,最后发现了一个比较快的方案。 打开cmd 先装一个cnpm,指向淘宝npm仓库 npm install -g cnpm --registryhttps://registry.npm.taobao.org再安装vue cli npm install -g…...
怎么建小说网站/百度做网站
win8 无法安装 net framework3.5 问题的解决办法 通过CMD 打指令 dism.exe /online /enable-feature /featurename:NetFX3 /Source:G:\sources\sxs 都OK了 注意G:\sources\sxs中的 G为window8安装的ISO装载到虚拟盘符, 这个必须用ISO文件里的东西,也就是必须用镜像…...
做动态网站必学/广告推广网站
💥 项目专栏:【Pandas数据处理100例目录】Python数据分析玩转Excel表格数据 前言 大家好,我是阿光。 本专栏整理了《Pandas数据分析处理》,内包含了各种常见的数据处理,以及Pandas内置函数的使用方法,帮助我们快速便捷的处理表格数据。 正在更新中~ ✨ 🚨 我的项目…...