麦芯 (MachCore) 应用开发教程 6:一台设备中多台电脑主从机的设置
麦芯是构建在windows系统上的设备应用操作系统,利用该系统可以快速高效的开发一款设备专用软件。希望进一步了解请email: acloud@163.com
黄国强 2025/02/03
在麦芯(MachCore)应用开发过程中,多机协同工作的场景十分常见,一台设备连接多台电脑并设置主从机模式,能有效实现资源整合与高效协作。以下是详细的设置步骤及相关要点:
一、确保网段一致
- 原理:同一网段是网络通信的基础,就如同住在同一个小区里,大家才能方便地相互串门。在网络中,处于同一网段的主从机,它们的网络地址的网络位相同,这样数据在传输时就能准确找到彼此,实现顺畅的数据传输和指令交互。
- 操作:查看主从机的网络配置,确保子网掩码相同,且 IP 地址的前几位(网络位)一致。例如,常见的 192.168.1.x 网段,只要主机是 192.168.1.1 ,从机是 192.168.1.2 - 192.168.1.254 之间的任意合法地址,且子网掩码都为 255.255.255.0 ,就处于同一网段。
- 常见问题及解决:若发现主从机不在同一网段,可能是网络管理员分配错误,或者设备的网络配置被误修改。这时需要重新检查网络配置,向管理员确认正确的网络参数后,手动修改 IP 地址和子网掩码。
二、设置从机固定 IP
- 稳定性意义:网络连接就像寄信,固定 IP 就如同固定的收件地址。如果从机的 IP 地址随意变动,主机就像寄信时找不到收件地址一样,无法与从机建立稳定有效的连接。这会导致在麦芯应用运行时,从机无法及时接收主机的指令,或者主机无法获取从机的数据,严重影响整个系统的运行。
- 操作步骤:以 Windows 系统为例,打开 “控制面板”,找到 “网络和 Internet”,进入 “网络连接”,右键点击正在使用的网络连接(如以太网或 Wi - Fi),选择 “属性”。在弹出的窗口中,找到 “Internet 协议版本 4(TCP/IPv4)”,点击 “属性”,选择 “使用下面的 IP 地址”,然后填写固定的 IP 地址、子网掩码、默认网关和 DNS 服务器地址。
- 注意事项:设置固定 IP 时,要确保所选的 IP 地址在当前网段内未被其他设备占用,否则会产生 IP 冲突,导致网络连接异常。
如图是本机IP地址。
三、检查网络连通性
- ping 命令使用:ping 命令是网络诊断的常用工具,通过向目标主机发送 ICMP(Internet 控制消息协议)回显请求数据包,来测试两台电脑之间的连通性。在 Windows 系统中,按下 Win + R 键,输入 “cmd” 打开命令提示符,在命令提示符中输入 “ping + 目标 IP 地址”,例如 “ping 192.168.1.10”(假设从机 IP 是 192.168.1.10 )。
- 连通性影响:如果无法 ping 通,不仅文件和打印机共享功能无法正常使用,麦芯应用中主从机之间的数据共享和协同工作也会受到严重阻碍。比如从机采集的数据无法及时传输到主机进行分析处理,主机的控制指令也无法传达给从机。
- 故障排查思路:若 ping 不通,首先检查网络线缆是否连接正常,路由器或交换机是否工作正常。然后查看防火墙设置,是否限制了 ICMP 协议的数据包通过。如果是无线连接,还要检查无线信号强度和密码是否正确。
四、统一 redis 版本
- 版本一致的重要性:redis 是麦芯应用中常用的数据库,不同版本的 redis 可能在数据结构、命令语法、性能优化等方面存在差异。例如,新版本可能增加了某些新的命令,而旧版本不支持,这就会导致主从机之间的数据同步和交互出现故障,无法实现预期的功能。
- 检查和安装:在主从机上分别打开命令行工具,输入 “redis - cli --version” 查看当前安装的 redis 版本。如果版本不一致,需要卸载低版本或不匹配的版本,然后从 redis 官方网站下载 5.0.14.1 版本的安装包进行安装。安装过程中,按照安装向导的提示进行操作,注意选择正确的安装路径和配置选项。
- 兼容性问题预防:在安装新版本 redis 之前,备份好原有的数据,以防安装过程中出现问题导致数据丢失。同时,查阅 redis 官方文档,了解该版本的特性和已知问题,提前做好应对措施。
五、修改从机 redis 配置
- 修改 bind 配置:
目的:默认情况下,redis 的 bind 配置可能限制了连接的 IP 地址范围。将bind配置修改为bind 0.0.0.0,可以让从机的 redis 服务接受来自任何 IP 地址的连接请求,这样主机就能顺利连接到从机的 redis 服务。
操作:使用文本编辑器(如 Notepad++、Sublime Text 等)打开从机的 redis.windows.conf(或 redis.windows - service.conf)文件,找到bind配置项,将其值修改为bind 0.0.0.0 。修改完成后,保存文件。
- protected - mode 配置调整:
是否修改判断:protected - mode是 redis 的一种安全保护模式。当设置为yes时,redis 只允许本地连接,在一定程度上提高了安全性。但在主从机设置中,可能会影响主机与从机的 redis 连接。如果当前配置下主从机能够正常连通,说明不需要修改;若存在连接问题,可尝试修改为no。
风险提示:将protected - mode设置为no会使 redis 暴露在网络中,增加了被攻击的风险。所以在修改之前,要确保网络环境安全,或者采取其他安全措施,如设置 redis 密码等。
六、配置从机防火墙规则
- 端口放行原因:redis 默认使用 6379 端口进行通信,防火墙就像网络的门卫,若未放行 6379 端口规则,主机发送到从机 6379 端口的请求就会被防火墙拦截,导致主机无法与从机的 redis 服务建立连接。
- 操作示例(Windows 防火墙):打开 “控制面板”,找到 “系统和安全”,进入 “Windows 防火墙”,点击 “高级设置”。在左侧选择 “入站规则”,然后在右侧点击 “新建规则”。在弹出的向导中,选择 “端口”,点击 “下一步”,选择 “TCP”,特定本地端口输入 “6379”,再按照向导提示,选择 “允许连接”,并设置应用此规则的程序和作用域等选项,最后完成规则创建。
- 注意事项:不同的防火墙软件设置方法可能不同,但基本原理都是放行 6379 端口。在设置防火墙规则时,要仔细确认规则的生效范围和条件,避免误操作导致其他网络服务受到影响。
七、配置主机信息
- Station.json 文件作用:主机的 Station.json 文件用于存储设备的相关配置信息,包括各个检测站的设置。当检测站位于从机上时,就需要在该文件中写入从机(slave)信息,以便主机能够正确识别和连接从机上的检测站。
- 具体配置示例:
{"CN" : "检测站","EN" : "Inspection","fields" : [{"CN" : "-2 已处理 -1 处理错误 0 空 1 有 2 未知","name" : "item","value" : 0},{}],"emulate_time_ms" : 0,"def_proc_id" : 2,"name" : "st_inspection","slave" : {"ip" : "192.168.1.14","port" : 6379,"station" : "st_inspection"}
}
其中,“slave” 字段下的 “ip” 填写从机的 IP 地址,“port” 填写从机 redis 服务的端口号(默认为 6379),“station” 填写检测站的名称。
- 注意事项:在修改 Station.json 文件时,要注意语法格式的正确性,避免因格式错误导致配置文件无法正常读取。修改完成后,保存文件并重启相关服务,使配置生效。
八、配置从机信息
- machine.json 文件作用:从机的 machine.json 文件用于存储从机自身的一些配置信息,添加 “slave” 字段并设置为 “true”,表示该设备作为从机运行,告知系统按照从机的模式进行工作。
- 示例配置
{"Language" : "CN","slave": true,"array" : []
}
- 配置后操作:修改完成后,同样要保存 machine.json 文件,并根据实际情况,重启从机上的相关服务或应用,确保新的配置生效。
通过以上步骤,能够完成一台设备中多台电脑主从机的设置,确保麦芯(MachCore)应用在多机环境下稳定运行。在实际操作过程中,若遇到任何问题,可根据具体错误提示进行排查和解决。同时,要注意备份重要数据,避免因操作失误导致数据丢失。如果对某些步骤不确定或遇到复杂问题,建议查阅麦芯官方文档或咨询专业技术人员。
相关文章:

