Как реализовать печать через POS-терминал Bluetooth Classic с использованием SPP и Protobuf в .NET Maui?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как реализовать печать через POS-терминал Bluetooth Classic с использованием SPP и Protobuf в .NET Maui?

Сообщение Anonymous »

Я работаю над приложением .NET MAUI, в котором мне нужно отправить чек на POS-терминал через Bluetooth. POS-терминал поддерживает связь Bluetooth и ожидает, что сообщения будут в формате Protobuf.
Я уже написал базовый код связи Bluetooth, который подключается к POS-терминалу, используя следующий код: p>

Код: Выделить всё

var bluetoothAdapter = BluetoothAdapter.DefaultAdapter;
var device = (from pd in bluetoothAdapter.BondedDevices where pd.Name == "Pos-terminal" select pd).Single();
using var socket = device.CreateRfcommSocketToServiceRecord(UUID.FromString("uuid"))!;

socket.Connect();
// ReceiptsRequest Generated by the protocol buffer compiler.
var data = new ReceiptsRequest
{
OrderNo = "1234",
Receipts =
{
Receipt.CustomerReceipt
}
};

var outputStream = socket.OutputStream!;
var bytes = data.ToByteArray();

outputStream.Write(bytes, 0, bytes.Length);
outputStream.Flush();

socket.Close();
Однако терминал ожидает, что сообщение будет в формате Protobuf, например:

Код: Выделить всё

syntax = "proto3";

package com.uaepay.pos.ecr.acquire;

message AcquireReceipt {
common.Money amount = 1;
optional string subject = 2;
optional string paymentMethod = 3;
optional string reserved = 4;
}

message ReceiptsRequest {
string orderNo = 1;
repeated Receipt receipts = 2;
}
Конечная точка службы терминала — /acquire/refund/receipts/print, и мне нужно отправить в эту службу данные квитанции в кодировке Protobuf.
В чем мне нужна помощь
  • Сериализация Protobuf: как сериализовать данные AcquireReceipt в формат Protobuf в .NET MAUI?
  • Связь по Bluetooth: как отправить сериализованные данные Protobuf на POS-терминал через Bluetooth в текущей структуре кода?
    Распечатать квитанцию:
  • Как включить печать чека на POS-терминале после отправки сообщения?

    Моя попытка
    Я не уверен, как изменить существующий код для правильной обработки сериализации Protobuf и связи Bluetooth. Вот как, по моему мнению, этот процесс может работать:
    • Используйте библиотеку Protobuf, например Google.Protobuf, для сериализации моего AcquireReceipt.
      Отправьте сериализованные данные через Разъем Bluetooth.
    • Терминал автоматически распечатает квитанцию ​​после отправки правильного сообщения.
    • Может ли кто-нибудь предоставить рекомендации или фрагменты кода о том, как реализовать Сериализация Protobuf, отправка через Bluetooth в .NET MAUI и распечатать квитанцию?


    Подробнее здесь: https://stackoverflow.com/questions/792 ... d-protobuf
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • IOS – отправить сообщение через Bluetooth SPP
    Anonymous » » в форуме IOS
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Невозможно выполнить сопряжение устройства Bluetooth 2.1 SPP с последними телефонами и планшетами Samsung.
    Anonymous » » в форуме Android
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Поле добавления POS в проблеме pos.config
    Anonymous » » в форуме Python
    0 Ответы
    46 Просмотры
    Последнее сообщение Anonymous
  • Соединение OBD2 с использованием Bluetooth-Classic
    Anonymous » » в форуме Android
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Соединение OBD2 с использованием Bluetooth-Classic
    Anonymous » » в форуме Android
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»