You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

352 lines
15 KiB
Plaintext

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

// 称重系统 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<string, sequence<octet>>
// 协议键: "find" / "stop" / "read" / "write" / "beep" / "reset"
// ============================================
struct ReadCardReq
{
unsigned long index;
map<string, sequence<octet> > msg;
};
// ============================================
// Topic: ReadCardRsp <-- 发布 Topic (设备驱动侧)
// 类型: ReadCardRsp
// 发布者: ReadCard
// 订阅者: Core / MqttDds
// 载荷: map<string, sequence<octet>>
// 协议键: "find" / "read" / "write" / "stop" / "beep"
// ============================================
struct ReadCardRsp
{
unsigned long index;
map<string, sequence<octet> > msg;
};
// ============================================
// Topic: PrintReq <-- 发布 Topic (Core → Print)
// 类型: PrintReq
// 发布者: Core
// 订阅者: Print
// 载荷: map<string, string>
// ============================================
struct PrintReq
{
unsigned long index;
map<string, string> 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
};
};