Exemple #1
0
        public override string ToString()
        {
            var result   = FrameNumber.ToString("000000") + ":";
            var defaults = (new FrameState()).Inputs;

            foreach (var change in Changes)
            {
                if (ValuesEqual(change.Value, defaults[change.Key]))
                {
                    result += " ~" + change.Key;
                }
                else if (change.Key == "SPEED")
                {
                    result += " SPEED:" + change.Value;
                }
                else if (change.Key == "LX" || change.Key == "LY" || change.Key == "RX" || change.Key == "RY")
                {
                    result += " " + change.Key + ":" + (int)change.Value;
                }
                else if ((int)change.Value == 1)
                {
                    result += " " + change.Key;
                }
            }
            if (!string.IsNullOrEmpty(Comment))
            {
                result += new string(' ', Math.Max(35 - result.Length, 0))
                          + " // " + Comment;
            }
            return(result);
        }
Exemple #2
0
        /// <summary>
        /// Retrieves the string representation of this object
        /// </summary>
        /// <returns></returns>

        public override string ToString()
        {
            return
                (FrameNumber.ToString(NumberFormat) + ' ' +
                 Score.ToString(ScoreFormat) + ' ' +
                 AcousticScore.ToString(ScoreFormat) + ' ' +
                 LanguageScore.ToString(ScoreFormat) + ' ' +
                 SearchState);
        }
            internal static unsafe int Invoke(FrameNumber InFrameNumber)
            {
                long *p = stackalloc long[] { 0L, 0L };
                byte *b = (byte *)p;

                *((FrameNumber *)(b + 0)) = InFrameNumber;
                Main.GetProcessEvent(TimeManagementBlueprintLibrary.DefaultObject, Conv_FrameNumberToInteger_ptr, new IntPtr(p));;
                return(*((int *)(b + 4)));
            }
        }
Exemple #4
0
        public string ToListItem(Font font, int listWidth)
        {
            var result   = FrameNumber.ToString();
            var defaults = new FrameState();

            while (TextRenderer.MeasureText(result, font).Width < listWidth - (listWidth - (listWidth / 7)))
            {
                result += ' ';
            }

            foreach (var change in Changes)
            {
                if (ValuesEqual(change.Value, defaults.Inputs[change.Key]))
                {
                    result += " ~" + change.Key;
                }
                else if (change.Key == "SPEED")
                {
                    result += " SPEED:" + change.Value;
                }
                else if (change.Key == "LX" || change.Key == "LY" || change.Key == "RX" || change.Key == "RY")
                {
                    result += " " + change.Key + ":" + (int)change.Value;
                }
                else if ((int)change.Value == 1)
                {
                    result += " " + change.Key;
                }
            }

            if (Random != string.Empty)
            {
                if (Random == defaults.Random)
                {
                    result += " ~RNG";
                }
                else
                {
                    result += " RNG:" + Random;
                }
            }

            if (!string.IsNullOrEmpty(Comment))
            {
                while (TextRenderer.MeasureText(result, font).Width < listWidth - (int)(listWidth / 2.4f))
                {
                    result += ' ';
                }

                result += ' ' + Comment;
            }

            return(result);
        }
            internal static unsafe FrameNumber Invoke(FrameNumber A, FrameNumber B)
            {
                long *p = stackalloc long[] { 0L, 0L, 0L };
                byte *b = (byte *)p;

                *((FrameNumber *)(b + 0)) = A;
                *((FrameNumber *)(b + 4)) = B;
                Main.GetProcessEvent(TimeManagementBlueprintLibrary.DefaultObject, Add_FrameNumberFrameNumber_ptr, new IntPtr(p));;
                return(*((FrameNumber *)(b + 8)));
            }
        }
