枚举,工序,工位

news/2025/3/4 11:11:03/文章来源:https://www.cnblogs.com/-Timosthetic/p/18750094

为工序添加工位的一种方式,

优点;

1.当一个工序添加完所需要的工位,他是自动排序的。

2.当产品执行流转逻辑时,对工位的状态更新更加方便

 

[Flags]
public enum Workstation
{None = 0,      // 无工位OP01 = 1,      // 工位 1 (二进制: 0000000000000001)OP02 = 2,      // 工位 2 (二进制: 0000000000000010)OP03 = 4,      // 工位 3 (二进制: 0000000000000100)OP04 = 8,      // 工位 4 (二进制: 0000000000001000)OP05 = 16,     // 工位 5 (二进制: 0000000000010000)OP06 = 32,     // 工位 6 (二进制: 0000000000100000)OP07 = 64,     // 工位 7 (二进制: 0000000001000000)OP08 = 128,    // 工位 8 (二进制: 0000000010000000)OP09 = 256,    // 工位 9 (二进制: 0000000100000000)OP10 = 512,    // 工位 10 (二进制: 0000001000000000)OP11 = 1024,   // 工位 11 (二进制: 0000010000000000)OP12 = 2048,   // 工位 12 (二进制: 0000100000000000)OP13 = 4096,   // 工位 13 (二进制: 0001000000000000)OP14 = 8192,   // 工位 14 (二进制: 0010000000000000)OP15 = 16384,  // 工位 15 (二进制: 0100000000000000)OP16 = 32768   // 工位 16 (二进制: 1000000000000000)
}
using System;public class Process
{public Workstation Stations { get; private set; } // 工位组合public Process(){Stations = Workstation.None; // 初始化工位组合
    }// 添加工位public void AddWorkstation(Workstation workstation){Stations |= workstation; // 使用按位或操作符添加工位
    }// 移除工位public void RemoveWorkstation(Workstation workstation){Stations &= ~workstation; // 使用按位与和取反操作符移除工位
    }// 检查是否包含某个工位public bool ContainsWorkstation(Workstation workstation){return Stations.HasFlag(workstation);}// 获取 16 位二进制表示public string GetBinaryString(){return Convert.ToString((int)Stations, 2).PadLeft(16, '0');}// 从二进制字符串解析工位组合public static Workstation FromBinaryString(string binaryString){int value = Convert.ToInt32(binaryString, 2); // 将二进制字符串转换为整数return (Workstation)value; // 将整数转换为枚举值
    }// 输出工序信息public void PrintProcessInfo(){Console.WriteLine("Stations: " + Stations);Console.WriteLine("Binary (16-bit): " + GetBinaryString());}
}

