生成されたコードを調べる
MicrocontrollerEmbedCodeは生成されたソースコードと,そのコードの他の特性を調べるのに使用できるMicrocontrollerCodeDataオブジェクトを返す.
Needs["MicrocontrollerKit`"]ℳ1 = MicrocontrollerEmbedCode[StateSpaceModel[{{}, {}, {}, {{1}}}, SamplingPeriod -> 1, SystemsModelLabels -> None], <|"Target" -> "ArduinoUno", "Inputs" -> "A0" -> "Analog", "Outputs" -> "3" -> "Analog"|>, "/dev/tty.usbmodem14101"]"SourceCode"特性を使って生成されたソースコードを取得する.
Framed[StringTrim[ℳ1["SourceCode"]], Background -> Lighter[LightGreen, 0.4]]ソースコードは特定の作業ディレクトリに送り出すこともできる.
wdir = CreateDirectory[];ℳ2 = MicrocontrollerEmbedCode[StateSpaceModel[{{}, {}, {}, {{1}}}, SamplingPeriod -> 1, SystemsModelLabels -> None], <|"Target" -> "ArduinoUno", "Inputs" -> "Serial", "Outputs" -> "Serial"|>, "/dev/tty.usbmodem14101", <|"WorkingDirectory" -> wdir, "CleanIntermediate" -> False|>]FileNames["*", wdir]ソースコードは生成されたコードすべての最も完全な情報を有しているが,マイクロコントローラのレジスタの特定の設定が何を意味しているのかを理解するためには,マイクロコントローラのデータシートも相互参照する必要がある.
Dataset[ℳ2["Serial"]]生成されたコードの対象となるマイクロコントローラの指定を示す特性もある.
Table[{p, ℳ1[p]}, {p, {"Target", "Microcontroller", "OperatingVoltage", "ClockFrequency"}}];Grid[%, Background -> {None, {{LightBlue, White}}}, Frame -> True]Framed[StringTrim[ℳ1["StandardError"]], Background -> Lighter[LightGray, 0.8]]ℳ1["ExitCode"]Table[{p, ℳ1[p]}, {p, {"SourceCodeByteCount", "MachineCodeByteCount"}}];Grid[%, Background -> {None, {{Lighter[Brown, 0.7], White}}}, Frame -> True]ℳ2["Properties"];Grid[Partition[%, 4], Frame -> All, Background -> {None, {{LightYellow, White}}}]ℳ1["Serial"]