在前两篇中,路由器已经刷入OpenWrt系统并安装了Ser2net等相关软件,现在就可以写一个客户端与路由器进行Socket通信。一共有三个应用,桌面应用采用WPF编写,Windows Phone应用采用Windows Phone 8.1 Runtime架构,Win8应用也是Runtime,其实直接把WinPhone代码复制过去就可以直接生成一个Win8应用。
本篇记录主要记录WinPhone应用编写过程。
应用功能:利用重力感应控制小车左转、右转、前进、后退,点击视频可以查看车载摄像头视频画面。
先贴图,基本界面是这样,大部分都是拖出来的,还没有进行认真布局。
利用Visual Studio 创建一个Windows Phone 8.1空白应用程序(Runtime版本)。然后就可以把上面一大堆TextBlock和Button控件拖出来。
左上角一堆TextBlock分别是X-axis(加速度计x值),Y-axis(加速度计y值),Z-axis(加速度计z值),X2、Y2是红线上面一点的坐标。
中间那个”山“,左右两个是ProcessingBar(进度条),下面一条是蓝色的线,中间红色的线以两条线的交点为原点,随着手机左右摇摆而转动。
- 如何进行Socket通信
MSDN参考:http://msdn.microsoft.com/library/windows/apps/br226882
这里用的是StreamSocket Class。
try
{
//新建hostname,用服务器ip地址初始化
StatusText.Text = "正在尝试连接。。。";
HostName serverHost = new HostName("192.168.1.1");
//调用连接异步方法,2001为ser2net程序的端口号
await clientSocket.ConnectAsync(serverHost, "2001");
connected = true;
StatusText.Text = "Connection established" + Environment.NewLine;
try
{
StatusText.Text = "正在尝试连接。。。";
HostName serverHost = new HostName("192.168.1.1");
await clientSocket.ConnectAsync(serverHost, "2001");
connected = true;
StatusText.Text = "Connection established" + Environment.NewLine;
ReceiveData();
}
catch (Exception exception)
{
StatusText.Tex