麦芯 (MachCore) 应用开发教程 6:一台设备中多台电脑主从机的设置
麦芯是构建在windows系统上的设备应用操作系统,利用该系统可以快速高效的开发一款设备专用软件。希望进一步了解请email: acloud163.com 黄国强 2025/02/03 在麦芯(MachCore)应用开发过程中,多机协同工作的场景十分常见…...

RAG 与历史信息相结合
初始化模型 # Step 4. 初始化模型, 该行初始化与 智谱 的 GLM - 4 模型进行连接,将其设置为处理和生成响应。 chat ChatZhipuAI(model"glm-4",temperature0.8, ) 此提示告诉模型接收聊天历史记录和用户的最新问题,然后重新表述问题&#x…...

99,[7] buuctf web [羊城杯2020]easyphp
进入靶场 <?php// 使用 scandir 函数扫描当前目录(即脚本所在目录)下的所有文件和文件夹// 该函数会返回一个包含目录下所有文件和文件夹名称的数组$files scandir(./); // 遍历扫描得到的文件和文件夹名称数组foreach($files as $file) {// 使用 …...

BUUCTF_[安洵杯 2019]easy_web(preg_match绕过/MD5强碰撞绕过/代码审计)
打开靶场,出现下面的静态html页面,也没有找到什么有价值的信息。 查看页面源代码 在url里发现了img传参还有cmd 求img参数 这里先从img传参入手,这里我发现img传参好像是base64的样子 进行解码,解码之后还像是base64的样子再次进…...

