在Python 2.7中模拟一个按键事件
我想做的是从Windows上的Python脚本级别按任何键盘键.我尝试过sendkeys,但仅在Python 2.6上使用.我尝试的其他方法包括 import win32com.client win32com.client.Dispatch("WScript.Shell").SendKeys('String to be typed') 只允许从脚本级别键入字符串,但不允许按Enter和其他"特殊"键. 因此,我的问题是:如何模拟来自Python脚本级别的任何键盘键按事件,包括Enter,Ctrl,ESC等的"特殊"键. ,如果可以将钥匙按下任何指定的时间并按下诸如alt+f4之类的键的组合,也将非常有用. 解决方案 我在1年前编写了此代码,所以它并不完美,但有效: from win32api import keybd_event import time import random Combs = { 'A': [ 'SHI
0 2024-03-01
编程技术问答社区
是否有任何模拟器/工具来生成流媒体的信息?
为了进行测试目的,我需要模拟客户端每秒生成100,000条消息并将其发送到Kafka主题.有什么工具或方法可以帮助我生成这些随机消息? 解决方案 有一个内置工具,用于生成虚拟负载,位于bin/kafka-producer-perf-test.sh中( https://github.com/apache/kafka/kafka/blob/trunk/bin/kafka-producer-perf-test.sh ).您可以参考 https://github.com/apache/kafka/kafka/blob/trunk/tools/src/src/main/java/java/org/opache/kafka/kafka/tools/producerperformance.java#l106 它. 一个用法示例就是这样: bin/kafka-producer-perf-test.sh --broker-list localhost:9092 --messages 1
0 2024-02-28
编程技术问答社区
时间测量的开始和结束
我的时间度量有问题.我想衡量生产时间.时间开始在汇编器之前,我将不同的代理放在一起.在图片上您会看到以下问题. 预先感谢您. 解决方案 如您在下面的图像中所看到的那样,每个TimeSealend必须与timemeasurestart关联.如果您不这样做,那么您将获得该错误. 对于汇编程序,由于输入的代理与退出的代理人不同,因此无法使用the pimemeasure块,而timeMeasure块只能测量同一代理的时间...相反,您应该使用一个使用一个来记录处理时间分析调色板中的数据集或统计元素,并做类似的事情:
0 2024-02-27
编程技术问答社区
Anylogic中的随机停车
我正在使用任何Llogic的交通路库,我知道在汽车源模块中可以定义汽车在停车场的初始位置. 我希望随机选择停车场的空间.我知道有此功能randomFreeSpaceIndex()返回随机选择的免费停车位的索引. ,但我不知道如何在汽车源上称呼它或将其与Carmoveto工具一起使用.这是我的 任何帮助都将受到赞赏! 解决方案 我很确定您不能使用标准停车场,因此不幸的是,您必须在下面的图像中看到许多带有1个停车位的停车位: 完成此操作,现在您可以选择一个可以像这样看起来像这样的模型的随机停车位: 在此型号中,我创建了一系列停车位...所有的停车位: 在选择输出块中,您询问是否有可用空间: for(ParkingLot p : parkingSpaces){ if(p.nFree()>0) return true; } return false; ,在Carmoveto中,您调用函数selectrandomparkingspac
0 2024-02-27
编程技术问答社区
在Anylogic模拟中很难找到代理人的当前位置
我构建了一个简单的模型,用于从开始线向目标线向目标线移动,我想使用XY坐标在某些区域中找到移动剂的数量(从x = 150到x = 350,y是相同的) 该事件的动作是在该区域中获取代理商计数,并为可变人群设置值: crowd1=count(agents(), p-> p.getX()>150 && p.getX()p.getX()>150 && p.getX()
6 2024-02-27
编程技术问答社区
Anylogic模拟存储在容器中的材料
我正在尝试模拟存储在架子上的容器中的材料,如果您卸下第一个,则容器向前滑动. 示例:一个容器可以容纳10个元素,并由批处理填充.容器移至架子(输送机),直到其空为止.组件块应从容器中取出一块并组装产品.如果容器为空,则可以从输送机上掉下来. 我确实试图将架子建模为输送机,这确实可以,但是如果有人有更好的主意,我很乐意听到它. 我最大的问题是下降部分.正如您在屏幕截图中看到的那样,容器已完全从输送机中取出,Dropoff-block从容器中取出1个元素,然后将包含9个零件的容器推入水槽. 有人对此有任何想法吗? 解决方案 您使用的技术不可能做什么. 您的是一个设计问题,因此要回答所有细节要花费太长时间,但是,这就是我使用以下结构的方式来做到的: 在拆分中,您将收到零件并创建将转到等待块的零件的副本,而原件将转到批处理(或反之亦然). 盒子到达输送机的末端后,您就可以释放属于输送机中盒子的PartsInsidebox.您必须为此创建逻辑.然后,零件将转到Par
0 2024-02-27
编程技术问答社区
如何将概率分布与Agent-Anylogic联系起来
我正在模拟任何logic上的模型,其中代理从队列块流向服务块. 我需要定义服务中的范围用类似概率分布的时间: 他们中的70%在服务上花费了15到30分钟的时间(应该是统一的分布,例如:统一(15,30)) 其中20%在30到45分钟之间 其中10%在45到60分钟之间 我已经与代理人关联了一个称为" TimeInservice"的参数,我认为我应该使用它,也许是服务的时间,但我不知道如何. 解决方案 在服务块的延迟上,您可以放置​​此代码: uniform()
2 2024-02-27
编程技术问答社区
跨模型获得相同的到达率
我有一个我已经重复的模型,并对其进行了一些调整.当我以相同固定种子的方式运行两个模型时,我不会得到相同的结果,我理解这是因为我在模型中还有其他随机性来源.无论如何,在这两个模型中,我都使用一个源块,因此到达是由速率时间表定义的,时间表是类型速率,并且从数据库中提供.现在,我知道以下信息: 通常,我可以在分布中使用自己的随机数生成器(RNG),例如三角形(5、10、25,myrng),使得随机myrng =新的随机(2) 默认情况下,具有"类型"速率的时间表遵循使用默认RNG的激情分布. 在模型中的任何时候,我可以通过调用setDefaultrandomgenerator(随机R)来代替默认RNG. 问题是:是否可以使用固定的种子来确保我在这两种模型中获得相同的确切输入? 解决方案 在任何方面,费率始终等于lambda的泊松分布等于您设定的速率, Intearrival时间不遵循任何分布,但是在现场使用指数(lambda)等同于使用lambda速率的到达率.
0 2024-02-27
编程技术问答社区
Anylogic。如何让一个代理在队列中等待,直到它改变状态?(离散事件流程图)
我开始使用任何logic进行仿真类,为此,我需要对以下行为进行建模:有一个进入FIFO队列的代理流,然后进入服务器(我以延迟进行了建模一个块),一次.代理商有两个州(称为A和B),如果代理到州A中的队列末端,则必须等到它返回州B才能进入服务. 我认为,在队列和延迟块之间具有一个代理的等待块可能会解决这种情况.但是我不知道如何使等待块在改变状态后立即释放. 欢迎其他方法.我只需要在延迟块之前保留代理,只要在州a中,就不再保留代理.预先感谢. 解决方案 是的...我会做的是带有容量1的等待块. . 现在,当您的代理进入状态时,在该状态的进入诉讼时,您要执行以下操作: if(currentBlock().equals(main.waitBlock) && main.service.size()==0){ main.waitBlock.free(this); } 您还需要在等待块的" on Enter"中执行此操作: if(agent.inS
0 2024-02-27
编程技术问答社区
任何logic中的社会力量模型参数
我正在尝试使用行人库中的任何logic撤离模型.任何铭文表明,行人运动都是根据社会力量模型的,但我找不到任何纪录片来解释这种逻辑.我想知道该库中是否有属于社会力量模型参数的特定块或设置,并允许修改其参数? 解决方案 尽管行人库使用下面的社交 - 基于基于物理的模型,但它还在顶部使用基于"自定义"的基于"自定义"的逻辑(例如,启用社交距离功能),并且没有明确的逻辑访问基础理论模型的参数. 您必须将其视为"黑匣子",并且只能通过更改诸如PED直径,舒适的速度,所需的社交距离等之类的事物来间接改变行为的某些方面. PED库过程流中的明确行为).所有的所有图书馆都这样工作.您还可以在顶部添加自己的自定义(基于代理)的行为;例如,使行人定期对事物进行"扫描"并相应地改变其行为(通常是通过过程流中的条件路径).
0 2024-02-27
编程技术问答社区
AnyLogic。在一个源块中同时使用到达表和一个参数数据库
为了分析生产过程,我想根据过去的真实数据在源块中产生代理. 为此,我想使用到达表来确保代理在正确的时间产卵. 但是我还需要给代理人不同的参数变化. 为此,我想使用"来自db的set agent参数" checkmark. 但是,看来我不能将它们组合在一起.有没有一种方法可以使用到达表和参数DB组合? 预先感谢. 解决方案 是的,您可以.您需要使用单个表来获取有关代理的所有信息. 请参阅下面的示例表 您还需要使用要从DB 填充的参数为您的源代理创建客户代理 然后,在源中,您可以选择在"新代理"下拉列表中生成此代理.然后,您将能够从您指定的表中填充所有代理参数
0 2024-02-27
编程技术问答社区
检查连接到代理的代理是否在等待块上 - 任何logic
直接问题:如何检查代理是否在等待块中等待? 更多详细信息?下面,谢谢. 我正在关注费利佩先生对类似问题的回答(这个: Anylogic-将多个项目合并回原始所有者) 在他的答案的第4步中,他说:" 在乘客方面,在Onenter Action上,您将检查是否与乘客连接的所有袋子都在Bagwait Block上...如果它们是...然后,您将释放(Wait.free(Agent))乘客和袋子" 您知道如何检查吗?我在单一患者和单一药物之间也有相同的问题. 解决方案 我想出了如何做的: 在乘客代理中制作新变量并称呼它 variable_IsWaitingForBag 在袋子代理中制作一个新变量,并将其称为variable_IsWaitingForPassenger 在passengerWait的onEnter中,使用以下内容: if(agent.agentLink_myBag.getConnectedAgent().variable_IsWaitin
0 2024-02-27
编程技术问答社区
计算所有处于某种状态的代理人
社区, 我想收集有关"客户"代理人的统计信息. 代理商人口主要生活.根据下面的屏幕截图描述代理状态. 在Main中,我想将代理统计信息存储在数据集中.因此,我尝试了:count(customers,c->c.inState(greenState)) 出现以下错误消息: " greenstate"无法解决变量. 有人可以帮我解释什么问题并提供解决方案吗? 非常感谢! :) 解决方案 您应该参考greenstate从代理内部存在的位置. count(customers,c->c.inState(Customer.greenState))
0 2024-02-27
编程技术问答社区
任意逻辑--动态指定要攫取的资源
,我希望代理进入抢劫块以能够指定所需的资源,而不是在捕获块的定义中扣除要扣押的资源(或资源池). 例如,我可能会说100个资源池每个代表不同类型的资源(例如工具室中的工具).我的模型中的每个代理都需要不同的组合和数量的资源(在我的示例中,这是工具).当我的代理进入抢购块以抓住其资源列表时,我希望代理商能够指定它需要的资源(工具或资源集). 是否可以使用"自定义资源选择"和"资源选择条件"选项实现此目的?还是可以实现另一种方法? 解决方案 您可以使用"自定义资源选择"设置,假设所有必需的资源都在一个资源库中. 假设您的资源具有字符串参数" mytype".现在,传入代理可以选择仅抓住unit.myType.equals("Mechanics")的资源. 显然,您可以随心所欲地使其变得灵活. 在"抓住"对象中,您还可以通过切换到动态设置来更改从哪些池从哪些池捕获的静态分配.现在,您非常灵活地使用哪些池以及(在一个池中)抓住哪些单位...
2 2024-02-27
编程技术问答社区
在Anylogic中只允许固定数量的代理定期通过一个队列块
我正在使用一个队列并将块固定在一起,在该块中保持堵塞,直到所有代理到达队列块. 如何更改它,并只想以固定的时间间隔(例如每3分钟)允许固定数量的代理(例如5个代理)?我的队列的当前属性并保持块: queue_block_properties hold_block_properties 解决方案 创建一个复发时间3分钟的循环事件. 还可以创建一个变量,您可以将其命名为int类型的count. 在事件动作字段中写下: count = 0; hold.unblock(); 然后,在"保留块"的On enter字段中写下以下内容: count++; if( count == 5 ) { self.block(); } 我唯一的问题是您是否希望每3分钟恰好有5个特工离开,或者如果他们以后到达是否可以.换句话说,如果3分钟后,队列中只有3个特工,它们是否离开,如果在下一个周期之前另外2次到达,则持有仍然没有阻碍?还是立即保持固定块? 在
2 2024-02-27
编程技术问答社区
Anylogic。如何为同一资源池中的某些工人执行停机任务?
我必须对一个任务进行建模,其中在简化的示例中,两个工人在他们拥有的对象队列上进行了一些工作.但是他们的工作转变可能有所不同,我的模型应该支持这一点. 有什么方法可以简单地说,同一资源池的每个单元都有不同的工作时间表? 我尝试了一个自开发的解决方案,其中我使用了两个独立的资源池,每个资源池的容量为一个,并将两个资源池分配给了服务块.但是问题在于,新配置的输出速率比使用单个容量池二的资源池少. . 在系统中带有资源池,如下图所示,两名工人在两个不同的部分上同时工作,而350个时间单元后5个代理通过了服务块. 在资源库上使用具有两个的资源库时 在此系统中输出 使用两个具有容量的资源池时 在新系统中输出 在使用两个资源池时,在350个时间单元后的最后一个图像中显示了350个代理通过服务块.另一个区别是同时处理的零件数.当我们使用一个资源池时,数字为两个,当我们使用两个不同的资源池时,一次仅处理一个部分. 是否有人知道为什么会发生这种情况,并且有什么办法
0 2024-02-27
编程技术问答社区
在anylogic中运行N次模拟
在我的任何图表项目中,我想终止执行并运行n次模拟.在每个模拟中,我将输出存储在取决于运行计数的Excel文件中. 我不想自动执行我的单击而停止和运行.我怎样才能做到这一点? 我尝试使用一个事件并写入时循环(myparm 谢谢 解决方案 为了循环运行模型,请在超时触发事件的动作字段或顶级代理的销毁字段中使用以下代码: new Thread(){ public void run(){ // stops the model getExperiment().stop(); try { // delay this.sleep(1000); } catch(Exception e) {}; // runs it again ((Simulation) getExperiment()).button.action(); } }.
0 2024-02-27
编程技术问答社区
Anylogic:用代理填充托盘架上的托盘架
对于模拟托盘架系统,我想用代理预填充该系统(例如,给出80%的填充等级).此后预填充盒子应由不同的源块产生. 我认为从理论上讲,我可以在主要方法中使用命令palletrack.put(int row, int position, int level, boolean leftAisle, Agent agent)手工添加代理. 但是,我需要在启动时添加成千上万的代理商,这将是乏味的(尤其是如果我想从不同的填充级别开始). 这些代理的数据可在Excel文件中获得. 有没有办法将Excel-File实施为创业情况? 在Excel文件中,我具有所需代理的所有属性,包括行,位置,级别和储藏位置的深度. 预先感谢. 解决方案 您有2个选项 选项1:Excel文件 只需链接模型中的excel文件,使用连接调色板中的对象 然后,您可以使用类似于下面的代码初始化所有项目 int excelRow = 2; String sheetName =
0 2024-02-27
编程技术问答社区
Anylogic-创建资源并添加到资源池中
我很难找到需要使用资源和资源池的文档 - 我找不到"资源API文档". 我想编程创建静态资源(自定义类型),然后将这些资源添加到资源池中.创建资源时,我希望能够在将其添加到资源池之前指定其属性值.在我看来,代码看起来像这样: Room myRoom; myRoom = new Room("redRoom", 20); addTo_myResourcePool(myRoom); myRoom = new Room("greenRoom", 10); addTo_myResourcePool(myRoom); 有人知道是否有实现这一目标的方法? 解决方案 这在Anylogic中有点盲点.只能间接完成: 使用您的代理类型创建一个空代理人 告诉资源池使用该代理类型 根据需要设置资源池容量.游泳池将为您在该人群中为您创建代理商(如果容量大于当前资源数量) 如果要手动创建资源,则必须调用myResourcePool.set_Capacity(myResour
0 2024-02-27
编程技术问答社区
资源规格和代理人的跟踪
我需要解决一个问题,由于我缺乏Java培训,我无法解决.编写的代码是什么来追踪获得资源的代理? 让我更好地解释一下...我有一系列的房间,每个进入结构的经纪人都会带一个他在整个住宿中保留的房间,我想实时看到哪些房间,哪个房间被占用以及哪个代理商.我怎样才能做到这一点? 谢谢你 解决方案 您可以简单地将扣押的资源保存给代理,反之亦然,使用变量,在命令中. 这是一个简单的示例 我有一个人和一个房间代理,每个代理都有一个类型的变量. 在这个非常简单的流程图中,带有创建人员的来源,并抓住了与RoomResource代理的资源库相连的,并且资源单元生活在称为roomResource的人群中. 您只需在"占领块"中指定以下内容 agent.room = unit; unit.agent = agent; 您会看到代理代表块中的代理,单位表示从资源池扣押的单元 现在您可以将其用于代理商 现在,您可以通过访问变量 来查看每个人占用哪个房间和哪个房间
0 2024-02-27
编程技术问答社区