Flutter插件adderlink的特性与使用方法

Flutter插件adderlink的特性与使用方法

Flutter插件adderlink的特性

Adderlink Infinity系列

  • ✅ 登录
  • ✅ 注销
  • ✅ 获取设备列表
  • ✅ 获取通道列表
  • ❌ 获取预设
  • ✅ 连接通道
  • ❌ 连接到预设
  • ✅ 断开通道连接
  • ❌ 创建预设
  • ❌ 删除预设
  • ❌ 创建通道
  • ✅ 获取所有USB设备
  • ❌ 删除USB设备
  • ❌ 更新USB设备
  • ✅ 连接USB设备
  • ✅ 断开USB设备连接
  • ✅ 重启设备
  • ❌ 替换设备
  • ❌ 获取服务器
  • ❌ 设备识别

Flutter插件adderlink的使用方法

import 'package:adderlink/adderlink.dart';

Future<void> main() async {
  final chopper = ChopperClient(
    baseUrl: Uri.parse("http://192.168.1.100"),
    converter: AlifConverter(),
  );
  var adderlink = AdderlinkService.create(chopper);

  // 使用用户名和密码登录
  final l = await adderlink.login(
    username: '', // 请替换为实际的用户名
    password: '', // 请替换为实际的密码
  );
  final token = l.body?.body?.token;
  if (token == null) throw Exception('Failed to retrieve token');

  try {
    // 获取所有ALIF设备列表
    var devices = await adderlink.getDevices(token: token);

    // 打印每个扩展器的数据到控制台
    devices.body?.body?.devices.device.forEach(print);
  } catch (e) {
    print(e);
  } finally {
    // 注销以确保令牌不会保持活动状态并阻塞认证缓冲区
    final lr = await adderlink.logout(token: token);

    print(lr.body.toString());
  }
}

额外信息

问题和功能请求可以在这里提交:此处

API 是根据官方的 Adderlink API 文档 创建的。

完整示例Demo

以下是一个完整的示例Demo,展示了如何使用adderlink插件来控制Adderlink设备:

import 'package:flutter/material.dart';
import 'package:adderlink/adderlink.dart';
import 'package:chopper/chopper.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('Adderlink Example')),
        body: Center(child: Text('Check Console for Output')),
      ),
    );
  }
}

class AdderlinkExample extends StatefulWidget {
  [@override](/user/override)
  _AdderlinkExampleState createState() => _AdderlinkExampleState();
}

class _AdderlinkExampleState extends State<AdderlinkExample> {
  String output = '';

  [@override](/user/override)
  void initState() {
    super.initState();
    runAdderlinkExample();
  }

  Future<void> runAdderlinkExample() async {
    final chopper = ChopperClient(
      baseUrl: Uri.parse("http://192.168.1.100"),
      converter: AlifConverter(),
    );
    var adderlink = AdderlinkService.create(chopper);

    // 使用用户名和密码登录
    final l = await adderlink.login(
      username: '', // 请替换为实际的用户名
      password: '', // 请替换为实际的密码
    );
    final token = l.body?.body?.token;
    if (token == null) {
      setState(() {
        output = 'Failed to retrieve token';
      });
      return;
    }

    try {
      // 获取所有ALIF设备列表
      var devices = await adderlink.getDevices(token: token);

      // 打印每个扩展器的数据到控制台
      final deviceData = devices.body?.body?.devices.device;
      if (deviceData != null) {
        setState(() {
          output = deviceData.map((d) => d.toString()).join('\n');
        });
      } else {
        setState(() {
          output = 'No devices found';
        });
      }
    } catch (e) {
      setState(() {
        output = e.toString();
      });
    } finally {
      // 注销以确保令牌不会保持活动状态并阻塞认证缓冲区
      final lr = await adderlink.logout(token: token);

      print(lr.body.toString());
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: [
        Text(output),
      ],
    );
  }
}

// 在主应用中添加此示例
class MyHomePage extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Adderlink Example')),
      body: AdderlinkExample(),
    );
  }
}

更多关于Flutter插件adderlink的特性与使用方法的实战教程也可以访问 https://www.itying.com/category-92-b0.html

回到顶部