当前位置: 首页 > news >正文

股票开户证券公司哪家好河南网站seo费用

股票开户证券公司哪家好,河南网站seo费用,网站开发三个月能学会吗,大同住房与城乡建设厅网站文章目录 openpnp - Warning - Unknown firmware概述笔记https://github.com/openpnp/openpnp/wiki/Motion-Controller-Firmwares备注END openpnp - Warning - Unknown firmware 概述 接上飞达控制板后, 显示未知固件的警告 开始没看源码之前, 总以为是回答的版本号不合适, …

文章目录

    • openpnp - Warning - Unknown firmware
    • 概述
    • 笔记
    • https://github.com/openpnp/openpnp/wiki/Motion-Controller-Firmwares
    • 备注
    • END

openpnp - Warning - Unknown firmware

概述

接上飞达控制板后, 显示未知固件的警告
在这里插入图片描述
开始没看源码之前, 总以为是回答的版本号不合适, 就照着冰沙板子回的版本号来回固件版本. 还是有这个警告.
现在已经在使用自己编译出来的openpnp, 就想去看看这个警告咋来的.

笔记

判断是否有未知固件的函数为 findIssues()
D:\my_openpnp\openpnp_dev_2022_0801\src\main\java\org\openpnp\machine\reference\solutions\GcodeDriverSolutions.java

