package cn.net.cpzslibs.prot.handset;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.SocketTimeoutException;

import cn.net.cpzslibs.prot.ProtBase;
import cn.net.cpzslibs.prot.SocketCreate;

public class Prot32CarFanku extends ProtBase {
	private final short iTaskCode32 = 32;

	/**
	 * 任务号32： 汽配模式生产返库时，标还未入库，iErrCode=0xFFCC
	 */
	public final int errNotRuku = 0xFFCC;
	/**
	 * 任务号32： 汽配模式生产返库时，标已经返库，iErrCode=0xFFCB
	 */
	public final int errAlreadyFanku = 0xFFCB;
	/**
	 * 任务号32： 汽配模式生产返库时，标入库但未出库，iErrCode=0xFFCA
	 */
	public final int errNotChuku = 0xFFCA;
	/**
	 * 任务号32： 汽配模式生产返库时，标已经销售，无法返库，iErrCode=0xFFBA
	 */
	public final int errAlreadySale = 0xFFBA;

	public void dealProt(SocketCreate create, String label) throws SocketTimeoutException, IOException {
		dealProt(create, Long.valueOf(label));
	}
	public void dealProt(SocketCreate create, long iLabel) throws SocketTimeoutException, IOException {
		sendProt(create.getDos(), iTaskCode32, iLabel);
		recProt(create.getDis(), iTaskCode32);
	}

	/**
	 * 任务号32： 汽配模式生产返库时，标还未入库，iErrCode=0xFFCC
	 */
	public boolean isNotRuku(){
		return errNotRuku == getiRecErrcode();
	}
	/**
	 * 任务号32： 汽配模式生产返库时，标已经返库，iErrCode=0xFFCB
	 */
	public boolean isAlreadyFanku(){
		return errAlreadyFanku == getiRecErrcode();
	}
	/**
	 * 任务号32： 汽配模式生产返库时，标入库但未出库，iErrCode=0xFFCA
	 */
	public boolean isNotChuku(){
		return errNotChuku == getiRecErrcode();
	}
	/**
	 * 任务号32： 汽配模式生产返库时，标已经销售，无法返库，iErrCode=0xFFBA
	 * @date 2015-10-27上午10:00:47
	 * @return
	 */
	public boolean isAlreadySale(){
		return errAlreadySale == getiRecErrcode();
	}
	
	private void recProt(DataInputStream dis, short iTaskCode) throws IOException {
		System.out.println(dis.available());
		recHeader(dis);
		recFFFF(dis, iTaskCode);
	}

	private void sendProt(DataOutputStream dos, short iTaskCode, long iLabel) throws SocketTimeoutException,
			IOException {
		short iBodySize = countBodySize(iLabel);
		sendHeader(dos, iTaskCode, iBodySize);
		sendiLabel(dos, iLabel);
		sendCheckCode(dos);
	}
}
