TOC

  1. Intro
  2. TagModel
  3. Structure
  4. TimeZones
  5. Units
  6. Grids
  7. Filters
  8. Zinc
  9. Json
  10. Trio
  11. Csv
  12. Rest
  13. Ops
  14. Auth
  15. VFDs
  16. Networks
  17. Energy
  18. Zones
  19. AHUs
  20. VAVs
  21. UnitaryEquips
  22. Chillers
  23. Boilers
  24. Tanks
  25. ElecPanels
  26. Lighting
  27. Builds
    1. 编译
    2. 步骤
    3. 组织
    4. 设计
    5. 文件格式
    6. 标签格式
  28. Bacnet
  29. ChangeLog
  30. License

Builds

编译

文档的源代码和本网站作为 BitBucket. 上的Mercurial存储库进行管理。每个官方的Haystack版本都作为自包含的zip文件打包,可以从 Downloads 选项卡下载。每个编译文件提供:

  1. 所有文档和标签定义的源代码
  2. 本地运行网站的能力
  3. 构建脚本从源重建文档

步骤

源代码和编译脚本以 Fantom 编程语言编写。您将需要安装Java VM以在本地运行网站或从源重建。一旦构建是下载的,最简单的方法就是调用 bin/fan 启动脚本。

// cd到安装构建的目录
cd ~/haystack-2.0.9/

// 在8080以外的端口上运行
bin/fan haystackws

// 在8080以外的端口上运行
bin/fan haystackws -port 8081

// 从源重建
bin/fan src/build.fan

有关设置和故障排除Fantom环境的更多信息,请参阅 Setup Docs 安装文档。

组织

构建使用以下目录结构进行组织:

bin/            // 启动脚本
etc/            // 配置文件,unit / tz数据库
lib/            // 运行时模块
  fan/          //  Fantom pod文件
  java/         // Java运行环境
src/            // 源代码的顶级目录
  build.fan     // 顶级构建脚本
  haystackws/   // haystackws pod的源代码
    docs/       // 源文件的fandoc格式
    equips/     // 设备点
    fan/        // Fantom源代码网站
    locale/     // 本地化翻译
    res/        // 样式表, 图像资源文件
    tags/       // 标签定义为三重格式

网站本身和所有文档主要来源于一个名为的单个pod haystackws。该网站建立在Fantom运行的网络框架之上。这些依赖关系以二进制格式包含 lib/fan

设计

网站整体设计如下:

  1. Main: 加载库并启动Web服务的引导代码
  2. HaystackLoader: 加载源文档和标签并进行编译 Lib
  3. Html: 加载程序使用的渲染器套件生成HTML
  4. Lib: 用于编译的文档和标签的不可变数据结构和HTML集

文件格式

文档用纯文本格式化为 fandoc

Fandoc超链接被广泛使用。支持以下链接格式:

标签格式

标签定义是格式为 Trio 文件的纯文本。每个标签本身被定义为一组标签:

以下是一个例子 maxVal

tag: maxVal
kind: Number
alsoSee: minVal, curVal
usedWith: point
docInclude: Structure#pointMinMax
doc:
   应用于 `point` 以定义从传感器读取的最大值或从命令/设定点写入。该值的单位必须匹配该点的 `unit` 标签。