I want to know how to send data to another class.
Imported from gRPC data,List convert to String and send HomePage Class
Finally, I want to express the data that was imported in a chat message.
I copied it from YouTube, so I don't have enough code.
class Client{
var ro;
var de = Int64.parseRadix('24A16057F615', 16);
var gw;
List<int> da;
ExProtoClient stub = ExProtoClient(
ClientChannel('172.22.144.1', port: 5054,
options: const ChannelOptions(
credentials: ChannelCredentials.insecure())
));
final box = new ExMessage();
Future<ExMessage> sendMessage() async {
await stub.exClientstream(box
..gwId = 0x51894B30
..route = 1835139072
..dataUnit = [0x01, 0x03, 0x00, 0x65, 0x00, 0x28, 0xAD, 0xDE]
..deviceId = de
);
return(box);
}
Future<ExMessage> receiveMessage() async {
var request = ExMessage();
await stub.exServerstream(request).listen((response) {
if (response.dataUnit != null){
ro = response.route;
da = response.dataUnit;
de = response.deviceId;
gw = response.gwId;
rxMtu(ro, gw, de, da);
}
else{
print('wating');
}
});
}
void rxMtu(int gwGroup, int gwId, Int64 deviceId, List payload)
{
String data = payload.join('-');
print(data);
}
}
It's a Class to send data
I want to send variable data from rxMtu.
class HomePage extends StatefulWidget {
@override
HomePageState createState() => new HomePageState();
static HomePageState of(BuildContext context) =>
context.findAncestorStateOfType<HomePageState>();
}
class HomePageState extends State<HomePage> {
var client = Client();
//TextEditor
TextEditingController _TextEditingController = TextEditingController();
List<ChatMessage> _chats = [];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("gRPC on Flutter"),
),
body: Column(
children: [
Expanded(
child: ListView.builder(
reverse: true,
itemBuilder: (context, index){
return _chats[index];
},
itemCount: _chats.length,
)),
Container(
padding: EdgeInsets.only(left: 8.0, right: 8.0),
child: Row(
children: [
Expanded(
child: TextField(
controller: _TextEditingController,
decoration: InputDecoration(hintText: "Send Message"),
onSubmitted: (String text){
_handleSubmitted(text);
},
),
),
SizedBox(
width: 8.0,
),
FlatButton(onPressed: (client.sendMessage)
, child: Text("Send"), color: Colors.greenAccent,),
],
),
),
],
),
);
}
void _handleSubmitted(String text){
Logger().d(text);
_TextEditingController.clear();
ChatMessage newChat = ChatMessage(text);
setState(() {
_chats.insert(0, newChat);
});
}
}
It's Class to receive data
I want to send the data to _handleSubmitted function
class ChatMessage extends StatelessWidget {
final String txt;
const ChatMessage(this.txt,{Key key,}) : super(key: key);
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 8),
child: Row(children: [
CircleAvatar(
backgroundColor: Colors.blueGrey,
child: Text("Data"),
),
SizedBox(width: 16,),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
"Payload",
style: TextStyle(fontWeight:FontWeight.bold ),
),
Text(txt),
],
)
)
],
),
);
}
}
this is chatMessage Class
Thank you for reading it.