Copy old project - initial state

This commit is contained in:
2025-01-07 15:19:59 +01:00
parent cae841f0e5
commit afad23ca20
202 changed files with 17563 additions and 0 deletions
@@ -0,0 +1,129 @@
import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'dart:typed_data';
import 'package:get/get.dart';
import 'package:google_sign_in/google_sign_in.dart';
class SocketTestController extends GetxController {
Socket? socket;
StreamSubscription? socketStreamSubscription;
RxString message = ''.obs;
final GoogleSignIn googleSignIn =
GoogleSignIn(scopes: ['https://www.googleapis.com/auth/drive.appdata']);
late GoogleSignInAccount? googleSignInAccount;
@override
void onInit() {
super.onInit();
//Loading, Success, Error handle with 1 line of code
message.value += "OnInit finished ....\n\n";
}
@override
void onClose() {
super.onClose();
disconnect();
print("SocketTestController onClose ....");
}
void googleLogIn() async {
googleSignInAccount = await googleSignIn.signIn();
final GoogleSignInAuthentication googleSignInAuthentication =
await googleSignInAccount!.authentication;
print("AccessToken: ${googleSignInAuthentication.accessToken}");
print("IdToken: ${googleSignInAuthentication.idToken}");
}
void connect() async {
// socket = await Socket.connect(InternetAddress('3.23.52.207'), 2101,
// timeout: const Duration(seconds: 5));
socket = await Socket.connect(InternetAddress('84.206.45.44'), 2101,
timeout: const Duration(seconds: 5));
socket?.asBroadcastStream;
// socket?.encoding = ascii;
print("Connect ....");
message.value += "Connecting to caster .... \n\n";
// message.value += _toBase64("info@mail.app-dev.hu:") + "\r\n";
message.value += "${_toBase64("elgi08:Laszl0stef1")}\r\n";
// String header = "GET /KOVARIK HTTP/1.1\r\n";
String header = "GET /SGO_RTK3.2 HTTP/1.1\r\n";
header += "User-Agent: SharpGps iter.dk\r\n";
header += "Accept: */*\r\nConnection: close\r\n";
// header += "Authorization: Basic ${_toBase64("info@mail.app-dev.hu:")}\r\n";
header += "Authorization: Basic ${_toBase64("elgi08:Laszl0stef1")}\r\n";
// header += "Host:rtk2go.com:2101\r\n";
header += "Host:gnssnet.hu:2101\r\n";
header += "Ntrip-Vesrsion:Ntrip/2.0\r\n";
header += "\r\n";
// listen for responses from the server
socketStreamSubscription = socket?.listen(
// handle data from the server
(Uint8List data) {
// "ICY 200 OK" - first response
final serverResponse = String.fromCharCodes(data);
int length = data.length;
print('Server: $length');
},
// handle errors
onError: (error) {
print(error);
socket?.destroy();
},
// handle server ending connection
onDone: () {
print('Server left.');
socket?.destroy();
socket = null;
},
);
socket?.add(_convertStringToUint8List(header));
}
void disconnect() async {
if (socket != null) {
// socket?.close();
socketStreamSubscription?.cancel();
await socket?.flush();
socket?.close();
socket?.destroy();
socket = null;
print("Disconnect ....");
}
}
String _toBase64(String str) {
final bytes = ascii.encode(str);
final base64Str = base64.encode(bytes);
return base64Str;
}
Uint8List _convertStringToUint8List(String str) {
final List<int> codeUnits = str.codeUnits;
print("_convertStringToUint8List -> $codeUnits");
print("length codeunits -> ${codeUnits.length}");
print(
"_convertStringToUint8List uint8list -> ${Uint8List.fromList(codeUnits)}");
print(
"_convertStringToUint8List uint8list length -> ${Uint8List.fromList(codeUnits).length}");
final Uint8List unit8List = Uint8List.fromList(codeUnits);
return unit8List;
}
String _convertUint8ListToString(Uint8List uint8list) {
return String.fromCharCodes(uint8list);
}
}
@@ -0,0 +1,58 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:terepi_seged/pages/socket_test/presentation/controllers/socket_test_controller.dart';
class SocketTestView extends GetView<SocketTestController> {
const SocketTestView({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
extendBody: true,
backgroundColor: Colors.black.withOpacity(0.05),
appBar: AppBar(
elevation: 0.0,
title: const Text('Socket test (Ntrip caster)'),
leading: IconButton(
icon: const Icon(Icons.arrow_back_ios),
color: Colors.white,
onPressed: () {
Get.back();
},
),
),
body: Column(children: [
Column(
children: [
const Center(
child: Text("SocketTestView"),
),
TextButton(
onPressed: () async {
controller.googleLogIn();
},
child: const Text('Google log in ...')),
TextButton(
onPressed: () async {
print("Pressed connect ....");
controller.connect();
},
child: const Text('Connect to NTRIP caster')),
TextButton(
onPressed: () async {
controller.disconnect();
},
child: const Text('Disconnect'))
],
),
Expanded(
flex: 1,
child: SingleChildScrollView(
scrollDirection: Axis.vertical,
child: Obx(() => Text(
controller.message.value,
style: const TextStyle(color: Colors.white),
))))
]));
}
}