Exemple #6
0
        public override int GetHashCode()
        {
            int hash = 1;

            if (FrameNumber != 0)
            {
                hash ^= FrameNumber.GetHashCode();
            }
            hash ^= msgs_.GetHashCode();
            return(hash);
        }
 public void writeXml(System.Xml.XmlWriter writer)
 {
     writer.WriteElementString("timeStamp", FrameTime.ToString());
     writer.WriteElementString("frameNumber", FrameNumber.ToString());
     writer.WriteElementString("sensor", Sensor.ToString());
     writer.WriteElementString("ground", String.Format("{0},{1},{2},{3}", GroundW, GroundX, GroundY, GroundZ));
     writer.WriteElementString("trackingID", TrackingId.ToString());
     writer.WriteStartElement("skeleton");
     if (Joints != null)
     {
         foreach (var joint in Joints)
         {
             string jointStr = string.Format("{0},{1},{2},{3},{4},{5}", joint.TrackingState.ToString(), joint.X.ToString(), joint.Y.ToString(), joint.Z.ToString(), joint.DepthX.ToString(), joint.DepthY.ToString());
             writer.WriteElementString(Enum.GetName(typeof(JointTypeGait), joint.JointType), jointStr);
         }
     }
     writer.WriteElementString("frameEdges", FrameEdges.ToString());
     writer.WriteEndElement(); // skeleton
     writer.WriteElementString("currentTime", CurrentTime.ToString());
     writer.WriteElementString("lean", String.Format("{0},{1},{2}", LeanX, LeanY, LeanTrackingState));
     writer.WriteStartElement("wii");
     writer.WriteElementString("COP", String.Format("{0},{1}", WiiBoardData.CenterOfPressureX, WiiBoardData.CenterOfPressureY));
     writer.WriteElementString("raw", String.Format("{0},{1},{2},{3}", WiiBoardData.Raw.TopLeft, WiiBoardData.Raw.TopRight, WiiBoardData.Raw.BottomLeft, WiiBoardData.Raw.BottomRight));
     writer.WriteElementString("cal0", String.Format("{0},{1},{2},{3}", WiiBoardData.Calib0kg.TopLeft, WiiBoardData.Calib0kg.TopRight, WiiBoardData.Calib0kg.BottomLeft, WiiBoardData.Calib0kg.BottomRight));
     writer.WriteElementString("cal17", String.Format("{0},{1},{2},{3}", WiiBoardData.Calib17kg.TopLeft, WiiBoardData.Calib17kg.TopRight, WiiBoardData.Calib17kg.BottomLeft, WiiBoardData.Calib17kg.BottomRight));
     writer.WriteElementString("cal34", String.Format("{0},{1},{2},{3}", WiiBoardData.Calib34kg.TopLeft, WiiBoardData.Calib34kg.TopRight, WiiBoardData.Calib34kg.BottomLeft, WiiBoardData.Calib34kg.BottomRight));
     writer.WriteEndElement();  // wii
     writer.WriteStartElement("depth");
     writer.WriteElementString("mean", String.Format("{0},{1},{2}", depthMeanX, depthMeanY, depthMeanZ));
     writer.WriteElementString("cov", String.Format("{0},{1},{2},{3},{4},{5}", depthMeanXX, depthMeanXY, depthMeanXZ, depthMeanYY, depthMeanYZ, depthMeanZZ));
     writer.WriteEndElement();  // depth
     writer.WriteStartElement("silhouette");
     writer.WriteElementString("points", silhouettePointsToString(silhouette.points));
     writer.WriteElementString("resolution", silhouette.resolution.ToString());
     writer.WriteElementString("xRange", silhouette.xRange.ToString());
     writer.WriteElementString("yRange", silhouette.yRange.ToString());
     writer.WriteElementString("zRange", silhouette.zRange.ToString());
     writer.WriteElementString("trackQuality", silhouette.trackQuality.ToString());
     writer.WriteElementString("numberOfPixelsInBody", silhouette.numberOfPixelsInBody.ToString());
     writer.WriteElementString("ground", String.Format("{0},{1},{2},{3}", silhouette.groundW, silhouette.groundX, silhouette.groundY, silhouette.groundZ));
     writer.WriteElementString("mean", String.Format("{0},{1},{2}", silhouette.depthMeanX, silhouette.depthMeanY, silhouette.depthMeanZ));
     writer.WriteElementString("Cov", String.Format("{0},{1},{2},{3},{4},{5}", silhouette.depthMeanXX, silhouette.depthMeanXY, silhouette.depthMeanXZ, silhouette.depthMeanYY, silhouette.depthMeanYZ, silhouette.depthMeanZZ));
     writer.WriteEndElement();  // silhouette
 }