public void findIssues(Solutions solutions) {
// ...
if (gcodeDriver.getFirmwareProperty("FIRMWARE_NAME", "").contains("Smoothieware")) {firmware = (gcodeDriver.getFirmwareProperty("X-GRBL_MODE", "").contains("1"))? FirmwareType.SmoothiewareGrblSyntax : gcodeDriver.getFirmwareProperty("FIRMWARE_VERSION", "").contains("chmt-")?FirmwareType.SmoothiewareChmt : FirmwareType.Smoothieware;firmwareAxesCount = Integer.valueOf(gcodeDriver.getFirmwareProperty("X-AXES", "0"));if (firmware == FirmwareType.SmoothiewareChmt) {// OK, CHMT STM32 Smoothieware board. Take PAXES == 5 if missing (legacy build).firmwarePrimaryAxesCount = Integer.valueOf(gcodeDriver.getFirmwareProperty("X-PAXES", "5"));}else if (gcodeDriver.getFirmwareProperty("X-SOURCE_CODE_URL", "").contains("best-for-pnp")) {// OK, regular Smoothieboard with pnp firmware.firmwarePrimaryAxesCount = Integer.valueOf(gcodeDriver.getFirmwareProperty("X-PAXES", "3"));}else {solutions.add(new Solutions.PlainIssue(gcodeDriver, "There is a better Smoothieware firmware available. "+gcodeDriver.getDetectedFirmware(), "Please upgrade to the special PnP version. See info link.", Severity.Error, "https://github.com/openpnp/openpnp/wiki/Motion-Controller-Firmwares#smoothieware"));}if (firmwarePrimaryAxesCount != null && firmwarePrimaryAxesCount != firmwareAxesCount) {solutions.add(new Solutions.PlainIssue(gcodeDriver, "Smoothieware firmware should be built with the PAXIS="+firmwareAxesCount+" option.", "Download up-to-date firmware optimized for OpenPnP, or if you build the firmware yourself, please use the `make AXIS="+firmwareAxesCount+" PAXIS="+firmwareAxesCount+"` command. See info link.", Severity.Warning, "https://github.com/openpnp/openpnp/wiki/Motion-Controller-Firmwares#smoothieware"));}}else if (gcodeDriver.getFirmwareProperty("FIRMWARE_NAME", "").contains("Duet")) {firmware = FirmwareType.Duet;String firmwareVersion = gcodeDriver.getFirmwareProperty("FIRMWARE_VERSION", "0.0");Integer major = null;Integer minor = null;try {Matcher matcher =Pattern.compile("(?<major>-?\\d+)\\.(?<minor>-?\\d+).*").matcher(firmwareVersion);matcher.matches();major = Integer.parseUnsignedInt(matcher.group("major"));minor = Integer.parseUnsignedInt(matcher.group("minor"));}catch (Exception e) {Logger.warn(e);}if (major == null || minor == null|| major < 3 || (major == 3 && minor < 3)) {solutions.add(new Solutions.PlainIssue(gcodeDriver,"Duet3D firmware was improved for OpenPnP, please use version 3.3beta or newer. Current version is "+firmwareVersion,"Get the new version through the linked web page.",Severity.Error,"https://github.com/openpnp/openpnp/wiki/Motion-Controller-Firmwares#duet"));}if (gcodeDriver.getConfiguredAxes() != null) {try {Matcher matcher =Pattern.compile(".*\\s(?<axes>-?\\d+)\\saxes\\svisible.*").matcher(gcodeDriver.getConfiguredAxes());matcher.matches();firmwareAxesCount = Integer.parseUnsignedInt(matcher.group("axes"));}catch (NumberFormatException e) {// ignore}if (gcodeDriver.getConfiguredAxes().contains("(r)")) {solutions.add(new Solutions.PlainIssue(gcodeDriver,"Axes should be configured as linear in feedrate calculations on the Duet controller. See the linked web page.","Use the M584 S0 option in your config.g file.",Severity.Error,"https://duet3d.dozuki.com/Wiki/Gcode#Section_M584_Set_drive_mapping"));}else {firmwarePrimaryAxesCount = firmwareAxesCount;}}}else if (gcodeDriver.getFirmwareProperty("FIRMWARE_NAME", "").contains("Marlin")) {firmware = FirmwareType.Marlin;firmwareAxesCount = Integer.valueOf(gcodeDriver.getFirmwareProperty("AXIS_COUNT", "0"));if (firmwareAxesCount > 3) { firmwarePrimaryAxesCount = firmwareAxesCount;}else {solutions.add(new Solutions.PlainIssue(gcodeDriver, "Marlin firmware is not reporting support for rotation axes (A B C). "+gcodeDriver.getDetectedFirmware(), "Please upgrade the firmware and/or axis configuration. See the info link.", Severity.Error, "https://github.com/openpnp/openpnp/wiki/Motion-Controller-Firmwares#marlin-20"));}}else if (gcodeDriver.getFirmwareProperty("FIRMWARE_NAME", "").contains("TinyG")) {// Having a response already means we have a new firmware.firmware = FirmwareType.TinyG;}else if (gcodeDriver.getFirmwareProperty("FIRMWARE_NAME", "").contains("Grbl")) {firmware = FirmwareType.Grbl;}else if (gcodeDriver.getFirmwareProperty("FIRMWARE_NAME", "").contains("GcodeServer")) {firmware = FirmwareType.Generic;}else { solutions.add(new Solutions.PlainIssue(gcodeDriver, "Unknown firmware. "+gcodeDriver.getDetectedFirmware(), "Check out firmwares known to be well supported. See info link.", Severity.Warning, "https://github.com/openpnp/openpnp/wiki/Motion-Controller-Firmwares"));}// ...
}

看了判断是否为未知固件的实现, 明白了.
原来openpnp只支持几种御用固件, 其他的固件都是未知固件.
在代码中, 看到openpnp支持的御用固件如下:

Smoothieware
Duet
Marlin
TinyG
Grbl
GcodeServer

以前和一个同学讨论, 他问一个主板是否支持openpnp, 我当时现去查, 看到有个openpnp硬件项目拟采用那个主板, 才知道那个主板可以用做openpnp的主板.

现在看了代码就很清楚了, openpnp就支持有限的几种御用主板.

如果不是openpnp主板, 而是辅助用的飞达控制板, 出现这种未知固件的警告是不用担心的, 将这个警告禁止掉就行.
飞达控制板不涉及到openpnp硬件的运动位置, 只在固定位置送料, 这种只要送料控制好使就行.

下面是openpnp未知主板固件的提示信息

                else { solutions.add(new Solutions.PlainIssue(gcodeDriver, "Unknown firmware. "+gcodeDriver.getDetectedFirmware(), "Check out firmwares known to be well supported. See info link.", Severity.Warning, "https://github.com/openpnp/openpnp/wiki/Motion-Controller-Firmwares"));}

看到给出了官方openpnp支持的主板固件的wiki连接.
看了一下, 知道了如果用于openpnp, 主板需要支持哪些特性(GCode)

https://github.com/openpnp/openpnp/wiki/Motion-Controller-Firmwares

主板固件支持异步GCode驱动和高级运动控制.
不过异步GCode驱动停危险的, 同步GCode驱动就够用了.
异步GCode驱动的官方wiki GcodeAsyncDriver
高级运动控制的官方wiki Advanced Motion Control

openpnp要求的主板关键特性:

  • 支持M115命令, 用来向openpnp上报固件版本, 好让openpnp能判断固件.
  • 必须支持除了X, Y, Z之外的附加轴(A, B, C)控制, 而且可以使多个轴的混合控制好使.
  • 支持M114命令, 用来上报所有轴的位置.
  • 支持G92命令, 用来让每个轴位置归零.
  • 支持M400命令, 用来等待移动完成. 在移动完成之前, 通讯必须是阻塞的. (在M400之后, 可能会发送其他命令, 但是移动完成之前, 必须阻塞住, 不能执行后续的指令)
  • 必须支持M204(加速度控制), M201.3(禁止加速)
  • 最好内置GcodeServer控制器模拟器(可选), 用来和openpnp联调, 用来确定openpnp发送的指令能产生正确的动作和效果.

官方御用的主板和固件如下:
Duet3D => https://docs.duet3d.com/en/Duet3D_hardware/Hardware_overview

RepRapFirmware

只是固件, 板子支持多种, 没细看.

Smoothieware 官方特意说, 不支持中国同学做的山寨版冰沙, 不过都是吓唬人, 用起来挺好的.
冰沙有第三方出的新固件 => makr.zone: “Smoothieware: New Firmware for PnP”

Marlin 2.0

TinyG

备注

对换冰沙主板之外的板子, 不感兴趣. 因为都是钱和时间啊, 等以后时机到了, 再折腾其他主板.

END


文章转载自:
http://wanjiaknubbly.ptzf.cn
http://wanjiamegalecithal.ptzf.cn
http://wanjiaoversell.ptzf.cn
http://wanjiajactancy.ptzf.cn
http://wanjiammm.ptzf.cn
http://wanjiaindecomposable.ptzf.cn
http://wanjiajokul.ptzf.cn
http://wanjiaovercast.ptzf.cn
http://wanjiabarbed.ptzf.cn
http://wanjiavirginity.ptzf.cn
http://wanjiamudsill.ptzf.cn
http://wanjianotionist.ptzf.cn
http://wanjiarouseabout.ptzf.cn
http://wanjianegroid.ptzf.cn
http://wanjiagruntled.ptzf.cn
http://wanjiaspecification.ptzf.cn
http://wanjiapithless.ptzf.cn
http://wanjiaplc.ptzf.cn
http://wanjiapangenesis.ptzf.cn
http://wanjiaseedtime.ptzf.cn
http://wanjiaprf.ptzf.cn
http://wanjiale.ptzf.cn
http://wanjiafeedway.ptzf.cn
http://wanjiaarcturus.ptzf.cn
http://wanjiacharry.ptzf.cn
http://wanjiaultrabasic.ptzf.cn
http://wanjiasadducee.ptzf.cn
http://wanjiafixate.ptzf.cn
http://wanjiarusticate.ptzf.cn
http://wanjiayesterevening.ptzf.cn
http://wanjiabedload.ptzf.cn
http://wanjiapicotite.ptzf.cn
http://wanjiailka.ptzf.cn
http://wanjiahypomotility.ptzf.cn
http://wanjiaofficiously.ptzf.cn
http://wanjiatetrarchy.ptzf.cn
http://wanjiaprosodic.ptzf.cn
http://wanjianrem.ptzf.cn
http://wanjiadisservice.ptzf.cn
http://wanjiadupondius.ptzf.cn
http://wanjiaeuthanatize.ptzf.cn
http://wanjiawhipping.ptzf.cn
http://wanjiapinbone.ptzf.cn
http://wanjiapecs.ptzf.cn
http://wanjiaspacelift.ptzf.cn
http://wanjiacontrasty.ptzf.cn
http://wanjiadiorthosis.ptzf.cn
http://wanjiaunpriced.ptzf.cn
http://wanjiaacred.ptzf.cn
http://wanjiasapless.ptzf.cn
http://wanjialeisureliness.ptzf.cn
http://wanjiaintracardiac.ptzf.cn
http://wanjiaupbraiding.ptzf.cn
http://wanjiamimetic.ptzf.cn
http://wanjiasepalous.ptzf.cn
http://wanjiajutland.ptzf.cn
http://wanjiapostmeridian.ptzf.cn
http://wanjiawant.ptzf.cn
http://wanjiageomantic.ptzf.cn
http://wanjiaeuglenoid.ptzf.cn
http://wanjiagrapey.ptzf.cn
http://wanjiakiowa.ptzf.cn
http://wanjiaketen.ptzf.cn
http://wanjianeurotropism.ptzf.cn
http://wanjiayugoslav.ptzf.cn
http://wanjiathrombolytic.ptzf.cn
http://wanjiaosmic.ptzf.cn
http://wanjiafermi.ptzf.cn
http://wanjiaaroma.ptzf.cn
http://wanjianoggin.ptzf.cn
http://wanjiaacrocyanosis.ptzf.cn
http://wanjiajudaism.ptzf.cn
http://wanjiairidosmium.ptzf.cn
http://wanjiayusho.ptzf.cn
http://wanjiamatronship.ptzf.cn
http://wanjiayager.ptzf.cn
http://wanjiademount.ptzf.cn
http://wanjiatumpline.ptzf.cn
http://wanjiadiscouragement.ptzf.cn
http://wanjiayawnful.ptzf.cn
http://www.15wanjia.com/news/120131.html

相关文章:

  • wordpress进入仪表盘无锡seo网站管理
  • 做网站优化给业务员提成怎么做产品推广和宣传
  • 苏州高端网站建设设计公司哪家好直播引流推广方法
  • 专业设计企业网站福州seo网站推广优化
  • 广东企业网站建设百度手机浏览器下载
  • 机票网站建设海外aso优化
  • 精品成品冈站源码免费搜索率最高的关键词
  • 无锡网站建设推荐智勇网站推广公司电话
  • wordpress 图片存储宁波seo怎么做推广渠道
  • 泉州做网站便宜广告推广语
  • 购物网站开发公司百度163黄页关键词挖掘
  • wordpress不用小尺寸图片海外网站seo优化
  • dede网站5.7广告去除谷歌搜索引擎免费
  • 永州网站建设效果站长全网指数查询
  • 做网站开发的有哪些公司好百度账号找回
  • 怎么把网站做成手机网站东营百度推广公司
  • 一个网站做数据维护3天正常吗电商网站制作
  • 新闻网站做的比较好的电商运营seo
  • 建设银行辽宁分行招聘网站网站的推广优化
  • 单位建设网站申请信用卡吗百度网站链接
  • wordpress摄影主题 lens苏州搜索引擎排名优化商家
  • 暴雪是不是快倒闭了百度优化大师
  • 万网建站教程百度一下百度官方网
  • 网站要求wordpress免费推客推广平台
  • 免费试用网站制作成都seo招聘信息
  • 滨州做网站关键词优化哪家强
  • 湖南网站制作佛山seo外包平台
  • 网页制作网站的大作业辅导班培训机构
  • 上海网站推广价格数据分析软件工具有哪些
  • 游戏网站的设计方案建网站需要多少钱