Vue05
目录 一、学习目标 1.自定义指令 2.插槽 3.综合案例:商品列表 4.路由入门 二、自定义指令 1.指令介绍 2.自定义指令 3.自定义指令的语法 三、自定义指令-指令的值 1.需求 2.语法 3.代码示例 五、插槽-默认插槽 1.作用 2.需求 4.使用插槽的基本语法…...
ubuntu18.04环境下,Zotero 中pdf translate划线后不翻译问题解决
问题: 如果使用fastgithub,在/etc/profile中设置全局代理,系统重启后会产生划线后不翻译的问题,包括所有翻译代理均不行。终端中取消fastgithub代理,也不行。 解决: 1)不在/etc/profile中设置…...

基于Python的简单企业维修管理系统的设计与实现
以下是一个基于Python的简单企业维修管理系统的设计与实现,这里我们会使用Flask作为Web框架,SQLite作为数据库来存储相关信息。 1. 需求分析 企业维修管理系统主要功能包括: 维修工单的创建、查询、更新和删除。设备信息的管理。维修人员…...

【C++】B2120 单词的长度
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯题目描述💯我的做法代码实现:思路解析: 💯老师的第一种做法代码实现:思路解析: 💯老师的…...
2501,编写dll
DLL的优点 简单的说,dll有以下几个优点: 1)节省内存.同一个软件模块,若是源码重用,则会在不同可执行程序中编译,同时运行这些exe时,会在内存中重复加载这些模块的二进制码. 如果使用dll,则只在内存中加载一次,所有使用该dll的进程会共享此块内存(当然,每个进程会复制一份的d…...
【router路由的配置】
router路由的配置 App.vuerouter在main.ts引入插件 App.vue <template><RouterView /> </template><script setup lang"ts"></script><style scoped lang"scss"></style>router import { createRouter, creat…...
算法基础——一致性
引入 最早研究一致性的场景既不是大数据领域,也不是分布式系统,而是多路处理器。 可以将多路处理器理解为单机计算机系统内部的分布式场景,它有多个执行单元,每一个执行单元都有自己的存储(缓存),一个执行单元修改了…...

刷题记录 动态规划-6: 62. 不同路径
题目:62. 不同路径 难度:中等 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” &#x…...
docker直接运行arm下的docker
运行环境是树莓派A 处理器是 arm32v6 安装了docker,运行lamp 编译安装php的时候发现要按天来算,于是用电脑vm下的Ubuntu系统运行arm的docker 然后打包到a直接导入运行就可以了 第一种方法 sudo apt install qemu-user-static 导入直接运行就可以了…...

014-STM32单片机实现矩阵薄膜键盘设计
1.功能说明 本设计主要是利用STM32驱动矩阵薄膜键盘,当按下按键后OLED显示屏上会对应显示当前的按键键值,可以将此设计扩展做成电子秤、超市收银机、计算器等需要多个按键操作的单片机应用。 2.硬件接线 模块管脚STM32单片机管脚矩阵键盘行1PA0矩阵键盘…...

Sentinel 断路器在Spring Cloud使用
文章目录 Sentinel 介绍同类对比微服务雪崩问题问题原因问题解决方案请求限流线程隔离失败处理服务熔断解决雪崩问题的常见方案有哪些? Sentineldocker 安装账号/ 密码项目导入簇点链路请求限流线程隔离Fallback服务掉线时的处理流程 服务熔断 Sentinel 介绍 随着微…...
[内网安全] 内网渗透 - 学习手册
这是一篇专栏的目录文档,方便读者系统性的学习,笔者后续会持续更新文档内容。 如果没有特殊情况的话,大概是一天两篇的速度。(实验多或者节假日,可能会放缓) 笔者也是一边学习一边记录笔记,如果…...
算法总结-二分查找
文章目录 1.搜索插入位置1.答案2.思路 2.搜索二维矩阵1.答案2.思路 3.寻找峰值1.答案2.思路 4.搜索旋转排序数组1.答案2.思路 5.在排序数组中查找元素的第一个和最后一个位置1.答案2.思路 6.寻找旋转排序数组中的最小值1.答案2.思路 1.搜索插入位置 1.答案 package com.sunxi…...

基于python的Kimi AI 聊天应用
因为这几天deepseek有点状况,导致apikey一直生成不了,用kimi练练手。这是一个基于 Moonshot AI 的 Kimi 接口开发的聊天应用程序,使用 Python Tkinter 构建图形界面。 项目结构 项目由三个主要Python文件组成: 1. main_kimi.py…...
动手学深度学习-3.2 线性回归的从0开始
以下是代码的逐段解析及其实际作用: 1. 环境设置与库导入 %matplotlib inline import random import torch from d2l import torch as d2l作用: %matplotlib inline:在 Jupyter Notebook 中内嵌显示 matplotlib 图形。random:生成…...
Spring 面试题【每日20道】【其二】
1、Spring MVC 具体的工作原理? 中等 Spring MVC 是 Spring 框架的一部分,专门用于构建基于Java的Web应用程序。它采用模型-视图-控制器(MVC)架构模式,有助于分离应用程序的不同方面,如输入逻辑、业务逻辑…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...

全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
日常一水C
多态 言简意赅:就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过,当子类和父类的函数名相同时,会隐藏父类的同名函数转而调用子类的同名函数,如果要调用父类的同名函数,那么就需要对父类进行引用&#…...

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...
32位寻址与64位寻址
32位寻址与64位寻址 32位寻址是什么? 32位寻址是指计算机的CPU、内存或总线系统使用32位二进制数来标识和访问内存中的存储单元(地址),其核心含义与能力如下: 1. 核心定义 地址位宽:CPU或内存控制器用32位…...