Update environment generated file
This commit is contained in:
@@ -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),
|
||||
))))
|
||||
]));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user