class Program
{static void Main(){// 创建一个工序Process process = new Process();// 添加工位
        process.AddWorkstation(Workstation.OP01);process.AddWorkstation(Workstation.OP03);process.AddWorkstation(Workstation.OP05);process.AddWorkstation(Workstation.OP16);// 输出工序信息
        process.PrintProcessInfo();// 检查是否包含某个工位if (process.ContainsWorkstation(Workstation.OP03)){Console.WriteLine("Process contains OP03.");}// 移除工位
        process.RemoveWorkstation(Workstation.OP01);Console.WriteLine("After removing OP01:");process.PrintProcessInfo();// 从二进制字符串解析工位组合string binaryString = "1000000000010101"; // 二进制表示的工位组合Workstation parsedStations = Process.FromBinaryString(binaryString);Console.WriteLine($"Parsed Stations from binary '{binaryString}': " + parsedStations);}
}

输出结果:

Stations: OP01, OP03, OP05, OP16
Binary (16-bit): 1000000000010101
Process contains OP03.
After removing OP01:
Stations: OP03, OP05, OP16
Binary (16-bit): 1000000000010100
Parsed Stations from binary '1000000000010101': OP01, OP03, OP05, OP16

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/893327.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一招学会Prometheus对接三方监控平台

文章来源:乐维社区 通过将Prometheus与不同的监控工具和服务集成,企业可以实现对更广泛资源和服务的监控,包括那些不由Prometheus原生支持的系统。这种集成不仅有助于获取更全面、深入的监控数据,还能提升故障排查和性能优化的效率,从而确保系统的稳定性和可靠性。 环境说…

Motoman机器人XRC控制柜维修

在现代工业生产中,YASKAWA机器人扮演着至关重要的角色。然而,如同所有的机械设备一样,YASKAWA机器人也会出现故障,尤其是其控制柜部分。因此,安川机器人维修工作对于保障机器人的正常运行意义非凡,这其中安川机器人控制柜维修更是关键环节。一、常见故障及解决方法1. 电源…

【域攻击】无文件落地攻击:msiexec

msiexec.exe属于系统进程,是Windows Installer的一部分,用于安装Windows Installer安装包(MSI),对系统的正常运行非常重要,一般在运行Microsoft Update安装更新或安装部分软件的时候出现,占用内存比较大,我们亦可以使用其作为无文件落地的媒介,下面举例说明: Step 1:使…

c# hosting 和 AppDomain

前言 简单介绍一下hosting 和 appdomain。 这两个东西。 正文 我们经常听说寄宿,这个寄宿是什么东西呢? 也就是我们这里要介绍的hosting。 什么是寄宿呢? 想一个问题,一个c# 的exe 程序,为啥能够启动呢?我们记得dll中是il代码。 那么肯定要加载运行时对吧。 那么为什么叫…

Dapr 简介 - 分布式应用运行时

Dapr 简介-分布式应用运行时 简介 Whats Dapr? Dapr = Distributed Application Runtime (分布式应用运行时)看到这个词,不知道大家想到了什么?是不是类似于 java runtime,c runtime 这类词汇。网上找到了一个 应用程序、运行时库和 OS 之间的关系图,其中 Runtime 库处于…

Mac脚本发布PHP开发项目到线上

环境 服务器: CentOS Linux release 7.6.1810 (Core) 客户端: macOS Sonoma 14.1.2 (23B92) 测试环境:开发使用ftp自动上传到/www/wwwroot/dirDev文件夹自动备份并发布程序 备份/www/wwwroot/dirOnline文件夹,并将开发项目/www/wwwroot/dirDev自动同步到线上环境/www/wwwro…

Mac发布PHP开发项目到线上项目

环境 服务器: CentOS Linux release 7.6.1810 (Core) 客户端: macOS Sonoma 14.1.2 (23B92) 开发使用ftp自动上传到/www/wwwroot/dirDev文件夹自动备份并发布程序 备份/www/wwwroot/dirOnline文件夹,并将开发项目/www/wwwroot/dirDev自动同步到线上环境/www/wwwroot/dirOnli…

Windows使用技巧——查看本地ip地址

我在windows上双击一个文件,就可以直接查看我的ip地址,这是怎么做到的?步骤一:在文件夹右击,新建一个文本文档; 步骤二:双击此文档,输入以下字符:“ipconfigpause”,然后保存;步骤三:把文件重命名,把后缀更改为“bat”如下,再点“是”; 之后双击该文档,就可以…

触想对话2025智能控制与驱动发展论坛,共探中国智造新未来!

近日,由中国工控网联合SPS广州展共同举办的“2025智能控制与驱动发展论坛”在广州珠海顺利召开,触想受邀出席并发表专题演讲,围绕公司在工业物联网(IIoT)技术应用与电子制造数字化转型中的创新实践展开分享,与国内外技术专家、行业领袖及产业链代表,共同探讨中国制造的未来…

B150平台的最后一舞 CC150上机作业

简单介绍一下CC150 大船靠岸,CC150也从24年4月的五百多元逐步降价到8月的310元(个别有299),价格基本稳定了下来,性价比日益凸显。 网传这颗CC150是NVIDIA用在GeForceNow云游戏平台上的专门向Intel定制的处理器,猜测是用在虚拟化场景。这颗处理器优劣很鲜明:优点是核心数…

Qt/C++地图组件在视频监控系统中的应用/显示设备点/弹出视频画面/调整设备位置

一、前言说明 监控系统中一般有很多的摄像头点位,除了在平面图中展示位置以外,有些工地和集团,在集中管理的地方,还希望在电子地图中展示,电子地图可以缩放和拖动,切换设备点自动放大高亮,地图自动移动到设备居中的位置,双击设备可以预览实时画面。设备的经纬度信息,在…