模仿数据链路层的gobackn协议/*该协议是搭载ack的回退n步协议*/#include#include"protocol.h"#definemax_seq7#defineflag126#defineESC100#definewait_time2700 //发送计时器等待的时间#defineack_wait_time280staticintphl_ready=0;unsignedcharbuf[max_seq+1][270];unsignedcharack[8];//发送空的ack帧unsignedcharin_buf[600],last_buf[520];//接收时的缓冲区;去掉冗余之后的缓冲区,为防备因误码两帧合并为一帧而定义了很大一个数组intnbuffered=0;//发送的帧数intbuf_size[max_seq+1];//记下以发送各帧的帧长intnext_frame_to_send=0;intframe_in_phl=0;//用于成帧intframe_expected=0;intack_expected=0;intbetween(inta,intb,intc){ if(((a<=b)&&(b<c))||((c<a)&&(a<=b))||((b<c)&&(c<a))) return1; elsereturn0;}//判断帧尾,防止出现误判escescflag为数据的情况intend_flag(intin_len){ intcount=0; inti; if(in_len=0;i--)//记录flag前的esc数目 count++; returncount%2;//若flag前的esc为偶数,则为帧尾}//成帧函数--数据帧voidsend_frame(char*my_buf,intlen){ intn; buf[frame_in_phl][0]=(frame_expected+max_seq)%(max_seq+1); //ack buf[frame_in_phl][1]=frame_in_phl; //发送帧的帧号 for(n=0;n<len;n++) buf[frame_in_phl][n+2]=my_buf[n]; //将处理过的新帧赋值到缓冲区中 len=len+2; *(unsignedint*)(buf[frame_in_phl]+len)=crc32(buf[frame_in_phl],len); //在原始帧的基础上加检验和 buf_size[frame_in_phl]=len+4; //记录当前帧的长度,包括3个帧头,4个检验和 nbuffered=nbuffered+1; //缓冲区占用数加一 frame_in_phl=(frame_in_phl+1)%(max_seq+1);}//成帧函数--ack帧voidsend_ack() //ack帧的处理{ ack[0]=(frame_expected+max_seq)%(max_seq+1); ack[1]=max_seq+10; //ack帧的序号位,使ack[1]==frame_expected恒不成立 *(unsignedint*)(ack+2)=crc32(ack,2); //在原始帧的基础上加检验和}//主函数intmain(intargc,char**argv){intevent,arg,n,m,i,j,len=0,in_len=0; unsignedcharmy_buf[260]; intphl_wait=0;//在物理层中还没有被发送的帧protocol_init(argc,argv);enable_network_layer();for(;;){event=wait_for_event(&arg);switch(event){caseNETWORK_LAYER_READY:
2019/7/26 21:18:43 425KB go back n gobackn
1
本科教材PDF等等·262·工程力学·262·由图14.8(a)中的曲线2查得,当bσ=600MPa时,K1.66σ=,由表14-1查得0.88σε=。
由于轴表面经切削加工,由表14-2,使用插入法,求得β=0.925。
把以上求得的maxσ、Kσ、σε、β等代入公式(14.12),求出A-A处的工作安全因数为1max2502.61.6646.90.880.925nσKσσσσεβ=−==××规定的安全因数为n=2。
所以,轴在该截面处满足强度条件式(14.11)。
14.5持久极限曲线在非对称循环的情况下,用rσ表示持久极限。
rσ的脚标r代表循环特征。
例如脉动循环r=0,其持久极限记为0σ。
与测定对称循环持久极限1σ-的方法相似,在给定的循环特征r下进行疲劳试验,求得相应的S−N曲线。
图14.13即为这种曲线的示意图。
利用S−N曲线便可确定不同r值的持久极限rσ。
图14.13选取以平均应力mσ为横轴,应力幅aσ为纵轴的坐标系如图14.14所示。
对任一个应力循环,由它的mσ和aσ便可在坐标系中确定一个对应的P点。
由公式(14.4)知,若把一点的纵、横坐标相加,就是该点所代表的应力循环的最大应力,即ammaxσ+σ=σ(a)由原点到P点作射线OP,其斜率为amaxminmmaxmin1tan1rrσσσασσσ−−===++(b)可见循环特征r相同的所有应力循环都在同一射线上。
离原点越远,纵、横坐标之和越大,应力循环的maxσ也越大。
显然,只需maxσ不超过同一r下的持久极限rσ,就不会出现疲劳失效。
故在每一条由原点出发的射线上,都有一个由持久极限确定的临界点(如OP线上的P′)。
对于对称循环,r=−1,mσ=0,amaxσ=σ,表明与对称循环对应的点都在纵轴上。
由bσ在横轴上确定静载的临界点B。
脉动循环r=0,由式(b)知tanα=1,故与脉动循环对应的点都在α=45的射线上,与其持久极限bσ相应的临界点为C。
总之,对任一循环特征r,都可确定与其持久极限相应的临界点。
将这些点连成曲线即为持久极限曲线,如图14.14中的曲线AP′CB。
2022/10/19 13:52:36 14.93MB 工程力学
1
Boykov的典范的Labeling算法,用于GraphCut。
Tousethissoftware,YOUMUSTCITEthefollowinginanyresultingpublication:[1]EfficientApproximateEnergyMinimizationviaGraphCuts.Y.Boykov,O.Veksler,R.Zabih.IEEETPAMI,20(12):1222-1239,Nov2001.[2]WhatEnergyFunctionscanbeMinimizedviaGraphCuts?V.Kolmogorov,R.Zabih.IEEETPAMI,26(2):147-159,Feb2004.[3]AnExperimentalComparisonofMin-Cut/Max-FlowAlgorithmsforEnergyMinimizationinVision.Y.Boykov,V.Kolmogorov.IEEETPAMI,26(9):1124-1137,Sep2004.Furthermore,ifyouusethelabelcostfeature(setLabelCost),youshouldcite[4]FastApproximateEnergyMinimizationwithLabelCosts.A.Delong,A.Osokin,H.N.Isack,Y.Boykov.InCVPR,June2010.
2016/8/17 5:14:50 67KB GraphCut
1
PID控制是最早发展起来的控制策略之一,是迄今为止最通用的控制方法。
目前大多数工业控制回路仍然应用着PID控制器或改进型PID控制器。
在PID控制中,控制效果的好坏完全取决于PID参数的整定与优化。
普通的PID控制在控制基本线性和动念特性不随时间变化的系统上控制效果不错,但是在控制非线性、时变的系统时,控制效果往往不佳。
温度控制具有非线性、大滞后、大惯性、时变性、升温单向性等特点,因此传统的PID控制无法对其实现有效的控制,智能PID开始应用于温度控制系统。
随着计算机技术和智能计算理论的发展,智能控制理论正越来越多的应用于PID控制器的功能改进中去。
模糊控制和神经网络各有优点,两者都能对PID控制器参数进行整定与优化,提高了PID控制器的控制功能。
  本文将模糊控制与神经网络结合起来,组成模糊神经网络对PID三个参数进行整定与优化,设计出了一种模糊神经网络PID控制器结构,在此基础上以DSP为处理器实现了具有自整定功能的PID温度控制系统。
