/* * decodeResponseMessage函数,处理Response命令的函数 * 虚函数,方法已实现,会自动给出消息的Response答复 * 如有需要,可在仪器类中重写该函数 */ public virtual void decodeResponseMessage(ModbusMessage s) { ModbusMessageDataCreator creator = new ModbusMessageDataCreator(); creator.addKeyPair("Result", "OK"); string msg = ModbusMessageHelper.createModbusMessage(ModbusMessage.messageTypeToByte(ModbusMessage.MessageType.RESPONSE), creator.getDataBytes()); this.SendMsg(msg); }
/* * SendModBusMsg函数,以ModBus协议的方式发送数据 * ModbusMessage.MessageType 有{ CMD, RESPONSE, GET, SET, REPORT } * Key 和 Value 分别指的是生成ModBusMessage的键和值 * 通常来说Key为变量名,Value为该变量的值,示例:SendModBusMsg(ModbusMessage.MessageType.REPORT,"MPF_PlateNum","10"); * 函数完成的就是将这组Key,Value封装成ModBusMessage然后发送出去 */ public void SendModBusMsg(ModbusMessage.MessageType type, String key, Object value) { ModbusMessageDataCreator creator = new ModbusMessageDataCreator(); creator.addKeyPair(key, (String)value); string msg = ModbusMessageHelper.createModbusMessage(ModbusMessage.messageTypeToByte(type), creator.getDataBytes()); this.SendMsg(msg); }
/* * SendModBusMsg函数,以ModBus协议的方式发送数据 * ModbusMessage.MessageType 有{ CMD, RESPONSE, GET, SET, REPORT } * htable指的是多组的Key和Value,主要用于多个键以及值的数据发送 * 函数完成的就是将这htable包含的多组Key,Value封装成ModBusMessage然后发送出去 */ public void SendModBusMsg(ModbusMessage.MessageType type, Hashtable htable) { ModbusMessageDataCreator creator = new ModbusMessageDataCreator(); foreach (DictionaryEntry de in htable) { creator.addKeyPair((string)de.Key, (string)de.Value); } string msg = ModbusMessageHelper.createModbusMessage(ModbusMessage.messageTypeToByte(type), creator.getDataBytes()); this.SendMsg(msg); }