public override byte[] toRaw() { if (this.Cmd == WRITE_CMD) { packet = new byte[SRC_ADD_COUNTER + DEST_ADD_COUNTER + CMD_COUNTER + ADD_VAR_COUNTER + NUMBER_COUNTER + ID_COUNTER + STATUS_COUNTER]; } else { packet = new byte[SRC_ADD_COUNTER + DEST_ADD_COUNTER + CMD_COUNTER + ADD_VAR_COUNTER]; } cIndex = SRC_ADD_COUNTER + DEST_ADD_COUNTER; packet[cIndex] = this.Cmd; cIndex += CMD_COUNTER; add_var = PacketUtility.IntToTwoBytes(getRegistrationAVBound(this.SimNumber)[0] + Index); Array.Copy(add_var, 0, packet, cIndex, ADD_VAR_COUNTER); cIndex += ADD_VAR_COUNTER; if (this.Cmd == WRITE_CMD) { number = number.Substring(2); int num = Convert.ToInt32(number); byte[] arr_number = PacketUtility.IntToByteArray(num); Array.Copy(arr_number, 0, packet, cIndex, NUMBER_COUNTER); cIndex += NUMBER_COUNTER; byte[] arr_id = { 0x00 }; Array.Copy(arr_id, 0, packet, cIndex, ID_COUNTER); cIndex += ID_COUNTER; byte[] arr_status = { 0x00 }; Array.Copy(arr_status, 0, packet, cIndex, STATUS_COUNTER); cIndex += STATUS_COUNTER; } return(base.toRaw()); }