// 称重系统 IDL 定义文件 // 用于 DDS 数据分发服务 module WeighingSystem { // ============================================ // Topic: onScaleInfoUpdate // 称重设备信息更新主题 // ============================================ struct ScaleInfo { boolean HasVehicle; // 有车 0:无车 1:有车 boolean WeightOK; // 重量稳定信号 0: 不稳定 1:稳定 boolean State; // 设备状态 0:异常仪表 1:正常接收仪表 float Value; // 实时重量 float StableValue; // 稳定重量 }; // ============================================ // Topic: onScaleCommandUpdate // 称重设备命令更新主题 // ============================================ struct ScaleCommand { boolean Enable; // 是否启用 启动参数 long ResetZero; // 仪表重置0 脉冲信号 1:清零 自动变0 }; // ============================================ // Topic: onWeightInfoOKUpdate // 称重业务成功信息更新主题 // ============================================ struct WeightInfoOk { // 基础信息属性 long GrossDeviceID; // 毛重磅称编号 string GrossDeviceName; // 毛重磅称名称 string GrossDeviceType; // 毛重磅称类型 1:重磅 2:轻磅 3:通用称重 4:转煤 long TareDeviceID; // 皮重磅称编号 string TareDeviceName; // 皮重磅称名称 string TareDeviceType; // 皮重磅称类型 1:重磅 2:轻磅 3:通用称重 4:转煤 string EnterpriseName; // 本系统企业名称 // 业务单据属性 string BillNumber; // 票据号 string CarNumber; // 车牌号 string Supplier; // 往来单位 string GoodsType; // 品种 // 重量数据属性 float GrossWeight; // 毛重 string GrossTime; // 毛重时间 string GrossOperater; // 毛重操作员 float Tare; // 皮重 string TareTime; // 皮重时间 string TareOperater; // 皮重操作员 float Suttle; // 净重 // 扣重属性 float duduction1; // 扣矸 大宗物资扣吨打印 float duduction2; // 扣水 大宗物资扣钱打印 float duduction3; // 扣杂 // 物流信息属性 string INCoalYard; // 卸货点 string OutCoalYard; // 装货点 string BatchNumber; // 批次号 // 操作结果提示属性 string Warning; // 提示 LED显示 string Tips; // 提示 小票打印 // 打印磅单相关 string TicketType; // 磅单类型 1:一次称重 2:二次称重 boolean IsPrintTicker; // 是否打印磅单 // 绥阳铁合金称重成功扩展属性 string OrderNumber; // 订单号 string VehicleAndVesselNumber; // 车船号 string ReceiveCompany; // 收货单位 string TransportCompany; // 运输单位 }; // ============================================ // Topic: onWeightInfoErrorUpdate // 称重业务成功信息更新主题 // ============================================ struct WeightInfoError { //车牌 string CarNumber; // 车牌号 // 操作结果提示属性 string Warning; // 提示 字符串 }; // ============================================ // Topic: onBarCommandUpdate // 拦车器命令更新主题 // ============================================ struct BarCommandUpdate { // 前拦车器控制 long FrontBarSignalUp; // 前拦车器抬起信号 脉冲信号 1-》0 发1 自动置为0 long FrontBarSignalDown; // 前拦车器放下信号 脉冲信号 1-》0 发1 自动置为0 boolean FrontBarEnable; // 前拦车器是否启用 1: 启用 0: 不启用 // 后拦车器控制 long BackBarSignalUp; // 后拦车器抬起信号 脉冲信号 1-》0 发1 自动置为0 (属性ID: 7) long BackBarSignalDown; // 后拦车器放下信号 脉冲信号 1-》0 发1 自动置为0 boolean BackBarEnable; // 后拦车器是否启用 1: 启用 0: 不启用 }; // ============================================ // Topic: onLightsCommandUpdate // 红绿灯命令更新主题 // ============================================ struct LightsCommandUpdate { // 前红绿灯控制 long FrontLEDSignal; // 前红绿灯信号 1.红 2.绿 boolean FrontLEDEnable; // 前红绿灯是否启用 1: 启用 0: 不启用 // 后红绿灯控制 long BackLEDSignal; // 后红绿灯信号 1.红 2.绿 long BackLEDEnable; // 后红绿灯是否启用 1: 启用 0: 不启用 }; // ============================================ // Topic: InfraredCommandUpdate // 拦车器与红绿灯命令更新主题 // ============================================ struct InfraredCommandUpdate { // 前红外对射控制 long FrontResistanceUnLock; // 前红外对射临时解除 1.解除 0.不解除 boolean FrontResistanceEnable; // 前红外对射启用 1: 启用 0: 不启用 // 后红外对射控制 long BackResistanceUnLock; // 后红外对射临时解除 1.解除 0.不解除 boolean BackResistanceEnable; // 后红外对射启用 1: 启用 0: 不启用 }; // ============================================ // Topic: onBarUpdate // 拦车器更新主题 // ============================================ struct BarUpdate { // 前拦车器状态 long FrontBarState; // 1 抬起状态 2 放下状态 // 后拦车器状态 long BackBarState; // 1 抬起状态 2 放下状态 }; // ============================================ // Topic: onLightsUpdate // 红绿灯状态更新主题 // ============================================ struct LightsUpdate { // 前红绿灯状态 long FrontLEDState; // 1.红 2.绿 // 后红绿灯状态 long BackLEDState; // 1.红 2.绿 }; // ============================================ // Topic: onInfraredUpdate // 拦车器与红绿灯状态更新主题 // ============================================ struct InfraredUpdate { // 前红外对射状态 long FrontResistanceSignal; // 1 有阻挡 0 无阻挡 // 后红外对射状态 long BackResistanceSignal; // 1 有阻挡 0 无阻挡 }; // ============================================ // Topic: LicenseSnap // 车牌识别类 // ============================================ struct LicenseSnapUpdate { long NewTag; // 车牌更新 1 新的 2 旧的不变 string License; // 车牌号 }; // ============================================ // Topic: LicenseSnap // 语音播放ID // ============================================ struct Voice { long VoiceID; //语音ID string VoiceContent; //语音string,后续如果可以程序用tts直接播放语音内容 }; // ============================================ // Topic: SummaryUpdate // 称重类 // ============================================ struct SummaryUpdate { string License; // 五彩湾为车牌号;绥阳铁合金为刷卡卡号 float StableValue; // 稳定重量;绥阳铁合金按吨传输 }; // ============================================ // Topic: ReadCardReq <-- 订阅 Topic (设备驱动侧) // 类型: ReadCardReq // 发布者: Core // 订阅者: ReadCard // 载荷: map> // 协议键: "find" / "stop" / "read" / "write" / "beep" / "reset" // ============================================ struct ReadCardReq { unsigned long index; map > msg; }; // ============================================ // Topic: ReadCardRsp <-- 发布 Topic (设备驱动侧) // 类型: ReadCardRsp // 发布者: ReadCard // 订阅者: Core / MqttDds // 载荷: map> // 协议键: "find" / "read" / "write" / "stop" / "beep" // ============================================ struct ReadCardRsp { unsigned long index; map > msg; }; // ============================================ // Topic: PrintReq <-- 发布 Topic (Core → Print) // 类型: PrintReq // 发布者: Core // 订阅者: Print // 载荷: map // ============================================ struct PrintReq { unsigned long index; map msg; }; // ============================================ // Topic: PrintRsp <-- 发布 Topic (Print → Core) // 类型: PrintRsp // 发布者: Print // 订阅者: Core // 载荷: string // ============================================ struct PrintRsp { unsigned long index; string msg; }; }; // ============================================ // 通用排队服务消息 // 排队设备通过 QueueTrigger 触发服务,服务发布 Success/Failure 结果。 // ============================================ module Queue { // 排队机刷卡触发。只表达设备刷到的卡,不携带服务内部缓存定位字段。 struct QueueTrigger { string message_id; // 可选技术消息号;重发时保持不变 string card_number; // 必填;刷卡得到的卡号 string device_id; // 必填;排队机/读卡器统一设备编号 string trigger_time; // 可选;ISO-8601时间,仅用于审计和去重 string vehicle_number_snapshot; // 可选;控件车牌快照,仅用于一致性校验 long supplier_identity_id_snapshot;// 可选;0表示未提供 long goods_id_snapshot; // 可选;0表示未提供 float ship_net_weight_snapshot; // 可选;0表示未提供 long card_flow_no_snapshot; // 可选;0表示未提供 string card_type_snapshot; // 可选;卡类型快照 string electronic_tag_snapshot; // 可选;电子标签由排队设备读取后传递 }; // 排队成功或活动记录补打成功结果。 struct QueueSuccess { string message_id; // 可选;技术消息号 string card_number; // 必填;触发卡号 string device_id; // 必填;结果目标设备 long result_code; // 必填:0新排队,1补打 long queue_record_id; // 排队_列表主键 long queue_number; // 排队序号 string sample_machine; // 采样机名称 string queue_time; // 排入时间 string ticket_number; // 进煤表票据号 long sample_code; // 采样编码 string vehicle_number; // 正式车牌 long vehicle_self_no; // 车辆自编号 long vehicle_type_id; // 车型编号 long supplier_identity_id; // 供应识别号 string supplier_identity_name; // 供应识别名称 long supplier_id; // 供应商主键 string supplier_name; // 供应商名称 long goods_id; // 品种编号 string goods_name; // 品种名称 long unit_id; // 单位编号 long transport_company_id; // 运输公司编号 long sample_type; // 采样类型 string unloading_point_name; // 卸煤点名称 float ship_gross_weight; // 矿发毛重 float ship_tare_weight; // 矿发皮重 float ship_net_weight; // 矿发净重 long sample_machine_id; // 采样机编号,无值为0 string vehicle_lane; // 车道名称 long vehicle_lane_id; // 车道编号,无值为0 string strategy_desc; // 排队策略说明 string committed_at; // 数据库提交时间 string display_text; // 显示文本 string print_content; // 打印内容 boolean print_required; // 是否打印 long print_count; // 打印份数 long voice_id; // 语音资源编号 string voice_text; // 语音播报文本 boolean is_reprint; // 是否补打 string physical_card_state; // NOT_ATTEMPTED/CHANGED/PARTIAL string card_write_status; // DISABLED/SUCCEEDED/FAILED/PARTIAL }; // 排队失败结果。数据库已提交但事务外动作失败时仍携带已生成的业务编号。 struct QueueFailure { string message_id; // 可选;技术消息号 string card_number; // 可解析时的卡号 string device_id; // 可识别时的设备编号 string error_code; // 必填;机器可判定错误码 string failed_step; // 必填;失败步骤 string message; // 必填;显示/告警文本 string vehicle_number; // 缓存车牌(可选) long queue_record_id; // 已提交排队记录主键,无记录为0 long queue_number; // 已生成排队号,无记录为0 string sample_machine; // 已分配采样机 string ticket_number; // 已生成票据号 long existing_queue_record_id; // 活动排队记录主键 long existing_queue_number; // 活动排队号 string existing_sample_machine; // 活动采样机 string cache_state; // 缓存状态 string database_state; // NOT_ATTEMPTED/COMMITTED/ROLLED_BACK/UNKNOWN string physical_card_state; // NOT_ATTEMPTED/CHANGED/UNCHANGED/PARTIAL/UNKNOWN boolean retryable; // 是否允许同一触发重试 long retry_after_ms; // 建议重试等待时间 long voice_id; // 语音资源编号 string voice_text; // 语音播报文本 string card_write_status; // DISABLED/SUCCEEDED/FAILED/PARTIAL }; };