Você está na página 1de 2

private void AlterarImagemPmv(ManipuladorImagens.

ImagemBase imagemBase, ref


string multiString, bool somenteTexto = false)
{

teste
if (!somenteTexto && !imagemBase.IndexFixed)
{
try
{
Log.GravarLog(" Obtendo Tamanho dos Blocos:", TipoLog.Info,
Thread.CurrentThread.Name ?? "Log");
var graphicBlockSize =
_snmpClient.GetInt(DmsMibLibrary.GraphicBlockSize);
Log.GravarLog("Tamanho dos Blocos:" + graphicBlockSize,
TipoLog.Info, Thread.CurrentThread.Name ?? "Log");

DefinirEAguardarGraphicStatus(imagemBase.Index,
DmsEnumGraphicStatus.ModifyReq, DmsEnumGraphicStatus.Modifying);
DefinirGraphicName(imagemBase.Index,
imagemBase.Index.ToString());
DefinirGraphicNumber(imagemBase.Index);
DefinirGraphicType(imagemBase.Index,
DmsEnumGraphicType.Color24bit);//DmsEnumGraphicType.Monochrome1bit);
DefinirGraphicHeight(imagemBase.Index, imagemBase.Altura);
DefinirGraphicWidth(imagemBase.Index, imagemBase.Largura);

Log.GravarLog("Status Alterado : Modificando [" +


imagemBase.Index + "]", TipoLog.Info, Thread.CurrentThread.Name ?? "Log");

if (!imagemBase.ImagemJaInvertida)
imagemBase.FlipImagem();

var imgBytes = imagemBase.ToColor24Bit();


imgBytes = imgBytes.Reverse().ToArray();
var bmpImageBody = new byte[imgBytes.Length];
imgBytes.ToArray().CopyTo(bmpImageBody, 0);
var numeroBloco = 0;

var blocos = new List<string>();

for (var i = 0; i < bmpImageBody.Length; i += graphicBlockSize)


{
var bytesBloco = new byte[graphicBlockSize];
var tamanhoBloco = (bmpImageBody.Length - i >=
graphicBlockSize ? graphicBlockSize : bmpImageBody.Length - i);
numeroBloco += 1;

bmpImageBody.Skip(i).Take(tamanhoBloco).ToArray().CopyTo(bytesBloco, 0);

_snmpClient.SetBytes(
DmsMibLibrary.GraphicBitmapEntry.Replace("X",
imagemBase.Index.ToString()).Replace("#", numeroBloco.ToString()),
bytesBloco);

Log.GravarLog("Bloco [" + (i + 1) + "] da imagem enviado!",


TipoLog.Info, Thread.CurrentThread.Name ?? "Log");
}

DefinirEAguardarGraphicStatus(imagemBase.Index,
DmsEnumGraphicStatus.ReadyForUseReq, DmsEnumGraphicStatus.ReadyForUse);
Log.GravarLog("Status Alterado : Pronto [" + imagemBase.Index +
"]", TipoLog.Info, Thread.CurrentThread.Name ?? "Log");
}

foreach (var c in linhaMensagem)


{
if (Regex.IsMatch(c.ToString(), imagemBase.Regex) && !
string.IsNullOrEmpty(c.ToString().Trim()))
{
var conversao = 0;
var converteu =
int.TryParse(imagemBase.CodificacaoMultistring, out conversao);

var ecoding = !converteu ?


Encoding.GetEncoding(imagemBase.CodificacaoMultistring) :
Encoding.GetEncoding(conversao);
byte[] ASCIIValues = ecoding.GetBytes(c.ToString());
var hex = "[hc" + ASCIIValues[0].ToString("X") + "]";
texto += hex;
}
else
{
texto += this.GetStringNoAccents(c.ToString());
}
}
mensagem += i == 0 ? imagemBase.FormatacaoMultistringTexto +
texto : (string.IsNullOrEmpty(imagemBase.FormatacaoMultistringSeparacaoLinha) ?
"[nl]"
: imagemBase.FormatacaoMultistringSeparacaoLinha) +
imagemBase.FormatacaoMultistringTexto + texto;
}

Log.GravarLog("MULTISTRING: " + multiString, TipoLog.Info,


Thread.CurrentThread.Name ?? "Log");
}

Você também pode gostar