Member 13711215 Ответов: 2

Управление сетевым принтером с помощью внутренних команд


Привет,

Я пытаюсь отправить команду через ethernet на принтер, где хранятся некоторые файлы на карте памяти. Принтер-это специфический термопринтер Vario III. вот краткое руководство пользователя: Uploadfiles.Ио - inter_vario3_uk.формат PDF[^]

Проблема: Connectiong, вероятно, в порядке, но я не знаю, какой формат или как я могу правильно отправить функциональную команду для этого принтера. Когда я пытаюсь отправить команду типа:
private void button1_Click(object sender, EventArgs e)
       {
           Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
           clientSocket.NoDelay = true;

           IPAddress ip = IPAddress.Parse("192.168.11.117");
           IPEndPoint ipep = new IPEndPoint(ip, 9100);
           clientSocket.Connect(ipep);

           byte[] fileBytes = File.ReadAllBytes("153.874-003.lbex");

           clientSocket.Send(fileBytes);
           clientSocket.Close();
       }
без ответа. Эта команда должна быть для изменения языка в соответствии с руководством inter, но ничего не происходит.

Спасибо за совет

Что я уже пробовал:

Я пытаюсь использовать эту программу и использовать некоторые внутренние команды из руководства Считывание данных непосредственно с принтера[^]

Dave Kreskowiak

МММ... единственная строка кода, которую вы разместили, никуда не посылает команду. Это даже не полезный формат заявления.

Все, что вы сделали, это присвоили переменной строковое значение "FCDI--r0-------" sendString.

Member 13711215

Привет, я улучшаю свой вопрос. Теперь, когда я отправляю этот файл, принтер показывает мне ошибку. общение-это нормально. но теперь я хочу выбрать файл с карты памяти принтеров по имени и распечатать его. в принтере есть способ A:\STANDARD\some файл.

2 Ответов

Рейтинг:
2

OriginalGriff

Поговорите с производителем принтера, они будут знать гораздо больше о своем устройстве, чем мы. Это может быть то, что драйвер принтера становится на пути, или вам нужно поговорить с дисководом каким - то определенным образом, мы не можем сказать без исчерпывающего знания конкретной марки и модели-и 99% из нас даже не видели эту модель, а тем более не использовали ее именно для того, что вы пытаетесь сделать.

Поэтому поговорите с производителями - у них будет либо техническая поддержка, либо, возможно, даже образец кода.


Member 13711215

У меня есть код arduino, если это поможет.

OriginalGriff

Не для меня, у меня нет Arduino ... так что проверьте его в своем Arduino и посмотрите, работает ли он. Если это так, то у вас есть рабочий код и нерабочий код, и вы должны быть в состоянии увидеть разницу.

Member 13711215

Грифф? Вы не могли бы мне помочь? Как я могу отправить на принтер эту команду? <soh> FBC---r----- - - - <etb>

OriginalGriff

Рискуя повторить: "поговорите с производителем принтера".

Рейтинг:
2

Member 13711215

Public Sub print_file(ByVal sender As Object, ByVal e As EventArgs)

       'Nastavení komunikace IP ADRESA TISKÁRNY + PORT
       Dim clientSocket As Socket = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
       clientSocket.NoDelay = True
       Dim ip As IPAddress = IPAddress.Parse("192.168.11.117")
       Dim ipep As IPEndPoint = New IPEndPoint(ip, 9100)

       'Otevření spojení
       Try
           clientSocket.Connect(ipep)
       Catch ex As Exception
           MessageBox.Show(ex.Message)
       End Try

       'Načtení etikety dle ascii tabulky (SOH)FMB---rTEXTBOX1.TEXT(ETB)
       Dim s As String = Assy_line_light.split_char.Text
       Dim bytes = Encoding.ASCII.GetBytes(s)
       Dim bytesToSend As Byte() = New Byte(7) {&H1, &H46, &H4D, &H42, &H2D, &H2D, &H2D, &H52}
       Dim bytesToSend2 As Byte() = New Byte(0) {&H17}
       Dim load = bytesToSend.Concat(bytes).ToArray()
       Dim load2 = load.Concat(bytesToSend2).ToArray()

       Try
           clientSocket.Send(load2)
       Catch ex As Exception
           MessageBox.Show(ex.Message)
       End Try

       'Tisk etikety dle ascii tabulky (SOH)FBC---r--------(ETB)
       System.Threading.Thread.Sleep(500)
       Dim print As Byte() = New Byte(15) {&H1, &H46, &H42, &H44, &H2D, &H2D, &H2D, &H53, &H2D, &H2D, &H2D, &H2D, &H2D, &H2D, &H2D, &H17}

       Try
           clientSocket.Send(print)

       Catch ex As Exception
           MessageBox.Show(ex.Message)
       End Try

       'Uzavření spojení
       clientSocket.Close()
   End Sub