import 'package:flutter/material.dart';
import 'package:m80app/constants/constants.dart';
import 'package:m80app/components/app_button.dart';
import 'package:m80app/constants/constants.dart' as constants;
class M80Dialog1 extends StatelessWidget {
final String title;
final String content;
final double width = 720;
final double height = 480;
const M80Dialog1({super.key, required this.title, required this.content});
@override
Widget build(BuildContext context) {
return Dialog(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8.0),
),
child: SizedBox(
width: width,
height: height,
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
// Header
Container(
width: double.infinity,
color: COLOR_CYAN, // Replace with your desired color
child: Padding(
padding: const EdgeInsets.all(16.0),
child: Text(
title,
style: TEXT_STYLE.copyWith(color: COLOR_WHITE),
),
),
),
// Body (Content)
SizedBox(
height: 270,
child: Align(
alignment: Alignment.center,
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 16.0),
child: Text(
content,
style: const TextStyle(fontSize: NORMAL_FONT_SIZE),
),
),
),
),
// Footer (Buttons)
Expanded(
child: Container(
margin:
const EdgeInsets.only(bottom: 35), // Always on the bottom
child: Align(
alignment: Alignment.bottomCenter,
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
CustomButton(
text: 'はい',
onPressed: () {
Navigator.of(context).pop(
true); // Return true when 'Yes' is pressed
}),
const SizedBox(width: 70),
CustomButton(
text: 'いいえ',
onPressed: () {
Navigator.of(context).pop(
false); // Return false when 'No' is pressed
}),
],
),
)),
)
],
),
),
);
}
}
class M80Dialog2 extends StatelessWidget {
final String title;
final String content;
final double width = 1000;
final double height = 600;
const M80Dialog2({super.key, required this.title, required this.content});
@override
Widget build(BuildContext context) {
return Dialog(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8.0),
),
child: SizedBox(
width: width,
height: height,
child: Column(
children: <Widget>[
// Body (Content)
SizedBox(
height: 470,
child: ListView(
// view list
children: [
Expanded(
child: DataTable(
headingRowColor: MaterialStateColor.resolveWith(
(states) => constants.COLOR_GREY),
dataRowMaxHeight: 100,
columnSpacing: 10,
columns: [
DataColumn(
label: SizedBox(
width: 150,
child: Text('発生時間',
style: TextStyle(
fontSize: 30,
fontWeight: FontWeight.w400,
color: Colors.black)),
)),
DataColumn(
label: SizedBox(
width: 150,
child: Text('受信コマンド',
style: TextStyle(
fontSize: 30,
fontWeight: FontWeight.w400,
color: Colors.black)),
)),
DataColumn(
label: SizedBox(
width: 150,
child: Text('発生機器',
style: TextStyle(
fontSize: 30,
fontWeight: FontWeight.w400,
color: Colors.black)),
)),
DataColumn(
label: SizedBox(
width: 500,
child: Text('内容',
style: TextStyle(
fontSize: 30,
fontWeight: FontWeight.w400,
color: Colors.black)),
)),
],
rows: [
DataRow(cells: [
DataCell(Text(
'mot hai bamot hai bamot hai bamot hai bamot hai bamot hai bamot hai bamot hai bamot hai ba',
maxLines: 100,
overflow: TextOverflow.ellipsis)),
DataCell(Text(
'mot hai bamot hai bamot hai bamot hai bamot hai bamot hai bamot hai bamot hai bamot hai bamot hai ba',
maxLines: 100,
overflow: TextOverflow.ellipsis)),
DataCell(Text(
'mot hai bamot hai bamot hai bamot hai bamot hai bamot hai bamot hai bamot hai bamot hai bamot hai bamot hai bamot hai bamot hai ba',
maxLines: 100,
overflow: TextOverflow.ellipsis)),
DataCell(Text('12312515',
maxLines: 100,
overflow: TextOverflow.ellipsis)),
]),
]),
)
],
),
),
],
),
),
);
}
}
import 'package:flutter/material.dart';
import 'package:m80app/components/app_button.dart';
import 'package:m80app/components/app_dialog.dart';
import 'package:m80app/components/dialog_password.dart';
import '';
import '../constants/constants.dart';
class AppTitleBar extends StatelessWidget {
final String title;
const AppTitleBar({super.key, this.title = ''});
@override
Widget build(BuildContext context) {
return Container(
height: 40,
padding: const EdgeInsets.only(left: 10.0),
alignment: Alignment.centerLeft,
color: const Color.fromRGBO(239, 239, 239, 1),
child: Row(
children: <Widget>[
Container(
child: Text(
title,
style: const TextStyle(
color: APP_STATUS_BAR_TEXT_COLOR,
fontSize: 18,
fontWeight: FontWeight.w500),
)),
IconButton(
icon: ImageIcon(
AssetImage('images/icon_warning.png'),
color: Color.fromARGB(255, 255, 19, 2),
),
onPressed: () async {
await showDialog(
context: context,
builder: (BuildContext context) {
return const M80Dialog2(
title: 'hihi',
content: 'hehe',
);
},
);
}),
],
));
}
}
import 'package:flutter/material.dart';
import 'package:m80app/constants/constants.dart' as constants;
import 'package:m80app/services/grpc/hcservice/hcservice.pb.dart';
import 'package:m80app/services/grpc_apis.dart';
class AtdsDialog extends StatefulWidget {
const AtdsDialog({super.key});
@override
State<AtdsDialog> createState() => _AtdsDialogState();
}
class _AtdsDialogState extends State<AtdsDialog> {
final double width = 1000;
final double height = 600;
late List<AtdListResponse> atdList = []; // abnormal transport data List
List<DataRow> getUIAtdList(List<AtdListResponse> atdList) {
List<DataRow> listRow = [];
for (final atd in atdList) {
String content = '[';
for (var i = 0; i < atd.data.length; i++) {
int aByte = atd.data[i];
String hexVal = aByte.toRadixString(16);
if (i != 0) {
content += ' ';
}
content += hexVal.padLeft(3 - hexVal.length, '0');
}
content += ']';
listRow.add(
DataRow(cells: [
DataCell(Text(atd.receiveTime,
maxLines: 100, overflow: TextOverflow.ellipsis)),
DataCell(Text(atd.commandName,
maxLines: 100, overflow: TextOverflow.ellipsis)),
DataCell(Text(atd.sourceAddress,
maxLines: 100, overflow: TextOverflow.ellipsis)),
DataCell(
Text(content, maxLines: 100, overflow: TextOverflow.ellipsis)),
]),
);
}
return listRow;
}
void updateData() async {
while (true) {
String dateNow = constants.DATE_ATD_GRPC_FORMATTER.format(DateTime.now());
var tmpAtdList = await GrpcApis.grpcGetAtdList(
AtdListRequest(timeFrom: dateNow, timeTo: dateNow));
setState(() {
atdList = tmpAtdList;
});
await Future.delayed(const Duration(minutes: constants.UpdatePeriod));
}
}
@override
void initState() {
// TODO: implement initState
super.initState();
updateData();
}
@override
Widget build(BuildContext context) {
return Dialog(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8.0),
),
child: SizedBox(
width: width,
height: height,
child: Column(
children: [
DataTable(
headingRowColor: MaterialStateColor.resolveWith(
(states) => constants.COLOR_GREY),
columnSpacing: 10,
columns: const [
DataColumn(
label: SizedBox(
width: 150,
child: Text('発生時間',
style: TextStyle(
fontSize: 30,
fontWeight: FontWeight.w400,
color: Colors.black)),
)),
DataColumn(
label: SizedBox(
width: 150,
child: Text('受信コマンド',
style: TextStyle(
fontSize: 30,
fontWeight: FontWeight.w400,
color: Colors.black)),
)),
DataColumn(
label: SizedBox(
width: 150,
child: Text('発生機器',
style: TextStyle(
fontSize: 30,
fontWeight: FontWeight.w400,
color: Colors.black)),
)),
DataColumn(
label: SizedBox(
width: 500,
child: Text('内容',
style: TextStyle(
fontSize: 30,
fontWeight: FontWeight.w400,
color: Colors.black)),
)),
],
rows: []),
// Body (Content)
SizedBox(
height: 500,
child: ListView(
// view list
children: [
DataTable(
headingRowHeight: 0,
dataRowMaxHeight: 100,
columnSpacing: 10,
columns: const [
DataColumn(
label: SizedBox(
width: 150,
child: Text(''),
)),
DataColumn(
label: SizedBox(
width: 150,
child: Text('',
style: TextStyle(
fontSize: 30,
fontWeight: FontWeight.w400,
color: Colors.black)),
)),
DataColumn(
label: SizedBox(
width: 150,
child: Text('',
style: TextStyle(
fontSize: 30,
fontWeight: FontWeight.w400,
color: Colors.black)),
)),
DataColumn(
label: SizedBox(
width: 500,
child: Text('',
style: TextStyle(
fontSize: 30,
fontWeight: FontWeight.w400,
color: Colors.black)),
)),
],
rows: getUIAtdList(atdList))
],
),
),
],
),
),
);
}
}
import 'dart:developer';
import 'dart:typed_data';
import 'package:flutter/material.dart';
import 'package:m80app/services/api_status.dart';
import 'package:m80app/services/grpc/hcservice/hcservice.pbgrpc.dart';
import 'package:m80app/services/startup_service.dart';
import 'package:m80app/setting/setting.dart';
import 'package:m80app/constants/constants.dart';
import 'package:m80app/utils/backup_utils.dart';
import 'package:m80app/utils/log_utils.dart';
import 'package:m80app/constants/route_paths_constants.dart' as routes;
import 'package:m80app/utils/parsers.dart';
import 'package:m80app/utils/sqlite_utils.dart';
import 'package:m80app/viewmodels/mainpage_viewmodel.dart';
const ENDIAN_TYPE = Endian.big;
class StartupViewModel extends ChangeNotifier {
late MainPageViewModel _mainpageViewmodel;
double _processValue = 0.0;
List _logList = [];
MainPageViewModel get mainpageViewmodel => _mainpageViewmodel;
double get processValue => _processValue;
List get logList => _logList;
SQLiteProvider provider = SQLiteProvider();
StartupViewModel() {
startUp();
}
setprocessValue(double value) {
_processValue = value;
notifyListeners();
}
setlogList(List loglist) {
_logList = loglist;
notifyListeners();
}
setmainpageViewmodel(MainPageViewModel mainpageViewmodel) {
_mainpageViewmodel = mainpageViewmodel;
}
adddisplayLog(String message) {
if (_logList.length < 6) {
_logList.add(message);
} else {
_logList.removeAt(0);
_logList.add(message);
}
notifyListeners();
}
closeApp() async {
// await Future.delayed(const Duration(milliseconds: 500));
// exit(0);
}
startUp() async {
// Load Config
Logger.info('Load Config');
await Setting.loadm80StaticConfig();
await Setting.loadm80DynamicConfig();
await Setting.loadm80RealConfig();
await Setting.loadm80ServiceConfig();
await Setting.loadm80kishuConfig();
await Setting.loadm80kishutypeConfig();
await SQLiteProvider.db.database;
// Confirm Setting
// Delete old backup and log
await Logger.deleteOldLog();
await Backup.deleteOldbackup();
// Backup
await Backup.backup();
setprocessValue(0.2);
// Connect Service and get setting
var startupservice = StartupService();
var dtnow = DateTime.now();
// // Request A0
// Logger.info('Send A0 command via GRPC');
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $A0_REQUEST送信');
// var senda0res = await startupservice.sendA0(A0RequestMessage(
// commandId: A0_REQUEST,
// protocol: Setting.m80serviceConfig.hcserviceProtocol,
// headerDestinationIpAddr:
// Setting.m80serviceConfig.hcserviceDestIpAddress,
// headerModelType: Setting.m80serviceConfig.hcserviceDestModeltype,
// headerEquipmentNumber: Setting.m80serviceConfig.hcserviceDestEquipnum,
// requestContent: 0,
// dataContent: 1,
// subrecordType: 'V'));
// dtnow = DateTime.now();
// if (senda0res is A0ResponseMessage) {
// if (senda0res.err == false) {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $A0_REQUEST受信...AckOK');
// Logger.info(
// "Received A0 Response: ${senda0res.dataresponse.toString()}");
// } else {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $A0_REQUEST受信...AckFail');
// Logger.error("Request A0 via GRPC error : ${senda0res.errMsg}");
// await closeApp();
// }
// }
// if (senda0res is Failure) {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $A0_REQUEST受信...AckFail');
// Logger.error(
// "Request A0 via GRPC error : ${senda0res.errorResponse.toString()}");
// await closeApp();
// }
// await Future.delayed(const Duration(milliseconds: 1000));
// setprocessValue(0.3);
// // Request BS
// Logger.info('Send BS command via GRPC');
// dtnow = DateTime.now();
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $BS_REQUEST送信...AckOK');
// var sendBSres1 = await startupservice.sendBS(BSRequestMessage(
// commandId: BS_REQUEST,
// protocol: Setting.m80serviceConfig.hcserviceProtocol,
// headerDestinationIpAddr:
// Setting.m80serviceConfig.hcserviceDestIpAddress,
// headerModelType: Setting.m80serviceConfig.hcserviceDestModeltype,
// headerEquipmentNumber: Setting.m80serviceConfig.hcserviceDestEquipnum,
// requestContent: 0,
// dataContent: 0));
// dtnow = DateTime.now();
// if (sendBSres1 is BSResponseMessage) {
// if (sendBSres1.err == false) {
// var dataBS1 = sendBSres1.dataresponse;
// List dataSalesMode = dataBS1.sublist(82, 84);
// List dataDailyMode = dataBS1.sublist(84, 86);
// List dataCheckMode = dataBS1.sublist(86, 88);
// List dataSearchMode = dataBS1.sublist(88, 90);
// List<String> SalesMode =
// (dataSalesMode.map((e) => e.toString()).toList());
// List<String> DailyMode =
// (dataDailyMode.map((e) => e.toString()).toList());
// List CheckMode = (dataCheckMode.map((e) => e.toString()).toList());
// List SearchMode = (dataSearchMode.map((e) => e.toString()).toList());
// var updatesalesmode = SalesMode.join();
// var updatedailymode = DailyMode.join();
// var updatecheckmode = CheckMode.join();
// var updatesearchmode = SearchMode.join();
// //update m8Dynamic.conf
// Setting.m80dynamicConfig.passeigyo = updatesalesmode;
// Setting.m80dynamicConfig.passnikkei = updatedailymode;
// Setting.m80dynamicConfig.passcheck = updatecheckmode;
// Setting.m80dynamicConfig.passsearch = updatesearchmode;
// Setting.savem80DynamicConfig();
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $BS_RESPONSE受信...AckOK');
// Logger.info("Received BS Response: ${dataBS1.toString()}");
// } else {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $BS_RESPONSE受信...AckFail');
// Logger.error("Request BS via GRPC error : ${sendBSres1.errMsg}");
// await closeApp();
// }
// }
// if (sendBSres1 is Failure) {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $BS_RESPONSE受信...AckFail');
// Logger.error(
// "Request BS via GRPC error : ${sendBSres1.errorResponse.toString()}");
// await closeApp();
// }
// // Request BS
// await Future.delayed(const Duration(milliseconds: 1000));
// Logger.info('Send BS command via GRPC');
// dtnow = DateTime.now();
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $BS_REQUEST送信...AckOK');
// var sendBSres2 = await startupservice.sendBS(BSRequestMessage(
// commandId: BS_REQUEST,
// protocol: Setting.m80serviceConfig.hcserviceProtocol,
// headerDestinationIpAddr:
// Setting.m80serviceConfig.hcserviceDestIpAddress,
// headerModelType: Setting.m80serviceConfig.hcserviceDestModeltype,
// headerEquipmentNumber: Setting.m80serviceConfig.hcserviceDestEquipnum,
// requestContent: 0,
// dataContent: 1));
// dtnow = DateTime.now();
// if (sendBSres2 is BSResponseMessage) {
// if (sendBSres2.err == false) {
// var dataBS2 = sendBSres2.dataresponse;
// var SalesAggregate = getByteDataOf(dataBS2.sublist(80, 81)).getUint8(0);
// var AggregateByIsland =
// getByteDataOf(dataBS2.sublist(81, 82)).getUint8(0);
// var TableTabulation =
// getByteDataOf(dataBS2.sublist(82, 83)).getUint8(0);
// var TicketingTotal = getByteDataOf(dataBS2.sublist(83, 84)).getUint8(0);
// var TabulationByTicketingMachine =
// getByteDataOf(dataBS2.sublist(84, 85)).getUint8(0);
// var SummaryByPaymentMachine =
// getByteDataOf(dataBS2.sublist(85, 86)).getUint8(0);
// var CmCardUnclearedData =
// getByteDataOf(dataBS2.sublist(86, 87)).getUint8(0);
// var CCardUnclearedData =
// getByteDataOf(dataBS2.sublist(87, 88)).getUint8(0);
// var OutOfUpdateData =
// getByteDataOf(dataBS2.sublist(88, 89)).getUint8(0);
// var ListOfReissuances =
// getByteDataOf(dataBS2.sublist(89, 90)).getUint8(0);
// var CmExpiredCardTally =
// getByteDataOf(dataBS2.sublist(90, 91)).getUint8(0);
// var VarianceDetails =
// getByteDataOf(dataBS2.sublist(91, 92)).getUint8(0);
// // save M80Dynamic
// Setting.m80dynamicConfig.calcuri = SalesAggregate;
// Setting.m80dynamicConfig.calcshima = AggregateByIsland;
// Setting.m80dynamicConfig.calcdai = TableTabulation;
// Setting.m80dynamicConfig.calcdaiissu = TicketingTotal;
// Setting.m80dynamicConfig.calcissu = TabulationByTicketingMachine;
// Setting.m80dynamicConfig.calcseisan = SummaryByPaymentMachine;
// Setting.m80dynamicConfig.calccmmi = CmCardUnclearedData;
// Setting.m80dynamicConfig.calccmi = CCardUnclearedData;
// Setting.m80dynamicConfig.calclimit = OutOfUpdateData;
// // Setting.m80dynamicConfig.calccmi = ListOfReissuances; // chờ trả lời trên ticket
// Setting.m80dynamicConfig.calccmlimit = CmExpiredCardTally;
// Setting.m80dynamicConfig.calcsai = VarianceDetails;
// Setting.savem80DynamicConfig();
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $BS_RESPONSE受信...AckOK');
// Logger.info(
// "Received BS Response: ${sendBSres2.dataresponse.toString()}");
// } else {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $BS_RESPONSE受信...AckFail');
// Logger.error("Request BS via GRPC error : ${sendBSres2.errMsg}");
// await closeApp();
// }
// }
// if (sendBSres2 is Failure) {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $BS_RESPONSE受信...AckFail');
// Logger.error(
// "Request BS via GRPC error : ${sendBSres2.errorResponse.toString()}");
// await closeApp();
// }
// // Request BS
// await Future.delayed(const Duration(milliseconds: 1000));
// Logger.info('Send BS command via GRPC');
// dtnow = DateTime.now();
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $BS_REQUEST送信...AckOK');
// var sendBSres3 = await startupservice.sendBS(BSRequestMessage(
// commandId: BS_REQUEST,
// protocol: Setting.m80serviceConfig.hcserviceProtocol,
// headerDestinationIpAddr:
// Setting.m80serviceConfig.hcserviceDestIpAddress,
// headerModelType: Setting.m80serviceConfig.hcserviceDestModeltype,
// headerEquipmentNumber: Setting.m80serviceConfig.hcserviceDestEquipnum,
// requestContent: 0,
// dataContent: 2));
// dtnow = DateTime.now();
// if (sendBSres3 is BSResponseMessage) {
// if (sendBSres3.err == false) {
// var dataBS3 = sendBSres3.dataresponse;
// var SalesAggregate =
// getByteDataOf(dataBS3.sublist(82, 84)).getUint16(0, Endian.big);
// var IslandAggregation =
// getByteDataOf(dataBS3.sublist(84, 86)).getUint16(0, Endian.big);
// var TableTabulation3 =
// getByteDataOf(dataBS3.sublist(86, 88)).getUint16(0, Endian.big);
// var TotalByTicketingMachine =
// getByteDataOf(dataBS3.sublist(88, 90)).getUint16(0, Endian.big);
// //update m80Dynamic.conf
// Setting.m80dynamicConfig.fmturi = SalesAggregate;
// Setting.m80dynamicConfig.fmtshima = IslandAggregation;
// Setting.m80dynamicConfig.fmtdai = TableTabulation3;
// Setting.m80dynamicConfig.fmtissu = TotalByTicketingMachine;
// Setting.savem80DynamicConfig();
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $BS_RESPONSE受信...AckOK');
// Logger.info("Received BS Response: ${dataBS3.toString()}");
// } else {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $BS_RESPONSE受信...AckFail');
// Logger.error("Request BS via GRPC error : ${sendBSres3.errMsg}");
// await closeApp();
// }
// }
// if (sendBSres3 is Failure) {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $BS_RESPONSE受信...AckFail');
// Logger.error(
// "Request BS via GRPC error : ${sendBSres3.errorResponse.toString()}");
// await closeApp();
// }
// // Request BS
// await Future.delayed(const Duration(milliseconds: 1000));
// Logger.info('Send BS command via GRPC');
// dtnow = DateTime.now();
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $BS_REQUEST送信...AckOK');
// var sendBSres4 = await startupservice.sendBS(BSRequestMessage(
// commandId: BS_REQUEST,
// protocol: Setting.m80serviceConfig.hcserviceProtocol,
// headerDestinationIpAddr:
// Setting.m80serviceConfig.hcserviceDestIpAddress,
// headerModelType: Setting.m80serviceConfig.hcserviceDestModeltype,
// headerEquipmentNumber: Setting.m80serviceConfig.hcserviceDestEquipnum,
// requestContent: 0,
// dataContent: 3));
// dtnow = DateTime.now();
// if (sendBSres4 is BSResponseMessage) {
// if (sendBSres4.err == false) {
// var dataBS4 = sendBSres4.dataresponse;
// var AssisMode = getByteDataOf(dataBS4.sublist(80, 81)).getUint8(0);
// var PaymentServicesAct =
// getByteDataOf(dataBS4.sublist(81, 82)).getUint8(0);
// var MarginDataErrorAggregation =
// getByteDataOf(dataBS4.sublist(82, 83)).getUint8(0);
// //update m80Dynamic
// Setting.m80dynamicConfig.rentrow = PaymentServicesAct;
// Setting.m80dynamicConfig.rentrepair = MarginDataErrorAggregation;
// Setting.m80dynamicConfig.assistmode = AssisMode;
// Setting.savem80DynamicConfig();
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $BS_RESPONSE受信...AckOK');
// Logger.info("Received BS Response: ${dataBS4.toString()}");
// } else {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $BS_RESPONSE受信...AckFail');
// Logger.error("Request BS via GRPC error : ${sendBSres4.errMsg}");
// await closeApp();
// }
// }
// if (sendBSres4 is Failure) {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $BS_RESPONSE受信...AckFail');
// Logger.error(
// "Request BS via GRPC error : ${sendBSres4.errorResponse.toString()}");
// await closeApp();
// }
// setprocessValue(0.4);
// // Request BU
// await Future.delayed(const Duration(milliseconds: 1000));
// Logger.info('Send BU command via GRPC');
// dtnow = DateTime.now();
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $BU_REQUEST送信...AckOK');
// var sendBUres1 = await startupservice.sendBU(BURequestMessage(
// commandId: BU_REQUEST,
// protocol: Setting.m80serviceConfig.hcserviceProtocol,
// headerDestinationIpAddr:
// Setting.m80serviceConfig.hcserviceDestIpAddress,
// headerModelType: Setting.m80serviceConfig.hcserviceDestModeltype,
// headerEquipmentNumber: Setting.m80serviceConfig.hcserviceDestEquipnum,
// requestContent: 0,
// dataContent: 3));
// dtnow = DateTime.now();
// if (sendBUres1 is BUResponseMessage) {
// if (sendBUres1.err == false) {
// //UPS replacement date
// List DataUPSReplacementDate = sendBUres1.dataresponse.sublist(80, 87);
// String UPSDate = '';
// for (var number in DataUPSReplacementDate) {
// int number_div = (number ~/ 16);
// UPSDate += number_div.toString();
// int number_mod = (number % 16);
// UPSDate += number_mod.toString();
// }
// //save m80Dynamic.conf YYYYMMDDhhmmss()
// Setting.m80dynamicConfig.upsdate = UPSDate;
// Setting.savem80DynamicConfig();
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $BU_RESPONSE受信...AckOK');
// Logger.info(
// "Received BU Response: ${sendBUres1.dataresponse.toString()}");
// } else {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $BU_RESPONSE受信...AckFail');
// Logger.error("Request BU via GRPC error : ${sendBUres1.errMsg}");
// await closeApp();
// }
// }
// if (sendBUres1 is Failure) {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $BU_RESPONSE受信...AckFail');
// Logger.error(
// "Request BU via GRPC error : ${sendBUres1.errorResponse.toString()}");
// await closeApp();
// }
// // Request BU
// await Future.delayed(const Duration(milliseconds: 1000));
// Logger.info('Send BU command via GRPC');
// dtnow = DateTime.now();
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $BU_REQUEST送信...AckOK');
// var sendBUres2 = await startupservice.sendBU(BURequestMessage(
// commandId: BU_REQUEST,
// protocol: Setting.m80serviceConfig.hcserviceProtocol,
// headerDestinationIpAddr:
// Setting.m80serviceConfig.hcserviceDestIpAddress,
// headerModelType: Setting.m80serviceConfig.hcserviceDestModeltype,
// headerEquipmentNumber: Setting.m80serviceConfig.hcserviceDestEquipnum,
// requestContent: 0,
// dataContent: 6));
// dtnow = DateTime.now();
// if (sendBUres2 is BUResponseMessage) {
// if (sendBUres2.err == false) {
// var dataBU2 = sendBUres2.dataresponse;
// var ARCSettings = getByteDataOf(dataBU2.sublist(80, 81)).getUint8(0);
// var ARCSettingsTime =
// getByteDataOf(dataBU2.sublist(84, 86)).getUint16(0, Endian.big);
// var ARCSettingsReconCount =
// getByteDataOf(dataBU2.sublist(86, 88)).getUint16(0, Endian.big);
// var TASSettings = getByteDataOf(dataBU2.sublist(88, 89)).getUint8(0);
// var TASSettingsTime =
// getByteDataOf(dataBU2.sublist(92, 94)).getUint16(0, Endian.big);
// // update m80Dynamic.conf
// Setting.m80dynamicConfig.arcwatch = ARCSettings;
// Setting.m80dynamicConfig.arctime = ARCSettingsTime;
// Setting.m80dynamicConfig.arccnt = ARCSettingsReconCount;
// Setting.m80dynamicConfig.arcwatch = TASSettings;
// Setting.m80dynamicConfig.arctime = TASSettingsTime;
// Setting.savem80DynamicConfig();
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $BU_RESPONSE受信...AckOK');
// Logger.info(
// "Received BU Response: ${sendBUres2.dataresponse.toString()}");
// } else {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $BU_RESPONSE受信...AckFail');
// Logger.error("Request BU via GRPC error : ${sendBUres2.errMsg}");
// await closeApp();
// }
// }
// if (sendBUres2 is Failure) {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $BU_RESPONSE受信...AckFail');
// Logger.error(
// "Request BU via GRPC error : ${sendBUres2.errorResponse.toString()}");
// await closeApp();
// }
// // Request BU
// await Future.delayed(const Duration(milliseconds: 1000));
// Logger.info('Send BU command via GRPC');
// dtnow = DateTime.now();
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $BU_REQUEST送信...AckOK');
// var sendBUres3 = await startupservice.sendBU(BURequestMessage(
// commandId: BU_REQUEST,
// protocol: Setting.m80serviceConfig.hcserviceProtocol,
// headerDestinationIpAddr:
// Setting.m80serviceConfig.hcserviceDestIpAddress,
// headerModelType: Setting.m80serviceConfig.hcserviceDestModeltype,
// headerEquipmentNumber: Setting.m80serviceConfig.hcserviceDestEquipnum,
// requestContent: 0,
// dataContent: 7));
// dtnow = DateTime.now();
// if (sendBUres3 is BUResponseMessage) {
// if (sendBUres3.err == false) {
// var dataBU3 = sendBUres3.dataresponse;
// List dataTelephone = dataBU3.sublist(80, 96);
// List dataShipCode = dataBU3.sublist(96, 104);
// List dataSenderCode = dataBU3.sublist(104, 112);
// List dataPassWord = dataBU3.sublist(112, 120);
// List<String> Telephone =
// (dataTelephone.map((e) => e.toString()).toList());
// List<String> ShipCode =
// (dataShipCode.map((e) => e.toString()).toList());
// List<String> SenderCode =
// (dataSenderCode.map((e) => e.toString()).toList());
// List<String> PassWord =
// (dataPassWord.map((e) => e.toString()).toList());
// var THE3TEL = Telephone.join();
// var THE3SENDCODE = ShipCode.join();
// var THE3SRCCODE = SenderCode.join();
// var THE3PASSWORD = PassWord.join();
// // update m80Dynamic.conf
// Setting.m80dynamicConfig.the3Tel = THE3TEL;
// Setting.m80dynamicConfig.the3Sendcode = THE3SENDCODE;
// Setting.m80dynamicConfig.the3Srccode = THE3SRCCODE;
// Setting.m80dynamicConfig.the3Password = THE3PASSWORD;
// Setting.savem80DynamicConfig();
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $BU_RESPONSE受信...AckOK');
// Logger.info(
// "Received BU Response: ${sendBUres3.dataresponse.toString()}");
// } else {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $BU_RESPONSE受信...AckFail');
// Logger.error("Request BU via GRPC error : ${sendBUres3.errMsg}");
// await closeApp();
// }
// }
// if (sendBUres3 is Failure) {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $BU_RESPONSE受信...AckFail');
// Logger.error(
// "Request BU via GRPC error : ${sendBUres3.errorResponse.toString()}");
// await closeApp();
// }
// // Request BU 4
// await Future.delayed(const Duration(milliseconds: 1000));
// Logger.info('Send BU command via GRPC');
// dtnow = DateTime.now();
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $BU_REQUEST送信...AckOK');
// var sendBUres4 = await startupservice.sendBU(BURequestMessage(
// commandId: BU_REQUEST,
// protocol: Setting.m80serviceConfig.hcserviceProtocol,
// headerDestinationIpAddr:
// Setting.m80serviceConfig.hcserviceDestIpAddress,
// headerModelType: Setting.m80serviceConfig.hcserviceDestModeltype,
// headerEquipmentNumber: Setting.m80serviceConfig.hcserviceDestEquipnum,
// requestContent: 0,
// dataContent: 8));
// dtnow = DateTime.now();
// if (sendBUres4 is BUResponseMessage) {
// if (sendBUres4.err == false) {
// log('${sendBUres4.dataresponse}');
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $BU_RESPONSE受信...AckOK');
// Logger.info(
// "Received BU Response: ${sendBUres4.dataresponse.toString()}");
// } else {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $BU_RESPONSE受信...AckFail');
// Logger.error("Request BU via GRPC error : ${sendBUres4.errMsg}");
// await closeApp();
// }
// }
// if (sendBUres4 is Failure) {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $BU_RESPONSE受信...AckFail');
// Logger.error(
// "Request BU via GRPC error : ${sendBUres4.errorResponse.toString()}");
// await closeApp();
// }
// setprocessValue(0.5);
// // Request ED
// await Future.delayed(const Duration(milliseconds: 1000));
// Logger.info('Send ED command via GRPC');
// dtnow = DateTime.now();
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $ED_REQUEST送信...AckOK');
// var sendEDres = await startupservice.sendED(EDRequestMessage(
// commandId: ED_REQUEST,
// protocol: Setting.m80serviceConfig.hcserviceProtocol,
// headerDestinationIpAddr:
// Setting.m80serviceConfig.hcserviceDestIpAddress,
// headerModelType: Setting.m80serviceConfig.hcserviceDestModeltype,
// headerEquipmentNumber: Setting.m80serviceConfig.hcserviceDestEquipnum,
// requestData: 1));
// dtnow = DateTime.now();
// if (sendEDres is EDResponseMessage) {
// if (sendEDres.err == false) {
// var dataED = sendEDres.dataresponse[0];
// List dataCompanyNumber = dataED.sublist(80, 84);
// List<String> CompanyNumber =
// (dataCompanyNumber.map((e) => e.toString()).toList());
// List dataOwnerCode = dataED.sublist(88, 92);
// List<String> OwnerCode =
// (dataOwnerCode.map((e) => e.toString()).toList());
// List dataStoreName = dataED.sublist(92, 112);
// List<String> StoreName =
// (dataStoreName.map((e) => e.toString()).toList());
// var CORP_NO = CompanyNumber.join();
// var StoreNumber =
// getByteDataOf(dataED.sublist(84, 86)).getUint16(0, Endian.big);
// var OWNER_CODE = OwnerCode.join();
// var MISE_NAME = StoreName.join();
// //update m80dynamic.conf
// Setting.m80dynamicConfig.corpNo = int.parse(CORP_NO);
// Setting.m80dynamicConfig.miseNo = StoreNumber;
// Setting.m80dynamicConfig.ownerCode = int.parse(OWNER_CODE);
// Setting.m80dynamicConfig.miseName = MISE_NAME;
// Setting.savem80DynamicConfig();
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $ED_RESPONSE受信...AckOK');
// Logger.info(
// "Received ED Response: ${sendEDres.dataresponse.toString()}");
// } else {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $ED_RESPONSE受信...AckFail');
// Logger.error("Request ED via GRPC error : ${sendEDres.errMsg}");
// await closeApp();
// }
// }
// if (sendEDres is Failure) {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $ED_RESPONSE受信...AckFail');
// Logger.error(
// "Request ED via GRPC error : ${sendEDres.errorResponse.toString()}");
// await closeApp();
// }
// setprocessValue(0.6);
// // Request FM
// await Future.delayed(const Duration(milliseconds: 1000));
// Logger.info('Send FM command via GRPC');
// dtnow = DateTime.now();
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $FM_REQUEST送信...AckOK');
// var sendFMres1 = await startupservice.sendFM(FMRequestMessage(
// commandId: FM_REQUEST,
// protocol: Setting.m80serviceConfig.hcserviceProtocol,
// headerDestinationIpAddr:
// Setting.m80serviceConfig.hcserviceDestIpAddress,
// headerModelType: Setting.m80serviceConfig.hcserviceDestModeltype,
// headerEquipmentNumber: Setting.m80serviceConfig.hcserviceDestEquipnum,
// requestType: 1));
// dtnow = DateTime.now();
// if (sendFMres1 is FMResponseMessage) {
// if (sendFMres1.err == false) {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $FM_RESPONSE受信...AckOK');
// Logger.info(
// "Received FM Response: ${sendFMres1.dataresponse.toString()}");
// await closeApp();
// } else {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $FM_RESPONSE受信...AckFail');
// Logger.error("Request FM via GRPC error : ${sendFMres1.errMsg}");
// await closeApp();
// }
// }
// if (sendFMres1 is Failure) {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $FM_RESPONSE受信...AckFail');
// Logger.error(
// "Request FM via GRPC error : ${sendFMres1.errorResponse.toString()}");
// await closeApp();
// }
// // Request FM
// await Future.delayed(const Duration(milliseconds: 1000));
// Logger.info('Send FM command via GRPC');
// dtnow = DateTime.now();
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $FM_REQUEST送信...AckOK');
// var sendFMres2 = await startupservice.sendFM(FMRequestMessage(
// commandId: FM_REQUEST,
// protocol: Setting.m80serviceConfig.hcserviceProtocol,
// headerDestinationIpAddr:
// Setting.m80serviceConfig.hcserviceDestIpAddress,
// headerModelType: Setting.m80serviceConfig.hcserviceDestModeltype,
// headerEquipmentNumber: Setting.m80serviceConfig.hcserviceDestEquipnum,
// requestType: 2));
// dtnow = DateTime.now();
// List<Map<String, dynamic>> subRecordA1List = [];
// if (sendFMres2 is FMResponseMessage) {
// if (sendFMres2.err == false) {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $FM_RESPONSE受信...AckOK');
// Logger.info(
// "Received FM Response: ${sendFMres2.dataresponse.toString()}");
// var numberOfSubrecord =
// byteArrayToInt(sendFMres2.dataresponse.sublist(74, 76));
// for (var i = 0; i < numberOfSubrecord; i++) {
// var subRecordA1 = getSubRecordA1(
// sendFMres2.dataresponse.sublist(76 + 44 * i, 76 + 44 * (i + 1)));
// subRecordA1List.add(subRecordA1);
// }
// } else {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $FM_RESPONSE受信...AckFail');
// Logger.error("Request FM via GRPC error : ${sendFMres2.errMsg}");
// await closeApp();
// }
// }
// if (sendFMres2 is Failure) {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $FM_RESPONSE受信...AckFail');
// Logger.error(
// "Request FM via GRPC error : ${sendFMres2.errorResponse.toString()}");
// await closeApp();
// }
// // Request FM
// await Future.delayed(const Duration(milliseconds: 1000));
// Logger.info('Send FM command via GRPC');
// dtnow = DateTime.now();
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $FM_REQUEST送信...AckOK');
// var sendFMres3 = await startupservice.sendFM(FMRequestMessage(
// commandId: FM_REQUEST,
// protocol: Setting.m80serviceConfig.hcserviceProtocol,
// headerDestinationIpAddr:
// Setting.m80serviceConfig.hcserviceDestIpAddress,
// headerModelType: Setting.m80serviceConfig.hcserviceDestModeltype,
// headerEquipmentNumber: Setting.m80serviceConfig.hcserviceDestEquipnum,
// requestType: 3));
// dtnow = DateTime.now();
// List<Map<String, dynamic>> subRecordG1List = [];
// if (sendFMres3 is FMResponseMessage) {
// if (sendFMres3.err == false) {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $FM_RESPONSE受信...AckOK');
// Logger.info(
// "Received FM Response: ${sendFMres3.dataresponse.toString()}");
// var numberOfSubrecord =
// byteArrayToInt(sendFMres3.dataresponse.sublist(74, 76));
// for (var i = 0; i < numberOfSubrecord; i++) {
// var subRecordG1 = getSubRecordG1(
// sendFMres3.dataresponse.sublist(76 + 44 * i, 76 + 44 * (i + 1)));
// subRecordG1List.add(subRecordG1);
// }
// } else {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $FM_RESPONSE受信...AckFail');
// Logger.error("Request FM via GRPC error : ${sendFMres3.errMsg}");
// await closeApp();
// }
// }
// if (sendFMres3 is Failure) {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $FM_RESPONSE受信...AckFail');
// Logger.error(
// "Request FM via GRPC error : ${sendFMres3.errorResponse.toString()}");
// await closeApp();
// }
// // Insert to hcmap
// if (sendFMres2 is FMResponseMessage &&
// !sendFMres2.err &&
// sendFMres3 is FMResponseMessage &&
// !sendFMres3.err) {
// if (subRecordA1List.length != subRecordG1List.length) {
// Logger.error(
// "Response FM via GRPC error : number of subrecord A1: ${subRecordA1List.length} # number of subrecord G1: ${subRecordG1List.length}");
// } else {
// List<Map<String, dynamic>> rows = [];
// for (var i = 0; i < subRecordA1List.length; i++) {
// subRecordA1List[i].addAll(subRecordG1List[i]);
// rows.add(subRecordA1List[i]);
// }
// try {
// await provider.insertHCMap(rows);
// } catch (e) {
// Logger.error("Insert to hcmap.sqlite error: $e");
// }
// }
// }
// // Request FM
// await Future.delayed(const Duration(milliseconds: 1000));
// Logger.info('Send FM command via GRPC');
// dtnow = DateTime.now();
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $FM_REQUEST送信...AckOK');
// var sendFMres4 = await startupservice.sendFM(FMRequestMessage(
// commandId: FM_REQUEST,
// protocol: Setting.m80serviceConfig.hcserviceProtocol,
// headerDestinationIpAddr:
// Setting.m80serviceConfig.hcserviceDestIpAddress,
// headerModelType: Setting.m80serviceConfig.hcserviceDestModeltype,
// headerEquipmentNumber: Setting.m80serviceConfig.hcserviceDestEquipnum,
// requestType: 4));
// dtnow = DateTime.now();
// if (sendFMres4 is FMResponseMessage) {
// if (sendFMres4.err == false) {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $FM_RESPONSE受信...AckOK');
// Logger.info(
// "Received FM Response: ${sendFMres4.dataresponse.toString()}");
// } else {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $FM_RESPONSE受信...AckFail');
// Logger.error("Request FM via GRPC error : ${sendFMres4.errMsg}");
// await closeApp();
// }
// }
// if (sendFMres4 is Failure) {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $FM_RESPONSE受信...AckFail');
// Logger.error(
// "Request FM via GRPC error : ${sendFMres4.errorResponse.toString()}");
// await closeApp();
// }
// setprocessValue(0.7);
// // Request DY
// await Future.delayed(const Duration(milliseconds: 1000));
// Logger.info('Send DY command via GRPC');
// dtnow = DateTime.now();
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $DY_REQUEST送信...AckOK');
// var sendDYres = await startupservice.sendDY(DYRequestMessage(
// commandId: DY_REQUEST,
// protocol: Setting.m80serviceConfig.hcserviceProtocol,
// headerDestinationIpAddr:
// Setting.m80serviceConfig.hcserviceDestIpAddress,
// headerModelType: Setting.m80serviceConfig.hcserviceDestModeltype,
// headerEquipmentNumber: Setting.m80serviceConfig.hcserviceDestEquipnum));
// dtnow = DateTime.now();
// if (sendDYres is DYResponseMessage) {
// if (sendDYres.err == false) {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $DY_RESPONSE受信...AckOK');
// Logger.info(
// "Received DY Response: ${sendDYres.dataresponse.toString()}");
// } else {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $DY_RESPONSE受信...AckFail');
// Logger.error("Request DY via GRPC error : ${sendDYres.errMsg}");
// await closeApp();
// }
// }
// if (sendDYres is Failure) {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $DY_RESPONSE受信...AckFail');
// Logger.error(
// "Request DY via GRPC error : ${sendDYres.errorResponse.toString()}");
// await closeApp();
// }
// setprocessValue(0.8);
// // Request E5
// await Future.delayed(const Duration(milliseconds: 1000));
// Logger.info('Send E5 command via GRPC');
// dtnow = DateTime.now();
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $E5_REQUEST送信...AckOK');
// var sendE5res = await startupservice.sendE5(E5RequestMessage(
// commandId: E5_REQUEST,
// protocol: Setting.m80serviceConfig.hcserviceProtocol,
// headerDestinationIpAddr:
// Setting.m80serviceConfig.hcserviceDestIpAddress,
// headerModelType: Setting.m80serviceConfig.hcserviceDestModeltype,
// headerEquipmentNumber: Setting.m80serviceConfig.hcserviceDestEquipnum));
// dtnow = DateTime.now();
// if (sendE5res is E5ResponseMessage) {
// if (sendE5res.err == false) {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $DY_RESPONSE受信...AckOK');
// Logger.info(
// "Received E5 Response: ${sendE5res.dataresponse.toString()}");
// } else {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $DY_RESPONSE受信...AckFail');
// Logger.error("Request E5 via GRPC error : ${sendE5res.errMsg}");
// await closeApp();
// }
// }
// if (sendE5res is Failure) {
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} $DY_RESPONSE受信...AckFail');
// Logger.error(
// "Request E5 via GRPC error : ${sendE5res.errorResponse.toString()}");
// await closeApp();
// }
// setprocessValue(0.9);
// await Future.delayed(const Duration(milliseconds: 500));
// // Compare setting and map
// dtnow = DateTime.now();
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} データ解析処理開始');
// dtnow = DateTime.now();
// adddisplayLog(
// '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} データ解析処理完了');
// setprocessValue(1.0);
// await Future.delayed(const Duration(milliseconds: 700));
await Future.delayed(const Duration(seconds: 2));
// Go to main menu
_mainpageViewmodel.setcurrentRoute(routes.MainMenuRoute);
}
}
// Get subrecord A1 of FM from byte array response
Map<String, dynamic> getSubRecordA1(List<int> byteArray) {
return {
'LOGIC_TERM_NO': byteArrayToInt(byteArray.sublist(4, 8)),
'DEVICE_CODE': byteArrayToInt(byteArray.sublist(8, 12)),
'DEVICE_NAME': byteArrayToString(byteArray.sublist(12, 22)),
'NET_TYPE_NO': byteArray[22],
'PHYSIC_NET_NO': byteArray[23],
'PHYSIC_TERM_NO': byteArrayToInt(byteArray.sublist(24, 26)),
'SAME_DEV_CNT': byteArrayToInt(byteArray.sublist(26, 28)),
'PARENT_ITN': byteArrayToInt(byteArray.sublist(28, 32)),
'CHILD_CNT': byteArrayToInt(byteArray.sublist(32, 34)),
'VERSION': byteArrayToString(byteArray.sublist(34, 42)),
};
}
// Get subrecord G1 of FM from byte array response
Map<String, dynamic> getSubRecordG1(List<int> byteArray) {
return {
'IP_ADDER': byteArrayToIP(byteArray.sublist(16, 20)),
'VER_8': byteArrayToString(byteArray.sublist(24, 32)),
'GROUP_KIND': byteArray[32],
'GROUP_CNT': byteArray[33],
'D_NO': byteArrayToInt(byteArray.sublist(34, 36)),
};
}
// Convert byte array to int
int byteArrayToInt(List<int> byteArray) {
if (byteArray.length == 2) {
return ByteData.sublistView(Uint8List.fromList(byteArray))
.getInt16(0, ENDIAN_TYPE);
} else if (byteArray.length == 4) {
return ByteData.sublistView(Uint8List.fromList(byteArray))
.getInt32(0, ENDIAN_TYPE);
} else {
throw ArgumentError("Invalid byte array length");
}
}
// Convert byte array to string
String byteArrayToString(List<int> byteArray) {
return String.fromCharCodes(byteArray).replaceAll('\x00', '');
}
// Convert byte array to ip format
String byteArrayToIP(List<int> byteArray) {
return "${byteArray[0]}.${byteArray[1]}.${byteArray[2]}.${byteArray[3]}";
}
import 'package:flutter/material.dart';
import 'package:m80app/constants/constants.dart';
import 'package:m80app/components/app_button.dart';
class CommonErrorDialog extends StatelessWidget {
final String title;
final String logerror;
final String devicecode;
final String content;
final double width = 720;
final double height = 480;
const CommonErrorDialog(
{super.key,
required this.title,
required this.logerror,
required this.devicecode,
required this.content});
@override
Widget build(BuildContext context) {
return Dialog(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8.0),
),
child: SizedBox(
width: width,
height: height,
child: DecoratedBox(
decoration: const BoxDecoration(color: COLOR_WHITE),
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
// Header
Container(
width: double.infinity,
color: COLOR_RED, // Replace with your desired color
child: Padding(
padding: const EdgeInsets.all(16.0),
child: Text(
title,
style: TEXT_STYLE.copyWith(color: COLOR_WHITE),
),
),
),
// Body (Content)
Container(
child: Padding(
padding: const EdgeInsets.all(50.0),
child: Text(logerror, style: TEXT_STYLE),
),
),
Container(
alignment: Alignment.bottomLeft,
child: Padding(
padding: const EdgeInsets.all(10.0),
child: Text('コード:' '${devicecode}', style: TEXT_STYLE),
),
),
Container(
alignment: Alignment.bottomLeft,
child: Padding(
padding: const EdgeInsets.all(10.0),
child: Text('ログ:' '${content}', style: TEXT_STYLE),
),
),
// Footer (Buttons)
Expanded(
child: Container(
margin: const EdgeInsets.only(
bottom: 35), // Always on the bottom
child: Align(
alignment: Alignment.bottomCenter,
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
CustomButton(
text: 'はい',
onPressed: () {
Navigator.of(context).pop(
true); // Return true when 'Yes' is pressed
}),
],
),
)),
)
],
),
),
),
);
}
}