예제 #1
0
        public void add_code(comando_cod_hex comando)
        {
            int old_length = hex_code.Length;

            if (hex_code.Length < comando.addr + comando.qnt_bytes)
            {
                Array.Resize <byte> (ref hex_code,
                                     ((comando.addr + comando.qnt_bytes + 16) / 16) * 16);//garantindo multiplo de 16, por conveniencia para mostrar
                for (int i = old_length; i < hex_code.Length; i++)
                {
                    hex_code [i] = 0xFF;
                }
            }
            if (comando.data_type == 0x00)
            {
                for (int i = 0; i < comando.qnt_bytes; i++)
                {
                    hex_code [comando.addr + i] = comando.data_bytes [i];
                }
            }
            else if (comando.data_type == 0x01)
            {
                Console.WriteLine("A leitura chegou ao fim do arquivo.");
            }
            else
            {
                Console.WriteLine("Erro inesperado com o tipo de arquivo.");
            }
        }
예제 #2
0
 public void carregar_arquivo(string arquivo_hex_str)
 {
     this.hex_str = string.Copy(arquivo_hex_str);
     //Array.Resize<byte> (ref hex_code, 16);
     for (int i = 0; i < hex_code.Length; i++)
     {
         hex_code [i] = 0xFF;
     }
     foreach (var linha in arquivo_hex_str.Split())
     {
         if (linha.StartsWith(":", StringComparison.Ordinal))
         {
             var comando_atual = new comando_cod_hex(linha);
             add_code(comando_atual);
             //add_hex_command (comando_atual.get_vector_hex ());
         }
     }
 }