package com.szpg.plc.message;

import org.apache.log4j.Logger;

import com.szpg.plc.util.ByteUtil;
import com.szpg.util.TimeFormat;

public class UnKnownMessage extends AppMessage {

	/**
	 * 
	 */
	private static final long serialVersionUID = 2630503903072334174L;
	
	private final Logger logger = Logger.getLogger(this.getClass().getName());
	
	private byte[] content;

	public UnKnownMessage(byte[] content) {
		this.content = content;
	}

	public String getHexContent() {
		StringBuilder sb = new StringBuilder();

		for (int i = 0; i < content.length; i++) {
			sb.append(ByteUtil.binToHexString(new byte[] { content[i] }) + " ");
		}

		return sb.toString().trim();
	}
	
	public String getHexContentShort() {
		StringBuilder sb = new StringBuilder();
		int len = 30;
		if (content.length < 30) {
			for (int i = 0; i < content.length; i++) {
				sb.append(ByteUtil.binToHexString(new byte[] { content[i] }) + " ");
			}
			return sb.toString().trim();
		} else {
			for (int i = 0; i < len; i++) {
				sb.append(ByteUtil.binToHexString(new byte[] { content[i] }) + " ");
			}
			return sb.toString().trim() + "...";
		}
	}

	
	public void afterAction() {
		// 记录日志
		logger.info("未知消息：" + getHexContentShort());
	}

	public String toString() {
		String _time = TimeFormat.format(getTime().getTime());
		String from = getMessageProducerId();
		String str = _time + " 收到 " + from + " 发送未知消息： ";
		for (int i = 0; i < content.length; i++) {
			str = str + ByteUtil.binToHexString(new byte[] { content[i] }) + " ";
		}
		return str;
	}

}
