Example #1
0
	public final byte[] WriteToBytes() {

		MyBuffer buff = new MyBuffer();

		buff.put(getParametersCount());
		for (ParameterItem item : getParameters()) {
			buff.put(item.getParameterId());
			// buff.put(item.ParameterLength);

			String fieldType = GetFieldType((int) item.getParameterId());
			String strParamValue = ""+item.getParameterValue();
			if (fieldType.equals("BYTE") && StringUtil.isNullOrEmpty(strParamValue) == false) // 参数值类型为byte
			{
				item.setParameterLength((byte)1);
				buff.put(item.getParameterLength());
				buff.put(Byte.parseByte(strParamValue));
			}
			// ORIGINAL LINE: case "WORD":
			else if (fieldType.equals("WORD") && StringUtil.isNullOrEmpty(strParamValue) == false) // 参数值类型为16位无符号整形数值
			{
				item.setParameterLength((byte)2);
				buff.put(item.getParameterLength());
				buff.put(Short.parseShort(strParamValue));
			}
			// ORIGINAL LINE: case "DWORD":
			else if (fieldType.equals("DWORD") && StringUtil.isNullOrEmpty(strParamValue) == false) // 参数值类型为32位无符号整形数值
			{
				item.setParameterLength((byte)4);
				buff.put(item.getParameterLength());
				int paramValue1 = Integer.parseInt(strParamValue);
				buff.put(paramValue1);
				//buff.put(((Integer) item.getParameterValue()).intValue());
			} else // 参数值类型为字符串
			{
				byte[] strBytes =BitConverter.getBytes(item
						.getParameterValue().toString());
				item.setParameterLength((byte) (strBytes.length));
				buff.put(item.getParameterLength());
				buff.put(strBytes);
				//buff.put((byte) 0x00);
			}
		}
		return buff.array();
	}