Exemple #8
0
    public override int GetHashCode()
    {
        int hash = 1;

        if (Error != 0)
        {
            hash ^= Error.GetHashCode();
        }
        if (FrameNumber != 0)
        {
            hash ^= FrameNumber.GetHashCode();
        }
        hash ^= battleFrame_.GetHashCode();
        if (_unknownFields != null)
        {
            hash ^= _unknownFields.GetHashCode();
        }
        return(hash);
    }
Exemple #9
0
        private void bgSaveImage_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
        {
            Console("Start Record");

            while (true)
            {
                try
                {
                    var bmp1 = new Bitmap(pictureBox1.Image);

                    var parthSave    = txtParthSave.Text + "\\" + FrameNumber + ".bmp";
                    var parthPreview = txtParthPreview.Text;

                    var qualitySave    = int.Parse(textQualitySave.Text);
                    var qualityPreview = int.Parse(txtQualityPreview.Text);

                    var jpgEncoder          = GetEncoder(ImageFormat.Jpeg);
                    var myEncoderParameters = new EncoderParameters(1);

                    myEncoderParameters.Param[0] = new EncoderParameter(Encoder.Quality, qualitySave);
                    bmp1.Save(parthSave, jpgEncoder, myEncoderParameters);

                    myEncoderParameters.Param[0] = new EncoderParameter(Encoder.Quality, qualityPreview);
                    bmp1.Save(parthPreview, jpgEncoder, myEncoderParameters);

                    this.Invoke((MethodInvoker) delegate() { txtFrame.Text = FrameNumber.ToString(); });
                    FrameNumber++;
                }
                catch (Exception ex)
                {
                    ex.ToString();
                }

                Thread.Sleep(1000);
            }
        }
        public override int GetHashCode()
        {
            int hash = 1;

            hash ^= frameMetricRanges_.GetHashCode();
            hash ^= onDemandMetrics_.GetHashCode();
            if (FrameNumber != 0L)
            {
                hash ^= FrameNumber.GetHashCode();
            }
            if (RealTimeSeconds != 0F)
            {
                hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(RealTimeSeconds);
            }
            if (Label.Length != 0)
            {
                hash ^= Label.GetHashCode();
            }
            if (_unknownFields != null)
            {
                hash ^= _unknownFields.GetHashCode();
            }
            return(hash);
        }
        public void WriteData(string input, FrameType type)
        {
            byte[] Header = { STARTBYTE, (byte)type };

            byte[] fileId = { 0 };
            byte[] size;
            byte[] NumOfFrames;
            byte[] FrameNumber;

            byte[] BufferToSend;
            byte[] Telegram;
            string Telegram_s;
            string size_s;

            byte[] ByteToEncode;
            byte[] ByteEncoded;


            switch (type)
            {
            case FrameType.ERR_FILE:


                break;

            case FrameType.MSG:

                #region MSG
                if (IsConnected())
                {
                    // Telegram[] = Coding(input);
                    Telegram = Encoding.Default.GetBytes(input);              //потом это кыш

                    BufferToSend = new byte[Header.Length + Telegram.Length]; //буфер для отправки = заголовок+сообщение
                    Header.CopyTo(BufferToSend, 0);
                    Telegram.CopyTo(BufferToSend, Header.Length);

                    Port.Write(BufferToSend, 0, BufferToSend.Length);
                    Log.AppendText("(" + Port.PortName + ") WriteData: sent message >  " + Encoding.Default.GetString(Telegram) + "\n");
                }
                break;

                #endregion
            case FrameType.ACK:
                #region ACK
                if (IsConnected())
                {
                    // Telegram[] = Coding(input);
                    Telegram = Encoding.Default.GetBytes(input);              //потом это кыш

                    BufferToSend = new byte[Header.Length + Telegram.Length]; //буфер для отправки = заголовок+сообщение
                    Header.CopyTo(BufferToSend, 0);
                    Telegram.CopyTo(BufferToSend, Header.Length);

                    Port.Write(BufferToSend, 0, BufferToSend.Length);
                    Telegram_s = Encoding.Default.GetString(Telegram);
                    //Log.AppendText("[" + DateTime.Now + "] Отправлено ACK согласие на принятие файла: " + Telegram_s + "\n");
                }
                break;

                #endregion
            case FrameType.FILEOK:
                if (IsConnected())
                {
                    ByteToEncode = File.ReadAllBytes(input);
                    FilePath     = input;
                    size         = new byte[sizeLenght];
                    size         = Encoding.Default.GetBytes(((double)ByteToEncode.Length).ToString()); //нужны байты
                    //Telegram = Encoding.Default.GetBytes(size); //потом это кыш

                    BufferToSend = new byte[Header.Length + size.Length];     //буфер для отправки = заголовок+сообщение
                    Header.CopyTo(BufferToSend, 0);
                    size.CopyTo(BufferToSend, Header.Length);

                    Port.Write(BufferToSend, 0, BufferToSend.Length);
                    size_s = Encoding.Default.GetString(size);
                    Log.AppendText("[" + DateTime.Now + "] Отправлена информация о размере файла: " + size_s + "\n");
                    //SuccessfulFrameNumber = int.Parse(Telegram_s);
                }
                break;

            case FrameType.FRAME:
                if (IsConnected())
                {
                    // Telegram[] = Coding(input);
                    Telegram     = Encoding.Default.GetBytes(input);          //потом это кыш
                    BufferToSend = new byte[Header.Length + Telegram.Length]; //буфер для отправки = заголовок+сообщение
                    Header.CopyTo(BufferToSend, 0);
                    Telegram.CopyTo(BufferToSend, Header.Length);

                    Port.Write(BufferToSend, 0, BufferToSend.Length);
                    Telegram_s = Encoding.Default.GetString(Telegram);
                    //Log.AppendText("[" + DateTime.Now + "] получен Frame >  " + Telegram_s + " .Отправлено подтверждение о получении.\n");
                    //SuccessfulFrameNumber = int.Parse(Telegram_s);
                }
                else
                {
                    Log.Invoke(new EventHandler(delegate
                    {
                        Log.AppendText("[" + DateTime.Now + "] : Передача файла нарушена.\n" + "Последний успешный фрейм: " + SuccessfulFrameNumber.ToString());
                    }));
                    MessageBox.Show("Соединение прервано. Передача нарушена.");
                    BreakConnection = true;
                    break;
                }
                break;

            case FrameType.FILE:
                #region FILE
                int i;
                int parts = 0;
                int EncodedByteIndex;
                int Part_ByteEncodedIndex;
                ByteEncoded = new byte[0];
                size        = new byte[0];
                NumOfFrames = new byte[0];


                if (IsConnected())
                {
                    if (BreakConnection == false)
                    {
                        ByteToEncode = File.ReadAllBytes(@FilePath);

                        size = new byte[sizeLenght];
                        size = Encoding.Default.GetBytes(((double)ByteToEncode.Length).ToString());     //нужны байты
                        //WriteData(Encoding.Default.GetString(size), FrameType.FILEOK);
                        NumOfFrames = new byte[NumOfFrameLenght];
                        FrameNumber = new byte[NumOfFrameLenght];

                        string typeFile = @input.Split('.')[1];
                        fileId[0] = TypeFile_to_IdFile(typeFile);


                        ByteEncoded = new byte[ByteToEncode.Length * 2];
                        for (i = 0; i < ByteToEncode.Length; i++)
                        {
                            Hamming.HammingEncode74(ByteToEncode[i]).CopyTo(ByteEncoded, i * 2);
                        }

                        if (ByteEncoded.Length + InfoLen < Port.WriteBufferSize)
                        {
                            BufferToSend = new byte[InfoLen + ByteEncoded.Length];
                            Header.CopyTo(BufferToSend, 0);
                            fileId.CopyTo(BufferToSend, Header.Length);
                            size.CopyTo(BufferToSend, Header.Length + fileId.Length);

                            NumOfFrames = Encoding.Default.GetBytes(1.ToString());
                            NumOfFrames.CopyTo(BufferToSend, Header.Length + fileId.Length + sizeLenght);

                            FrameNumber = Encoding.Default.GetBytes(1.ToString());
                            FrameNumber.CopyTo(BufferToSend, Header.Length + fileId.Length + sizeLenght + NumOfFrameLenght);


                            ByteEncoded.CopyTo(BufferToSend, InfoLen);
                            bool flag = false;
                            while (!flag)
                            {
                                if (MessageBox.Show("Отправить?", "Файл", MessageBoxButtons.YesNo) == DialogResult.Yes)
                                {
                                    flag = true;
                                    Port.Write(BufferToSend, 0, BufferToSend.Length);

                                    //loading.Hide();
                                    MessageBox.Show("Готово!");
                                    //loading.progressBar1.Value = 0;
                                    //loading.i = 1;
                                }
                                else
                                {
                                    flag = true;
                                    //loading.Hide();
                                    //loading.progressBar1.Value = 0;
                                    MessageBox.Show("Вы отменили передачу файла.");
                                    // loading.i = 1;
                                }
                            }
                        }
                        else
                        {
                            parts       = (int)Math.Ceiling((double)ByteEncoded.Length / (double)(Port.WriteBufferSize - InfoLen));
                            NumOfFrames = Encoding.Default.GetBytes(parts.ToString());
                        }
                        SuccessfulFrameNumber = 0;
                    }

                    for (i = SuccessfulFrameNumber; i < parts; i++)
                    {
                        BreakConnection = false;

                        EncodedByteIndex      = i * (Port.WriteBufferSize - InfoLen);
                        Part_ByteEncodedIndex = (Port.WriteBufferSize - InfoLen);

                        byte[] Part_ByteEncoded = new byte[Part_ByteEncodedIndex];

                        int Part_Len = 0;
                        if (((ByteEncoded.Length - EncodedByteIndex) >= Part_ByteEncodedIndex))
                        {
                            Part_Len = Part_ByteEncodedIndex;
                        }

                        else if (ByteEncoded.Length - EncodedByteIndex > 0)
                        {
                            Part_Len = ByteEncoded.Length - i * (Port.WriteBufferSize - InfoLen);
                        }

                        BufferToSend = new byte[Port.WriteBufferSize];

                        Header.CopyTo(BufferToSend, 0);
                        fileId.CopyTo(BufferToSend, Header.Length);
                        size.CopyTo(BufferToSend, Header.Length + fileId.Length);

                        NumOfFrames.CopyTo(BufferToSend, Header.Length + fileId.Length + sizeLenght);

                        FrameNumber = Encoding.Default.GetBytes((i + 1).ToString());
                        FrameNumber.CopyTo(BufferToSend, Header.Length + fileId.Length + sizeLenght + NumOfFrameLenght);

                        Array.ConstrainedCopy(ByteEncoded, EncodedByteIndex, BufferToSend, InfoLen, Part_Len);

                        //Log.AppendText("[" + DateTime.Now + "] : Отправляется фрейм: " + (SuccessfulFrameNumber + 1).ToString() + "\n");

                        Port.Write(BufferToSend, 0, BufferToSend.Length);
                        int ByteCheck;

                        if (i > 0)
                        {
                            int WaitTime = 0;
                            ByteCheck = Port.ReadByte();
                            while (ByteCheck != (int)STARTBYTE)
                            {
                                if (WaitTime <= 1000)
                                {
                                    Thread.Sleep(100);
                                    WaitTime += 100;
                                    ByteCheck = Port.ReadByte();
                                }
                            }
                            ByteCheck = Port.ReadByte();
                            if (ByteCheck == (int)FrameType.FRAME)
                            {
                                int    n             = FrameNumber.Length;//Port.BytesToRead;
                                byte[] msgByteBuffer = new byte[n];

                                Port.Read(msgByteBuffer, 0, n);     //считываем сообщение
                                string Message = Encoding.Default.GetString(msgByteBuffer);
                                Log.Invoke(new EventHandler(delegate
                                {
                                    Log.AppendText("[" + DateTime.Now + "] : Получено подтверждение об успешной доставке Frame " + Message + "\n");
                                }));
                                SuccessfulFrameNumber = int.Parse(Message);
                            }

                            if (i == SuccessfulFrameNumber)
                            {
                                continue;
                            }


                            if (i != SuccessfulFrameNumber)
                            {
                                MessageBox.Show("Передача файла прервана");
                                BreakConnection = true;
                            }
                        }
                        if (BreakConnection == true)
                        {
                            MessageBox.Show("Восстановите соединение или отмените отправку файла", "Файл", MessageBoxButtons.OKCancel);

                            while ((IsConnected()) || (MessageBox.Show("Отправить?", "Файл", MessageBoxButtons.OKCancel) == DialogResult.Cancel))
                            {
                                MessageBox.Show("Восстановите соединение или отмените отправку файла", "Файл", MessageBoxButtons.OKCancel);
                            }

                            if (MessageBox.Show("Отправить?", "Файл", MessageBoxButtons.OKCancel) == DialogResult.Cancel)
                            {
                                break;
                            }
                        }
                    }
                }
                else
                {
                    Log.Invoke(new EventHandler(delegate
                    {
                        Log.AppendText("[" + DateTime.Now + "] : Передача файла нарушена.\n" + "Последний успешный фрейм: " + SuccessfulFrameNumber.ToString());
                    }));
                    MessageBox.Show("Соединение прервано. Передача нарушена.");
                    BreakConnection = true;
                    break;
                }
                break;
                #endregion

            default:
                if (IsConnected())
                {
                    Port.Write(Header, 0, Header.Length);
                }
                break;
            }                                                                                                                                  //Зачем такая конструкция?
            Log.Invoke(new EventHandler(delegate
            {
                Log.AppendText("sent frame " + type + "\n"); //всё записываем, мы же снобы
            }));
        }
