public void run() {
			byte[] receiveBuffer = new byte[4];
			try {

				while (!Thread.interrupted()) {
					count = (count + 1) % 3;
					switch (count) {
					case (0):
						sendBuffer.put(IDENTIFIER, READ_REQUEST);
						sendBuffer.put(CHANNEL, CHANEL_0);
						sendBuffer.put(PADDING, PADDING_DATA);
						break;
					case (1):
						sendBuffer.put(IDENTIFIER, READ_REQUEST);
						sendBuffer.put(CHANNEL, CHANEL_1);
						sendBuffer.put(PADDING, PADDING_DATA);
						break;
					case (2):
						sendBuffer.put(IDENTIFIER, WRITE_DATA);
						sendBuffer.put(LOW, IOMonitor.getIO(2).getByteLow());
						sendBuffer.put(HIGH, IOMonitor.getIO(2).getByteHigh());
						
						break;
					}
					out.write(sendBuffer.array());
					Thread.sleep(5);
					in.read(receiveBuffer);
					

					ByteBuffer bb = ByteBuffer.wrap(receiveBuffer);

					
					if (bb.get(IDENTIFIER) == SEND_DATA) {
						channel = bb.get(CHANNEL);
						data = bb.getShort(DATA);
						
						if(channel == 0){
//							System.out.println("[ANG]: " + data );
						}else if(channel == 1){
//							System.out.println("[POS]: " + data );
						}
						
//						System.out.println("[RECEIVE][" + channel + "]: "
//								+ data);
						IOMonitor.getIO(channel).setValue(data);
					}else{
					//	System.out.println("HIGH:   " + IOMonitor.getIO(2).getByteHigh());
						//System.out.println("LOW:    " + IOMonitor.getIO(2).getByteLow());
					//	System.out.println("Double: " + IOMonitor.getIO(2).getValue());
					}

					/*
					if (count == 1) {
						WebMonitor wm = new WebMonitor(Main.WEBMONITOR_HOST);
						wm.send(tmp, bb.getShort(DATA), 0);

					} else if (count == 0) {
						tmp = bb.getShort(DATA);
					}
					*/
				//	Thread.sleep(500);
				}
			} catch (IOException e) {
				e.printStackTrace();
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}