标签:通信协议 部分 ack raw process ice private 函数接口 art
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Threading; using System.Windows.Forms; namespace CallBackDemo { public partial class Form1 : Form,ICallBack { Device dev=new Device(); public Form1() { InitializeComponent(); dev.Start(); } private void button1_Click(object sender, EventArgs e) { dev.Query(this); } public void Process(int i) { MessageBox.Show(i.ToString()); } } public interface ICallBack { void Process(int i); } public class Device { public void Start() { Thread thread=new Thread(proc); thread.IsBackground = true; thread.Start(); } private ICallBack callBack; public void Query(ICallBack callBack) { this.callBack = callBack; query = 1; } private int query = 0; public void proc() { while (true) { Thread.Sleep(1000); if (query == 1) { if (callBack != null) { callBack.Process(100); } query = 0; } } } } }
换了公司,作为新人要写java的安卓代码。在处理串口的通信协议时,在解析好了串口协议内容后,数据的处理部分是要交给节目来完成的,串口线程只负责解析数据并提供数据,对这个数据怎么处理是应该交给界面来做的。比如,在协议里有一个温度数据,怎么处理数据在协议层是不知道的,怎么做呢,在建立协议层处理的时候就放一个回调函数接口在这里,也就是函数指针在这里。当协议层解析到对应数据后,根据函数指针来调用应用层的函数。
上面的一小段代码很好的完成了以上功能,得好好体会。
标签:通信协议 部分 ack raw process ice private 函数接口 art
原文地址:http://www.cnblogs.com/kanite/p/6034780.html