Você está na página 1de 3

private void AlterarImagemPmv(ManipuladorImagens.

ImagemBase imagemBase, ref


string multiString, bool somenteTexto = false)
{

teste
if (!somenteTexto && !imagemBase.IndexFixed)
{
try

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");
}
catch (Exception e)
{
try
{
Thread.Sleep(2000);
DefinirEAguardarGraphicStatus(imagemBase.Index,
DmsEnumGraphicStatus.NotUsedReq, DmsEnumGraphicStatus.NotUsed);
}
catch
{

}
imagemBase.Index += 1;
throw e;
}
}

var linhasMensagem = string.IsNullOrEmpty(imagemBase.Mensagem) ? new


string[] { } : imagemBase.Mensagem.Split('|');
var mensagem = imagemBase.FormatacaoMultistring;

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


{
var linhaMensagem = linhasMensagem[i]?.Trim();
var texto = "";
if (string.IsNullOrEmpty(linhaMensagem))
continue;

if (!string.IsNullOrEmpty(imagemBase.CodificacaoMultistring))
{
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;
}
else
mensagem += i == 0 ? imagemBase.FormatacaoMultistringTexto +
linhaMensagem
:
(string.IsNullOrEmpty(imagemBase.FormatacaoMultistringSeparacaoLinha) ? "[nl]" :
imagemBase.FormatacaoMultistringSeparacaoLinha) +
imagemBase.FormatacaoMultistringTexto + linhaMensagem;
}

if (somenteTexto)
{
if (VersionCode.V1 == _snmpClient.GetVersionCode())
multiString += (!string.IsNullOrEmpty(multiString) ? "[np]" :
"") + string.Format("[pt{0}o0]{1}", imagemBase.TempoPagina * 10, mensagem?.Trim());
else
multiString += (!string.IsNullOrEmpty(multiString) ? "[np]" :
"") + string.Format("[pt{0}][jl3]{1}", imagemBase.TempoPagina * 10,
mensagem?.Trim());
}
else
{
if (string.IsNullOrEmpty(imagemBase.FormatacaoMultstringPicto))
multiString += (!string.IsNullOrEmpty(multiString) ? "[np]" :
"") + string.Format("[g{2},1,1][pt{0}]{1}", imagemBase.TempoPagina * 10,
mensagem?.Trim(), imagemBase.Index);
else
multiString += (!string.IsNullOrEmpty(multiString) ? "[np]" :
"") + string.Format("[g{2},1,1][pt{0}]{3}{1}", imagemBase.TempoPagina * 10,
mensagem?.Trim(), imagemBase.Index, imagemBase.FormatacaoMultstringPicto);
}

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


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

Você também pode gostar