系统主要包括:电源模块,采用TPS76833芯片进行电源转换;
温度电压测量模块,采用Ptl00温度传感器及其相应的测量电桥进行温度电压采集,应用DSP的模数转换单元将模拟量转换为数字量;
人机交互模块,运用DSP的I/O模块设计出一套键盘作为输入,LCD显示器采用点阵式液晶显示器MG.12232,与PC机的交互方面,采用支持RS.232标准的MAX一232作为驱动芯片,驱动DSP与PC机的串行通信;
温度控制模块采用控制量控制PWM波占空比信号的策略,输出占空比信号来控制功率模块的导通,达到控制温度的目的。
最后设计并实现了基于自整定PID控制器的温度控制系统的主要程序。
2020/6/3 4:32:06 3.01MB 控制器/处理器
1
谢谢之前那位朋友提示,之前不完全,现在补充了遗漏的!要做Turbo,感觉是绕不开Dr.wuyufei的数学架构的,我在里面详细注释了。
本文作为学习用,很具有参考价值!本文在结果中详细列出了每次迭代的误码率,迭代次数可调,结果运行时间较长,这个很正常。
译码部分的log-map算法调通了,sova有代码,并没有调,下载的朋友们需要注意了!%**************Dr.wuyufei的典型Turbo系统主函数********************************%Thisscriptsimulatestheclassicalturboencoding-decodingsystem.%Itsimulatesparallelconcatenatedconvolutionalcodes.%Twocomponentrate1/2RSC(RecursiveSystematicConvolutional)componentencodersareassumed.%%Firstencoderisterminatedwithtailsbits.(Info+tail)bitsarescrambledandpassedto%thesecondencoder,whilesecondencoderisleftopenwithouttailbitsofitself.%%Randominformationbitsaremodulatedinto+1/-1,andtransmittedthroughaAWGNchannel.%Interleaversarerandomlygeneratedforeachframe.%Whileit'sUNECESSARYinourfirstversion!%%Log-MAPalgorithmwithoutquantizationorapproximationisused.%Bymakinguseofln(e^x+e^y)=max(x,y)+ln(1+e^(-abs(x-y))),%theLog-MAPcanbesimplifiedwithalook-uptableforthecorrectionfunction.%Ifuseapproximationln(e^x+e^y)=max(x,y),itbecomesMAX-Log-MAP.
2020/7/21 8:34:33 72KB turbo matlab仿真 dr.wuyufei 详细注释
1
第一步:附加数据库第二步:根听说明文档,在表中按指定的规定写入数据即可。
2020-03-18更新:几年前发的资源,今天才想起来看看,原来当初还加密了的。
实在不好意思,现将加密部分补充发出来。
还有不清楚的或者失败了的可以问我,看账号可联系我。
declare@urlasvarchar(1000),@jsonasvarchar(max)set@url=''--接口地址set@json=''--发送的参数Declare@ObjectasIntDeclare@ResponseTextasVarchar(8000)EXECsp_OACreate'MSXML2.ServerXMLHttp',@ObjectOUT;Execsp_OAMethod@Object,'open',NULL,'POST',@url,'false'Execsp_OAMethod@Object,'send',null,@jsonEXECsp_OAMethod@Object,'responseText',@ResponseTextOUTPUTExecsp_OADestroy@Objectprint@ResponseText---接口响应
2017/5/26 17:39:33 1.64MB SQL存储过程 推送微信消息
1
[例3.6]某对称离散信道的信道转移概率矩阵P为:1/31/31/61/61/61/61/31/3计算其最佳信源概率和信道容量C。
附:程序代码如下:#include#include#defineMAX50doubleCalculate_a(intk,doublepa[]);doubleCalculate_C1(doublepa[],doublea[]);doubleCalculate_C2(doublea[]);intr,s;doublepba[MAX][MAX];voidmain(){ inti,j;doubleC1,C2,E; doublea[MAX],pa[MAX]; E=0.000001; printf("请输出信源符号个数r:\n"); scanf("%d",&r); printf("请输出信宿符号个数s:\n"); scanf("%d",&s); printf("请输出精确度E:\n"); scanf("%lf",&E); printf("请输出信源P[ai]:\n"); for(i=0;i<r;i++) scanf("%lf",&pa[i]); printf("请输出信道转移概率矩阵P[bj][ai]:\n"); for(i=0;i<r;i++) for(j=0;j<s;j++) scanf("%lf",&pba[i][j]); do { for(i=0;i=E) { doublesum=0; for(i=0;i<r;i++) sum+=pa[i]*a[i]; for(i=0;i<r;i++) pa[i]=pa[i]*a[i]/sum; } else { printf("最佳信源概率:\n"); for(i=0;i=E);printf("信道容量为:%lf\n",C1/log(2));}doubleCalculate_a(intk,doublepa[]){ inti,j; doubletemp,sum2=0; for(j=0;j<s;j++) { doublesum1=0; for(i=0;i<r;i++) { sum1+=pa[i]*pba[i][j]; } temp=pba[k][j]/sum1; temp=log(temp); sum2+=pba[k][j]*temp; } returnexp(sum2);}doubleCalculate_C1(doublepa[],doublea[]){ inti; doublesum=0; for(i=0;i<r;i++) sum+=pa[i]*a[i]; returnlog(sum);}doubleCalculate_C2(doublea[]){ inti; doublemax=a[0]; for(i=0;i<r;i++) if(max<a[i])max=a[i]; returnlog(max);}
1
简单的方法可以为您的产品增加设计风格,用户满意度和异想天开!进一步详细引见SparkJoy的原理,如果您想探索这种方法如何比设计实用程序更能应用,请查看。
目录4分钟内完成网页设计保持简单::CSS/UI模板HTML/CSS漂亮的模板使用Tailwindv2(和)的免费的顺风组件套件使用引导程序认真CSS框架较重CSS框架学习曲线更大,可能有js,但更多OOTB)引导程序实用CSSWeb组件嵌入式CSS框架更轻,没有js。
使用预览其中的一些更多集合:和超轻量:main{max-width:38rem;padding:2rem;margin:auto;}有趣CSS框架重点很有趣(类似于roughjs的handrwritingeyCSS)重点是野蛮主义此
2015/5/10 4:44:54 616KB JavaScript
1
介绍一个简单的程序,用于计算无法直接加载到内存(1GB)的大文件(100GB)中最常出现的url的topn。
用法生成测试数据makedata使用1GB网址进行测试maketest使用100GB网址运行makerun算法根据hash(url)将输入文件拆分为1009个小文件。
加载每个小文件,通过dict计算url的出现次数,然后通过堆获取topn出现次数。
合并步骤2中所有出现的topn事件,并获得最终的topn并进行打印。
复杂度分析N是网址数。
NS是分割文件的数量,等于1009。
K是我们想要的结果URL的数量,等于100。
BS是缓冲区大小的大小,可能是4096或8192,请参见步骤1从输入文件读取或写入拆分文件的时间均为N/BS*T(diskio),哈希计算的时间为N*T(hash),因而时间复杂度为O(max(2*N
2022/9/25 16:57:51 14.13MB C
1
教程共分为上中下三篇,其中,上篇分别对DAQ基础知识简介、配置管理软件MAX以及DAQ助手ExpressVI进行讲解,中篇对模仿I/O与数字I/O、计数器应用、定时与触发分四部分讲解,下篇对数据存储与文件I/O、同步、模块化仪器进行讲解,昨为免费资源来说很有价值,当然还有配套的视频教程,但由于上传权限限制,暂时无法上传,待以后上传
2016/8/9 8:05:47 2.87MB NI DAQ 编程指南(中文版)
1
共 141 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