Exemple #12
0
 ///<summary>Subtraction (FrameNumber A - int B)</summary>
 public static FrameNumber Subtract_FrameNumberInteger(FrameNumber A, int B) =>
 TimeManagementBlueprintLibrary_methods.Subtract_FrameNumberInteger_method.Invoke(A, B);
Exemple #13
0
 ///<summary>Multiply (FrameNumber A * B)</summary>
 public static FrameNumber Multiply_FrameNumberInteger(FrameNumber A, int B) =>
 TimeManagementBlueprintLibrary_methods.Multiply_FrameNumberInteger_method.Invoke(A, B);
Exemple #14
0
 ///<summary>Converts a FrameNumber to an int32 for use in functions that take int32 frame counts for convenience.</summary>
 public static int Conv_FrameNumberToInteger(FrameNumber InFrameNumber) =>
 TimeManagementBlueprintLibrary_methods.Conv_FrameNumberToInteger_method.Invoke(InFrameNumber);
Exemple #15
0
 ///<summary>Addition (FrameNumber A + FrameNumber B)</summary>
 public static FrameNumber Add_FrameNumberFrameNumber(FrameNumber A, FrameNumber B) =>
 TimeManagementBlueprintLibrary_methods.Add_FrameNumberFrameNumber_method.Invoke(A, B);