本篇功能演示
https://jhou-bucket.oss-cn-shanghai.aliyuncs.com/2019-10-18%20%E5%A3%81%E8%99%8E%E6%B5%8B%E8%AF%84/2019-10-24%20%E7%81%AF%E5%85%89%E6%8E%A7%E5%88%B6/light%20demo.mp4
在拿到壁虎后,我对壁虎的外设极为感兴趣。经过了近期的简单研究,我决定给各位c#玩家一个惊喜。
那就是,本次套件的使用将全程使用C#编写。
没错,你没有看错,我将用c#编写程序和代码,跑在壁虎的安卓5.1上
好了,开头就都这了~接下去开始本篇内容
本篇目的:进一步了解壁虎的硬件预留和接口,测试出调用的方法
首先映入眼帘看到第一眼,就知道这设备顶上有一排补光灯。(真的是亮,但是亮度可以调节)
那第一步,就来新建工程,唤醒灯组吧!
首先,相信使用c#的小宝贝们一定知道,xamarin开发。该技术允许c#玩家开发安卓(手机、手表、电视)、IOS、win phone应用,简直是一大杀器,更重点是,似乎vs2017之后就可以安装。简直不要太爽快了。
ps:机缘巧合,up主听说xamarin已经有数年了,但从未使用过,总算有机会正式接触该技术。也是第一次使用,如有错误请多谅解。
话不多说,我们开始吧!
新建xamarin android xaml项目。(up主 工作中经常用到wpf,所以xaml的模式比较容易上手)
那首先先来个标准的hello world到壁虎中去。
将壁虎的系统打开开发者模式(关于设备,连点版本号5次)
随后插入产品附赠的调试线到电脑USB口上。
如果一切正常,VisualStudio的运行处就能看到设备名字和版本
点击运行,将hello world项目装入壁虎中
(抱歉,暂没摸索出如何截屏,插图方式硬核)
恭喜你,达成了小试牛刀!成功将c#项目运行于安卓之上!
(嗝~)
好的,我们来做一些简单的修改(!@#!@#%!@#%$!)
界面就变成了这样子~
接着我们来新建一个.net standard类库项目,这个项目将专注于设备的控制。第一个目的是控制上方的补光灯,取名暂时就叫GoJhou.Gekko.Controllers吧
将Class更名为LightController
根据《CB008-壁虎套件外设接口软件调用文档.docx》中的说明,我们仅需要对目录为"/sys/class/leds/wled/brightness"文件进行写入操作即可成功控制灯光。
这就极度方便!
最后我的LightController封装如下:
[AddINotifyPropertyChangedInterface]
public class BaseController : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged([CallerMemberName]string PropertyName="")
{
PropertyChanged(this, new PropertyChangedEventArgs(PropertyName));
}
}
public class LightController : BaseController
{
private static LightController instance;
public static LightController Instance
{
get
{
if (instance == null)
instance = new LightController();
return instance;
}
}
public LightController()
{
Brightness = 0;
}
private readonly string IOPath = "/sys/class/leds/wled/brightness";
private int _brightness = 0;
public int Brightness
{
get => _brightness;
set
{
try
{
//位操作,可以将目标值锁定在0~255的有效值范围内,以免勿输入了非法的值
value = value & 0xff;
//上方等效于下方
//if (value > 255)
// value = 255;
//if (value < 0)
// value = 256-value;
byte[] b = Encoding.UTF8.GetBytes(value.ToString());
using (FileStream fs = new FileStream(IOPath, FileMode.Create))
{
fs.Write(b, 0, b.Length);
}
_brightness = value;
OnPropertyChanged();
}
catch (Exception ex)
{
//如果出现异常了,强制进入断点中断到此处
Debugger.Break();
}
}
}
}
最后再为UI稍作数据绑定,更新如下
后台代码
public partial class MainPage : ContentPage
{
public LightController LightController => LightController.Instance;
public MainPage()
{
InitializeComponent();
}
}
这条信息很有用:
xamarin开发。该技术允许c#玩家开发安卓(手机、手表、电视)、IOS、win phone应用,简直是一大杀器,更重点是,似乎vs2017之后就可以安装。简直不要太爽快了。
链接:https://pan.baidu.com/s/1KVGD_HZUAbC0KL15H1G0rw
提取码:h99q
您好,请问《CB008-壁虎套件外设接口软件调用文档》这个文档怎么获取呢???官网上没找到,谢谢
期待您的回复