关于这是的源代码,该项目由lab10集体与KunsthausGraz等人合作发起,于2017年10月启动。
有关更多信息,请访问和(如果您对应用程序如何使用以太坊和IPFS感兴趣,则尤其是)。
安装和运行Web应用程序安装后端和前端依赖项:npmicdfrontendnpmi保存时,前端和后端都会自动重载源文件,使用nodemon的node.js后端,react.js前端webpack都会自动重装源文件。
可以使用以下方法启动组合的前端/后端开发环境:npmstartEslint已配置,但未强制执行。
请尝试提交您的代码,而不减少错误/警告。
要手动运行eslint,请使用:npmlint要在每个保存/更改的源文件上自动运行单元测试:npmruntest----watchWeb应用架构该Web应用程序负责向用户展示游戏,处理用户输入并将信息分发到各种其他子系统,例如数据库,区块链和BIX。
前端和后端之间的通信是使用经过时间检验且易于使用的socket.io库完成的。
需要建立通信体系结构,以免引起服务器潜在的拥塞,尤其是应避免(可
2024/12/9 10:34:09 1.33MB nodejs socket-io ethereum ipfs
1
SuperIO的特点:1)支持二次开发,快速构建自己的通讯数据采集平台软件2)快速构建设备驱动、协议驱动、命令缓冲、自定义参数和实时数据3)快速二次开发图形显示、数据输出、服务驱动4)一个设备驱动,同时支持串口(COM)和网络(TCPServer/TcpClient)通讯机制,可以自由切换5)内置协议驱动,可以把第三方协议转换成自定义的协议6)内置设备命令缓冲器,可以设置命令发送的优先级别7)以插件的方式挂载设备驱动、显示、输出、服务模块等8)以服务驱动方式(IAppService)二次开发OPC服务、4-20mA输出、LED大屏显示、短信服务等9)快速开发、运行稳定、扩展性强大10)适用工业上位机软件,以及系统集成中采集远程设备数据http://www.bmpj.net
2024/12/2 2:19:25 51.9MB SuperIO 串口 网络 工控
1
自动取样器教导功能当自动取样器首次安装时,或重新安装时,必须用特殊的教导功能告诉自动取样器样品瓶的正确位置。
这将保证准确、精确的选择和抓取样品瓶。
注释:这个步骤只有在自动取样器不能从正确位置抓取样品瓶时才需要进行。
按下面的步骤教导自动取样器样品瓶的位置:1.关闭自动进样器电源;
2024/11/30 8:09:37 1KB AOC-20s教导功能
1
在以STM32为中心的设备中,使用它自带的DAC即可非常方便的实现4-20mA的输出接口,具有精度高、稳定性好、漂移小以及编程方便等特点。
2024/11/13 18:44:43 76KB STM32 单片机 TL431 4-20mA输出电路
1
GJK计算碰撞代码的应用//-----------------------------------------------------------------------------//Torque3D//Copyright(C)GarageGames.com,Inc.////Thecorealgorithmsinthisfilearebasedoncodewritten//byG.vandenBergenforhisinterferencedetectionlibrary,//"SOLID2.0"//-----------------------------------------------------------------------------#include"core/dataChunker.h"#include"collision/collision.h"#include"sceneGraph/sceneObject.h"#include"collision/convex.h"#include"collision/gjk.h"//----------------------------------------------------------------------------staticF32rel_error=1E-5f;//relativeerrorinthecomputeddistancestaticF32sTolerance=1E-3f;//DistancetolerancestaticF32sEpsilon2=1E-20f;//ZerolengthvectorstaticU32sIteration=15;//Stuckinaloop?S32num_iterations=0;S32num_irregularities=0;//----------------------------------------------------------------------------GjkCollisionState::GjkCollisionState(){a=b=0;}GjkCollisionState::~GjkCollisionState(){}//----------------------------------------------------------------------------voidGjkCollisionState::swap(){Convex*t=a;a=b;b=t;CollisionStateList*l=mLista;mLista=mListb;mListb=l;v.neg();}//----------------------------------------------------------------------------voidGjkCollisionState::compute_det(){//Dotnewpointwithcurrentsetfor(inti=0,bit=1;i0)returnfalse;}}returntrue;}//----------------------------------------------------------------------------inlineboolGjkCollisionState::closest(VectorF&v){compute_det();for(ints=bits;s;--s){if((s&bits)==s){if(valid(s|last_bit)){ bits=s|last_bit;if(bits!=15) compute_vector(bits,v); returntrue;}}}if(valid(last_bit)){bits=last_bit;v=y[last];returntrue;}returnfalse;}//----------------------------------------------------------------------------inlineboolGjkCollisionState::degenerate(constVectorF&w){for(inti=0,bit=1;imState=this;mListb=CollisionStateList::alloc();mListb->mState=this;}//----------------------------------------------------------------------------voidGjkCollisionState::reset(constMatrixF&a2w,constMatrixF&b2w){VectorFzero(0,0,0),sa,sb;a2w.mulP(a->support(zero),&sa);b2w.mulP(b->support(zero),&sb);v=sa-sb;dist=v.len();}//----------------------------------------------------------------------------voidGjkCollisionState::getCollisionInfo(constMatrixF&mat,Collision*info){AssertFatal(false,"GjkCollisionState::getCollisionInfo()-Thereremainscalingproblemshere.");//ThisassumesthattheshapesdonotintersectPoint3Fpa,pb;if(bits){getClosestPoints(pa,pb);mat.mulP(pa,&info->point);b->getTransform().mulP(pb,&pa);info->normal=info->point-pa;}else{mat.mulP(p[last],&info->point);info->normal=v;}info->normal.normalize();info->object=b->getObject();}voidGjkCollisionState::getClosestPoints(Point3F&p1,Point3F&p2){F32sum=0;p1.set(0,0,0);p2.set(0,0,0);for(inti=0,bit=1;isupport(va);a2w.mulP(p[last],&sa);VectorFvb,sb;w2b.mulV(v,&vb);q[last]=b->support(vb);b2w.mulP(q[last],&sb);VectorFw=sa-sb;if(mDot(v,w)>0)returnfalse;if(degenerate(w)){++num_irregularities;returnfalse;}y[last]=w;all_bits=bits|last_bit;++num_iterations;if(!closest(v)||num_iterations>sIteration){++num_irregularities;returnfalse;}}while(bitssEpsilon2);returntrue;}F32GjkCollisionState::distance(constMatrixF&a2w,constMatrixF&b2w,constF32dontCareDist,constMatrixF*_w2a,constMatrixF*_w2b){num_iterations=0;MatrixFw2a,w2b;if(_w2a==NULL||_w2b==NULL){w2a=a2w;w2b=b2w;w2a.inverse();w2b.inverse();}else{w2a=*_w2a;w2b=*_w2b;}reset(a2w,b2w);bits=0;all_bits=0;F32mu=0;do{nextBit();VectorFva,sa;w2a.mulV(-v,&va);p[last]=a->support(va);a2w.mulP(p[last],&sa);VectorFvb,sb;w2b.mulV(v,&vb);q[last]=b->support(vb);b2w.mulP(q[last],&sb);VectorFw=sa-sb;F32nm=mDot(v,w)/dist;if(nm>mu)mu=nm;if(mu>dontCareDist)returnmu;if(mFabs(dist-mu)sIteration){++num_irregularities;returndist;}y[last]=w;all_bits=bits|last_bit;if(!closest(v)){++num_irregularities;returndist;}dist=v.len();}while(bitssTolerance);if(bits==15&&mu<=0)dist=0;returndist;}
2024/11/12 17:21:22 50KB GJK 碰撞
1
4-20G高通滤波器用HFSS仿真,采用悬置导带高通滤波器进行设计
2024/10/24 13:11:29 221KB 高通滤波器 HFSS 仿真
1
生产者—消费者:在同一个进程地址空间内执行的两个线程生产者线程生产物品,然后将物品放置在一个空缓冲区中供消费者线程消费。
消费者线程从缓冲区中获得物品,然后释放缓冲区。
当生产者线程生产物品时,如果没有空缓冲区可用,那么生产者线程必须等待消费者线程释放出一个空缓冲区。
当消费者线程消费物品时,如果没有满的缓冲区,那么消费者线程将被阻塞,直到新的物品被生产出来。
生产者—消费者问题:(1)每个生产者和消费者对有界缓冲区进行操作后,即时显示有界缓冲区的全部内容,当前指针位置和生产者/消费者进程的标识符。
说明:有界缓冲区(提示:有界缓冲区可用数组实现)内设有20个存储单元,放入/取出的数据项设定为1-20这20个整型数。
(2)生产者和消费者各有两个以上。
(3)多个生产者或多个消费者之间须有共享对缓冲区进行操作的函数代码。
代码可以运行的,放心使用。
2024/10/20 0:58:52 450KB C++
1
scratch视频教程10---20节的课程,视频高清,下载即可观看,是小朋友学习编程的入门课程,课程简洁易懂,难度由浅到深,学完后,可为学习paython打下坚实基础!
1
Android+小项目开发示例大全--20个通用具体应用程序实例源码Android+小项目开发示例大全--20个通用具体应用程序实例源码Android+小项目开发示例大全--20个通用具体应用程序实例源码
1
整个煤气发生炉汽包水位的保护系统的工作原理为:利用压力传感器来检测发生炉的汽包水位,将送来的4-20mA或0-5A的标准信号经过信号调理模块送到现场控制单元(PLC),经过智能运算后形成控制信号,控制信号再经过信号调理模块返送到现场执行单元(电磁阀)。
对发生炉进行控制,同时把个单元通过以太网相连,将需要控制的信号送入上位机,实现人机交换和远程控制。
2024/10/2 5:48:06 815KB 汽包 液位 控制
1
共 126 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