public void Request(byte requestByte, ResponseCallback responseCallback, byte fan, byte speed)
        {
            Response resp = new Response();

            if (requestByte == 1)
            {
                resp.answerBytes = new byte[] { 13, 12, 11, 10, 9, 8, 7, 6, 0 };
            }
            else
            {
                resp.answerBytes = new byte[] { 1, 0 };
            }
            responseCallback(resp);
        }
        public void ListFans(Response resp)
        {
            int counter = 1;
            foreach (byte rByte in resp.answerBytes)
            {
                if (rByte == 0)
                {
                    return;
                }

                fanDataObject.setPinByte(counter, rByte);
                fanDataObject.setPinSpeed(counter, 0, false);
                counter++;
            }
        }
        private void worker_DoWork(object sender, DoWorkEventArgs e)
        {
            Job j = (Job)e.Argument;

            sPort.Open();
            sPort.Write(new byte[] { j.MessageType, j.FanPort, j.FanSpeed }, 0, 3);

            LinkedList<byte> answerBytes = new LinkedList<byte>();
            byte rByte;
            while ((rByte = (byte)sPort.ReadByte()) != 0)
            {
                answerBytes.AddLast(rByte);
            }
            sPort.Close();

            Response resp = new Response();
            resp.answerBytes = answerBytes.ToArray<byte>();

            j.response = resp;

            e.Result = j;
        }
 public void SpeedChangeCallback(Response resp)
 {
     Trace.WriteLine("Speed change send.");
 }