Skip to content

Commit

Permalink
Fixed parsing errors.
Browse files Browse the repository at this point in the history
  • Loading branch information
xclud committed Jun 21, 2024
1 parent a018df2 commit 84704e9
Show file tree
Hide file tree
Showing 10 changed files with 350 additions and 613 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## 0.3.9

* Fixed parsing errors.

## 0.3.8

* More fields added.
Expand Down
85 changes: 1 addition & 84 deletions example/lib/main.dart
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
import 'dart:io';
import 'dart:typed_data';
import 'package:flutter/material.dart';
import 'package:flutter_libserialport/flutter_libserialport.dart';
import 'package:pos/pos.dart';

void main() {
runApp(const MyApp());
Expand Down Expand Up @@ -41,87 +38,7 @@ class _MyHomePageState extends State<MyHomePage> {

final List<String> _messages = [];

void _purchaseSerial() async {
final message = Message.purchase(amount: 10001);
final sp = SerialPort('COM12');
sp.openReadWrite();

String? _terminalId;
bool done = false;

final encoded = message.encode();
final written = sp.write(encoded, timeout: 1000);

print(written);

while (!done) {
final buffer = sp.read(256, timeout: 100);

if (buffer.length < 20) {
continue;
}

final msgbuf = buffer.skip(7).toList();
final msg = Message.parse(Uint8List.fromList(msgbuf));

if (_terminalId == null && msg.terminalId != null) {
_terminalId = msg.terminalId;

setState(() {});
}

if (_terminalId != null) {
sp.write(Message.ack(terminalId: _terminalId).encode());
}

if (msg.get(39)?[0] == 48 && msg.get(37) != null) {
print('Done');
done = true;
}
}
}

void _purchaseSocket() async {
final amount = int.tryParse(_amountController.text);

if (amount == null) {
return;
}

final host = _hostController.text;
final message = Message.purchase(amount: amount);

if (s == null) {
s = await Socket.connect(host, 1197);

s!.listen((event) {
final buffer = Uint8List.fromList(event.skip(7).toList());

try {
final msg = Message.parse(buffer);

if (_terminalId == null && msg.terminalId != null) {
_terminalId = msg.terminalId;
}

if (_terminalId != null) {
s!.add(Message.ack(terminalId: _terminalId!).encode());
print('ACK');
}

_messages.add(msg.toString());
} catch (_) {
print(_.toString());
}

if (mounted) {
setState(() {});
}
});
}

s!.add(message.encode());
}
void _purchaseSerial() async {}

@override
Widget build(BuildContext context) {
Expand Down
3 changes: 0 additions & 3 deletions lib/pos.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,5 @@ import 'package:convert/convert.dart';

part 'src/bitmap.dart';
part 'src/data_element.dart';
part 'src/field.dart';
part 'src/fields.dart';
part 'src/message.dart';
part 'src/parser.dart';
part 'src/private.dart';
3 changes: 2 additions & 1 deletion lib/src/data_element.dart
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ class DataElement {
/// Language
final int? language;

List<int> _encode() {
/// Encode data.
List<int> encode() {
final buffer = <int>[];

final s = serialNumber;
Expand Down
17 changes: 0 additions & 17 deletions lib/src/field.dart

This file was deleted.

138 changes: 0 additions & 138 deletions lib/src/fields.dart

This file was deleted.

Loading

0 comments on commit 84704e9

Please sign in to comment.