{"id":6168,"date":"2023-02-20T16:42:13","date_gmt":"2023-02-20T07:42:13","guid":{"rendered":"https:\/\/solid.kmckk.com\/SOLID\/?p=6168"},"modified":"2023-02-20T16:55:01","modified_gmt":"2023-02-20T07:55:01","slug":"solid%e4%bd%bf%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86%e3%82%b7%e3%83%aa%e3%83%bc%e3%82%ba3-%e3%80%8c%e3%82%b3%e3%83%bc%e3%83%89%e3%82%ab%e3%83%90%e3%83%ac%e3%83%83%e3%82%b8%e3%80%8d-2-5-2-2-2-9","status":"publish","type":"post","link":"https:\/\/solid.kmckk.com\/SOLID\/archives\/6168","title":{"rendered":"SOLID for Raspberry Pi 4 (\u9023\u8f0916)"},"content":{"rendered":"<div id=\"pl-6168\"  class=\"panel-layout\" ><div id=\"pg-6168-0\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-6168-0-0\"  class=\"panel-grid-cell\" ><div id=\"panel-6168-0-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child\" data-index=\"0\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<p style=\"text-align: right;\">(2023\/2\/20)<\/p>\n<\/div>\n<\/div><\/div><div id=\"panel-6168-0-0-1\" class=\"so-panel widget widget_sow-editor\" data-index=\"1\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t><h3 class=\"widget-title\">Rust, SOLID-OS, Linux\u3067TCP\u901a\u4fe1<\/h3>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<p>\u4eca\u56de\u306f\u3001<br \/>\n\u30fb\u52a0\u901f\u5ea6\u30bb\u30f3\u30b5ADXL345\u3078\u306e\u5236\u5fa1\u3092\u5b8c\u5168\u306b\u96a0\u853d\u3059\u308b<br \/>\n\u30fbLinux\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u6a5f\u80fd\u3092SOLID-OS\u304b\u3089\u4f7f\u7528\u3059\u308b\u3053\u3068\u3092\u8a66\u3059<br \/>\n\u3092\u884c\u3044\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<p>\u305d\u308c\u304c\u7d42\u308f\u3063\u305f\u3089\u3001Linux\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u6a5f\u80fd\u3092SOLID-OS\u304b\u3089\u4f7f\u7528\u3059\u308b\u3053\u3068\u3092\u8a66\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<\/div>\n<\/div><\/div><div id=\"panel-6168-0-0-2\" class=\"so-panel widget widget_sow-editor panel-last-child\" data-index=\"2\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t><h3 class=\"widget-title\">\uff11\uff0e\u52a0\u901f\u5ea6\u30bb\u30f3\u30b5ADXL345\u3078\u306e\u5236\u5fa1\u3092\u5b8c\u5168\u306b\u96a0\u853d<\/h3>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<p>\u524d\u56de\u306fspi_adxl345\u30af\u30ec\u30fc\u30c8\u306e\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u3092\u3001<br \/>\n\u30fbinit()\u95a2\u6570<br \/>\n\u30fbregwrite()\u95a2\u6570<br \/>\n\u30fbregread()\u95a2\u6570<br \/>\n\u3068\u3057\u307e\u3057\u305f\u3002<\/p>\n<p>\u4eca\u56de\u306f\u52a0\u901f\u5ea6\u30bb\u30f3\u30b5ADXL345\u3078\u306e\u5236\u5fa1\u3092\u5b8c\u5168\u306b\u96a0\u853d\u3057\u3066\u3057\u307e\u3046\u3079\u304f\u3001<br \/>\n\u30fbinit()\u95a2\u6570\uff1aADXL345\u3078\u306e\u521d\u671f\u5316\u3092\u5b8c\u5168\u306b\u7d42\u308f\u3089\u305b\u308b<br \/>\n\u30fbcurrent_acceleration()\u95a2\u6570\uff1aX, Y, Z\u8ef8\u306e\u52a0\u901f\u5ea6\u5024\u3092\u53d6\u5f97\u3059\u308b\uff08Main\u95a2\u6570\u3067\u8a08\u7b97\u4e0d\u8981\u306b\u3059\u308b\uff09<br \/>\n\u3068\u3057\u307e\u3059\u3002<\/p>\n<p>&nbsp;<\/p>\n<h3>1.1\u00a0spi_adxl345\u30af\u30ec\u30fc\u30c8\u306einit()\u95a2\u6570<\/h3>\n<p>\u3053\u308c\u306f\u307e\u3063\u305f\u304f\u8907\u96d1\u3067\u306f\u306a\u3044\u306e\u3067\u3001\u3055\u3063\u3068\u98db\u3070\u3057\u307e\u3059\u3002<\/p>\n<p>\u30fbpub\u516c\u958b\u3057\u3066\u3044\u305finit()\u95a2\u6570\u3092\u3001private\u3068\u3057spi_init()\u3068\u540d\u79f0\u5909\u66f4\u3059\u308b\u3002<br \/>\n\u30fb\u65b0\u3057\u304fpub\u516c\u958b\u3059\u308binit()\u95a2\u6570\u3092\u4f5c\u6210\u3057\u3001ADXL345\u3078\u306e\u521d\u671f\u5316\u51e6\u7406\u3092\u66f8\u304f\u3002<\/p>\n<p>\u65b0\u3057\u304fpub\u516c\u958b\u3059\u308binit()\u95a2\u6570\u306f\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n<div style=\"padding: 10px; margin-bottom: 10px; border: 1px dotted #333333; background-color: #e0ffff;\">\n<pre><code>pub fn init() {\n    const BW_RATE: u8 = 0x2c;\n    const BW_RATE_VAL: u8 = 0x0b;\n    const DATA_FORMAT: u8 = 0x31;\n    const DATA_FORMAT_VAL: u8 = 0x0B; \/\/(4 mg\/LSB +-16g)\n    const POWER_CTL: u8 = 0x2D;\n    const POWER_CTL_VAL: u8 = 0x08;\n\n    spi_init();\n\n    \/\/ADXL345_init\n    regwrite(BW_RATE, BW_RATE_VAL);\n    regwrite(DATA_FORMAT, DATA_FORMAT_VAL);\n    regwrite(POWER_CTL, POWER_CTL_VAL);\n}<\/code><\/pre>\n<\/div>\n<p>&nbsp;<\/p>\n<h3>1.2 spi_adxl345\u30af\u30ec\u30fc\u30c8\u306bcurrent_acceleration()\u95a2\u6570\u4f5c\u6210<\/h3>\n<p>\u4e00\u5ea6\u547c\u3079\u3070\u3001X, Y, Z\u8ef8\u306e\u52a0\u901f\u5ea6\u5024\u304c\u4e00\u6c17\u306b\u8fd4\u3063\u3066\u304f\u308b\u3001\u3068\u3044\u3046\u95a2\u6570\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<br \/>\n\u3059\u306a\u308f\u3061\u3001\u623b\u308a\u5024\u304c\u8907\u6570\u306b\u306a\u308b\u3001\u3068\u3044\u3046\u4e8b\u3067\u3059\u3002<\/p>\n<p>\u3068\u3053\u308d\u3067\u8907\u6570\u306e\u623b\u308a\u5024\u3063\u3066\u3001\u3069\u3046\u66f8\u3051\u3070\u3044\u3044\u306e\u3067\u3057\u3087\u3046\u3002<br \/>\n\u914d\u5217\u3067\u30dd\u30a4\u30f3\u30bf\u8fd4\u3057\uff1f\u3044\u3084\u30dd\u30a4\u30f3\u30bf\u306f\u306a\u304b\u3063\u305f\u3093\u3060\u3063\u3051\u3002<br \/>\n\u305d\u308c\u3068\u3082pythonPython\u307f\u305f\u3044\u306a\u30bf\u30d7\u30eb\u578b\u3063\u3066\u3067\u304d\u305f\u308a\u3059\u308b\u306e\u304b\u306a\uff1f<\/p>\n<p>C\u306e\u914d\u5217\u30dd\u30a4\u30f3\u30bf\u8fd4\u3057\uff1a<\/p>\n<div style=\"padding: 10px; margin-bottom: 10px; border: 1px dotted #333333; background-color: #e0ffff;\">\n<pre><code>void func1 (int *val)\n{\n   *val++ = 0x02;\n   *val++ = 0x01;\n   *val = 0x03;\n}\n\nint main() {\n   int value[3];\n   func1(value);\n   return 0;\n}<\/code><\/pre>\n<\/div>\n<p>Python\u306e\u30bf\u30d7\u30eb\u578b\uff1a<\/p>\n<div style=\"padding: 10px; margin-bottom: 10px; border: 1px dotted #333333; background-color: #e0ffff;\">\n<pre><code>\ndef func1():\n   return 123, 2, 'string'\n<\/code><\/pre>\n<\/div>\n<p>Rust\u3067\u306f\u3053\u308c\u3089\u3001\u4e21\u65b9\u3067\u304d\u308b\u3088\u3046\u3067\u3059\u3002<\/p>\n<p>\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n<p>\u914d\u5217\u8fd4\u3057\uff1a<\/p>\n<div style=\"padding: 10px; margin-bottom: 10px; border: 1px dotted #333333; background-color: #e0ffff;\">\n<pre><code>pub fn current_acceleration_array() -&gt; [f32; 3] {\n    const DATAX0: u8 = 0x32;\n    const DATAY0: u8 = 0x34;\n    const DATAZ0: u8 = 0x36;\n\n    let mut axis_array: [f32; 3] = [0.0, 0.0, 0.0];\n\n    \/\/\u9023\u7d9a\u8907\u6570\u30ea\u30fc\u30c9\u3092\u884c\u3046\u3002-&gt; 0xc0\u3068OR\u3092\u3068\u308b\u3002\n     \/\/0.0392266=(4\/1000*9.80665)\n    axis_array[0] = regread(0xc0 | DATAX0) as f32 * 0.0392266;\n    axis_array[1] = regread(0xc0 | DATAY0) as f32 * 0.0392266;\n    axis_array[2] = regread(0xc0 | DATAZ0) as f32 * 0.0392266;\n\n    return axis_array;\n}\n<\/code><\/pre>\n<\/div>\n<p>\u4f7f\u3046\u4eba\uff1a<br \/>\nlet axis_array: [f32; 3] = spi_adxl345::current_acceleration_array();<\/p>\n<p>\u30bf\u30d7\u30eb\u578b\u8fd4\u3057\uff1a<\/p>\n<div style=\"padding: 10px; margin-bottom: 10px; border: 1px dotted #333333; background-color: #e0ffff;\">\n<pre><code>\npub fn current_acceleration_tuple() -&gt; (f32, f32, f32) {\n    const DATAX0: u8 = 0x32;\n    const DATAY0: u8 = 0x34;\n    const DATAZ0: u8 = 0x36;\n\n    \/\/\u9023\u7d9a\u8907\u6570\u30ea\u30fc\u30c9\u3092\u884c\u3046\u3002-&gt; 0xc0\u3068OR\u3092\u3068\u308b\u3002\n     \/\/0.0392266=(4\/1000*9.80665)\n    let x_axis = regread(0xc0 | DATAX0) as f32 * 0.0392266;\n    let y_axis = regread(0xc0 | DATAY0) as f32 * 0.0392266;\n    let z_axis = regread(0xc0 | DATAZ0) as f32 * 0.0392266;\n\n    return  (x_axis, y_axis, z_axis);\n}\n<\/code><\/pre>\n<\/div>\n<p>\u4f7f\u3046\u4eba\uff1a<br \/>\nlet (x_axis, y_axis, z_axis) = spi_adxl345::current_acceleration_tuple();<\/p>\n<p>\u3053\u3053\u3067\u4e00\u70b9\u3001\u6c17\u306b\u306a\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u3002<br \/>\n\u914d\u5217\u8fd4\u3057\u306e\u5834\u5408\u306e\u3001Rust\u30b3\u30fc\u30c9\u306b\u3064\u3044\u3066\u3001\u3067\u3059\u3002<\/p>\n<p>\u7b46\u8005\u306f\u5e38\u65e5\u9803\u304b\u3089\u3001\u30b5\u30d6\u30e2\u30b8\u30e5\u30fc\u30eb\u5185\u3067\u30ed\u30fc\u30ab\u30eb\u4ee5\u5916\u306e\u5909\u6570\u3092\u5b9a\u7fa9\u3059\u308b\u3053\u3068\u306f\u3001\u306a\u3093\u3068\u306a\u304f\u907f\u3051\u3066\u3044\u307e\u3059\u3002<br \/>\n\u306a\u306e\u3067\u3001current_acceleration_array()\u95a2\u6570\u5185\u3067\u623b\u308a\u5024\u3068\u306a\u308a\u5f97\u308b\u30e1\u30e2\u30ea\u306e\u65b0\u8a2d\u3001\u3053\u3053\u3067\u8a00\u3046\u3068<br \/>\nlet mut axis_array: [f32; 3] = [0.0, 0.0, 0.0];<br \/>\n\u3092\u884c\u3046\u306e\u306b\u5f37\u70c8\u306b\u9055\u548c\u611f\u304c\u3042\u308b\u306e\u3067\u3059\u3002\u3002\u3002<\/p>\n<p>C\u8a00\u8a9e\u3060\u3068\u3001\u3053\u308c\u3063\u3066<br \/>\nfloat *axis_array=(float *)malloc(sizeof(float)*3);<br \/>\n\u3092\u30b5\u30d6\u30eb\u30fc\u30c1\u30f3\u30b3\u30fc\u30eb\u306e\u6642\u306b\u6bce\u56de\u884c\u3063\u3066\u3044\u3066\u3001\u305d\u308c\u3092\u4e0a\u4f4d\u3067\u4f7f\u3063\u3066\u3044\u307e\u3059\u3002<br \/>\n\u3053\u3046\u3059\u308b\u3068\u3001\u30e1\u30e2\u30ea\u306e\u89e3\u653e\u3092\u5fd8\u308c\u304c\u3061\u3067\u3059\u3002<br \/>\n\u306a\u3093\u3060\u304b\u5371\u967a\u306a\u5302\u3044\u304c\u3057\u3066\u304d\u307e\u3059\u3002<\/p>\n<p>\u6bce\u5ea6\u6bce\u5ea6\u3042\u307e\u308a\u6df1\u304f\u306f\u8003\u3048\u3066\u306f\u3044\u307e\u305b\u3093\u304c\u3001\u3082\u3046\u4f53\u306b\u67d3\u307f\u3064\u3044\u3066\u3044\u3066\u3001\u3053\u3046\u3044\u3046\u30b3\u30fc\u30c9\u3092\u898b\u308b\u3068\u982d\u306e\u4e2d\u3067\u62d2\u5426\u53cd\u5fdc\u304c\u8d77\u3053\u3063\u3066\u3057\u307e\u3044\u307e\u3059\u3002<br \/>\n\u3069\u3046\u3057\u3066\u3082\u4ed5\u65b9\u306e\u306a\u3044\u6642\u306f\u3001\u5371\u967a\u4fe1\u53f7\u3092\u5bdf\u77e5\u3057\u3066\u5341\u5206\u6ce8\u610f\u3057\u305f\u4e0a\u3067\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3057\u307e\u3059\u3002<\/p>\n<p>\u3067\u3082\u3001\u3053\u308c\u306fRust\u3002<br \/>\n\u305d\u3046\u304b\u3001\u3053\u308c\u304c\u6240\u6709\u6a29\u304b\uff01<br \/>\n\u6240\u6709\u6a29\u304c\u4e0a\u4f4d\u95a2\u6570\u306b\u79fb\u3063\u3066\u3001\u4e0a\u4f4d\u95a2\u6570\u3067axis_array\u3092\u4f7f\u3044\u7d42\u308f\u308b\u3068\u3001\u305d\u3053\u3067\u30e9\u30a4\u30d5\u30bf\u30a4\u30e0\u304c\u7d42\u308f\u308b\u3001\u3068\u3044\u3046\u30a2\u30ec\u304b\uff01<\/p>\n<p>\u300c\u5371\u967a\u4fe1\u53f7\u3092\u5bdf\u77e5\u3057\u3066\u5341\u5206\u6ce8\u610f\u3057\u305f\u4e0a\u3067\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u300d\u3092\u3057\u306a\u3044\u3068\u3044\u3051\u306a\u3044\u30b1\u30fc\u30b9\u304c\u3042\u308b\u3001\u3068\u3044\u3046\u53cd\u7701\u3092\u6d3b\u304b\u3057\u3066\u3001Rust\u306e\u8a00\u8a9e\u4ed5\u69d8\u306f\u4f5c\u3089\u308c\u3066\u3044\u308b\u306e\u304c\u826f\u304f\u308f\u304b\u308a\u307e\u3059\u3002<\/p>\n<p>\u3067\u3059\u304c\u3001\u3053\u308c\u306b\u6163\u308c\u3066\u3057\u307e\u3046\u3068\u3001C\u8a00\u8a9e\u306b\u623b\u308c\u306a\u3044\u306e\u304b\u3082\u3057\u308c\u306a\u3044\u3001\u3068\u3044\u3046\u4e0d\u5b89\u3082\u82e5\u5e72\u3002<br \/>\n\u3053\u3046\u3044\u3046\u3001\u4f53\u306b\u67d3\u307f\u3064\u3044\u3066\u3044\u308b\u5371\u967a\u4fe1\u53f7\u304c\u4e00\u65e6\u30ea\u30bb\u30c3\u30c8\u3055\u308c\u3066\u3057\u307e\u3046\u3068\u3001C\u8a00\u8a9e\u306b\u623b\u3063\u305f\u3068\u304d\u306b\u304a\u304b\u3057\u306a\u30b3\u30fc\u30c9\u3092\u66f8\u304d\u305d\u3046\u306a\u6c17\u304c\u3057\u307e\u3059\u3002<\/p>\n<p>\u305d\u306e\u3042\u305f\u308a\u3001\uff23\u8a00\u8a9e\u3068Rust\u4e21\u65b9\u306e\u30d1\u30ef\u30fc\u30e6\u30fc\u30b6\u306e\u65b9\u306b\u3001\u982d\u306e\u5207\u308a\u66ff\u3048\u65b9\u3092\u4f1d\u6388\u3057\u3066\u3044\u305f\u3060\u304d\u305f\u3044\u3082\u306e\u3067\u3059\u3002<\/p>\n<p>\u304a\u3063\u3068\u672c\u7b4b\u304b\u3089\u96e2\u308c\u3066\u3057\u307e\u3044\u307e\u3057\u305f\u3002<br \/>\n\u3053\u308c\u3067\u914d\u5217\u8fd4\u3057\u3082\u30bf\u30d7\u30eb\u578b\u8fd4\u3057\u3082\u4f7f\u3048\u308b\u3053\u3068\u304c\u308f\u304b\u308a\u307e\u3057\u305f\u3002<br \/>\n\u914d\u5217\u8fd4\u3057\u306e\u65b9\u304c\u5f8c\u3005\u4f7f\u3044\u3084\u3059\u305d\u3046\u306a\u306e\u3067\u3001\u305d\u3061\u3089\u3092\u9078\u629e\u3059\u308b\u3053\u3068\u306b\u3057\u307e\u3059\u3002<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<\/div>\n<\/div><\/div><\/div><\/div><div id=\"pg-6168-1\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-6168-1-0\"  class=\"panel-grid-cell\" ><div id=\"panel-6168-1-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child\" data-index=\"3\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t><h3 class=\"widget-title\">\uff12\uff0eLinux\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u6a5f\u80fd\u3092SOLID-OS\u304b\u3089\u4f7f\u7528\u3059\u308b<\/h3>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<p>\u3055\u3066\u3001\u3053\u3053\u304b\u3089\u306fSPI\u306e\u3053\u3068\u306f\u4e00\u65e6\u5fd8\u308c\u307e\u3059\u3002<\/p>\n<p>SOLID-OS\u3067\u306f\u3001Linux\u5074\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u6a5f\u80fd\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>SOLID-OS\u3068 Linux\u306e\u4e8c\u3064\u306e OS\u304c\u30e9\u30ba\u30d1\u30a44\u4e0a\u3067\u540c\u6642\u306b\u52d5\u4f5c\u3057\u3066\u3044\u308b\u306e\u3067\u3059\u304c\uff08CPU0,1\u304c SOLID-0S\u3001CPU2,3\u304c Linux)\u3001Linux\u306b\u642d\u8f09\u3055\u308c\u3066\u3044\u308b TCP\/IP\u3092\u3001SOLID-OS\u304b\u3089\u3082 OS\u9593\u901a\u4fe1\u6a5f\u80fd\u3092\u4f7f\u3063\u3066\u3001\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>SOLID-OS\u304b\u3089\u306f\u666e\u901a\u306b socket\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u304c\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u3066\u3001<br \/>\nLinux\u3068\u306e SOLID-OS\u3068\u306e OS\u9593\u901a\u4fe1\u3092\u610f\u8b58\u305b\u305a\u3001\u30d7\u30ed\u30b0\u30e9\u30e0\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u3053\u306e\u6a5f\u80fd\u3092\u4f7f\u3063\u305f Rust\u3067\u30b5\u30f3\u30d7\u30eb\u304c\u3042\u308a\u307e\u3059\u306e\u3067\u3001\u30b3\u30fc\u30c9\u3092\u307e\u308b\u3063\u3068\u9802\u3044\u3066\u3057\u307e\u3044\u307e\u3057\u3087\u3046\u3002<\/p>\n<p><a href=\"https:\/\/github.com\/KyotoMicrocomputer\/solid-rapi4-examples\/tree\/main\/rust-server-tcpecho-std\">https:\/\/github.com\/KyotoMicrocomputer\/solid-rapi4-examples\/tree\/main\/rust-server-tcpecho-std<\/a><\/p>\n<p>\u3053\u306e\u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9\u3067\u306f\u3001TCP\/IP\u30b5\u30fc\u30d0\u3092\u7acb\u3061\u4e0a\u3052\u3066\u3044\u307e\u3059\u3002<br \/>\n\u30dd\u30fc\u30c8 7777\u3000\u3067\u30ea\u30c3\u30b9\u30f3\u3057\u3001\u53d7\u4fe1\u30c7\u30fc\u30bf\u3092\u305d\u306e\u307e\u307e\u30eb\u30fc\u30d7\u30d0\u30c3\u30af\u3059\u308b\u3001\u3068\u3044\u3046\u4ed5\u69d8\u3067\u3059\u3002<\/p>\n<p>&nbsp;<\/p>\n<h3>2.1\u00a0Cargo.toml\u7de8\u96c6<\/h3>\n<p>\u30b5\u30f3\u30d7\u30eb\u306e\u4f9d\u5b58\u95a2\u4fc2\u306f\u305d\u306e\u307e\u307e\u6301\u3063\u3066\u304d\u307e\u3059\u3002<\/p>\n<p>\u3059\u306a\u308f\u3061\u3001\u30b5\u30f3\u30d7\u30eb\u306eCargo.toml\u306b\u66f8\u304b\u308c\u3066\u3044\u308b\u3001[dependencies]\u90e8\u5206\u3092\u30b3\u30d4\u30fc\u3057\u3001\u81ea\u5206\u306eCargo.toml\u306b\u30da\u30fc\u30b9\u30c8\u3057\u307e\u3059\u3002<\/p>\n<p><a href=\"https:\/\/github.com\/KyotoMicrocomputer\/solid-rapi4-examples\/blob\/main\/rust-server-tcpecho-std\/rustapp\/Cargo.toml\">https:\/\/github.com\/KyotoMicrocomputer\/solid-rapi4-examples\/blob\/main\/rust-server-tcpecho-std\/rustapp\/Cargo.toml<\/a><\/p>\n<div style=\"padding: 10px; margin-bottom: 10px; border: 1px dotted #333333; background-color: #e0ffff;\">\n<pre><code>[dependencies]\nenv_logger = { version = \"0.9\", default-features = false }\nlog = \"0.4\"\n<\/code><\/pre>\n<\/div>\n<p>\u30ed\u30b0\u3092UART\u30bf\u30fc\u30df\u30ca\u30eb \u306b\u51fa\u529b\u3059\u308b\u305f\u3081\u306e\u30af\u30ec\u30fc\u30c8\u306e\u3088\u3046\u3067\u3059\u3002<\/p>\n<p>&nbsp;<\/p>\n<h3>2.2 Unstable feature\u306e\u6307\u5b9a<\/h3>\n<p>\u6b21\u306b\u3001\u30b5\u30f3\u30d7\u30eb\u3067\u4f7f\u7528\u3057\u3066\u3044\u308b\u201dunstable feature\u201d\u3092\u3001\u4f7f\u3048\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002<br \/>\n\u81ea\u5206\u306elib.rs\u5148\u982d\u306b\u4ee5\u4e0b\u3092\u8a18\u8ff0\u3057\u307e\u3059\u3002<\/p>\n<div style=\"padding: 10px; margin-bottom: 10px; border: 1px dotted #333333; background-color: #e0ffff;\">\n<pre><code>#![feature(let_else)] \/\/ let pattern = ... else { ... };\n#![feature(solid_ext)] \/\/ std::os::solid::prelude::AsRawFd\n<\/code><\/pre>\n<\/div>\n<p>&nbsp;<\/p>\n<h3>2.3 \u4f7f\u7528\u3059\u308bSOLID-OS\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u306e\u5b9a\u7fa9<\/h3>\n<p>\u6b21\u306b\u3001\u4f7f\u7528\u3059\u308bSOLID-OS\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002<\/p>\n<div style=\"padding: 10px; margin-bottom: 10px; border: 1px dotted #333333; background-color: #e0ffff;\">\n<pre><code>use std::{\n    io::{self, prelude::*},\n    net::{Shutdown, TcpListener, TcpStream},\n    os::solid::prelude::AsRawFd,\n    sync::mpsc,\n    time::Duration,\n};\n<\/code><\/pre>\n<\/div>\n<p>\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u64cd\u4f5c\u7cfb\u306e\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u3082\u3001\u3053\u3053\u3067\u5b9a\u7fa9\u3055\u308c\u3066\u3001\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u5185\u3067\u4f7f\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002<br \/>\nnet:: {Shutdown, TcpListener, TcpStream}<\/p>\n<p>&nbsp;<\/p>\n<h3>2.3 \u30b5\u30d6\u30e2\u30b8\u30e5\u30fc\u30eb\u3001main\u95a2\u6570\u5185\u306e\u8ffd\u52a0<\/h3>\n<p>\u5f8c\u306f\u3001\u30b5\u30f3\u30d7\u30eb\u306elib.rs\u304b\u3089\u3001\u30b5\u30d6\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u307e\u308b\u3063\u3068\u30b3\u30d4\u30fc\u3057\u3001main\u95a2\u6570\u5185\u3082\u540c\u3058\u3088\u3046\u306b\u30b3\u30d4\u30fc\u3057\u307e\u3059\u3002<\/p>\n<p><a href=\"https:\/\/github.com\/KyotoMicrocomputer\/solid-rapi4-examples\/blob\/main\/rust-server-tcpecho-std\/rustapp\/src\/lib.rs\">https:\/\/github.com\/KyotoMicrocomputer\/solid-rapi4-examples\/blob\/main\/rust-server-tcpecho-std\/rustapp\/src\/lib.rs<\/a><\/p>\n<p>\u3053\u3053\u307e\u3067\u306f\u3001\u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9\u3092\u62dd\u501f\u3057\u305f\u3060\u3051\u306a\u306e\u3067\u3001\u3072\u3063\u304b\u304b\u308b\u3053\u3068\u306f\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002<\/p>\n<p>\u3061\u306a\u307f\u306b\u3001\u3053\u306e\u30b5\u30f3\u30d7\u30eb\u3068\u540c\u7b49\u6a5f\u80fd\u306e\u5b9f\u88c5\u304c\u3001C++\u3067\u3082\u8a18\u8ff0\u3055\u308c\u3066\u3044\u307e\u3059\u3002<br \/>\n\u3054\u8208\u5473\u3042\u308b\u65b9\u3001\u6bd4\u8f03\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002<br \/>\n<a href=\"https:\/\/github.com\/KyotoMicrocomputer\/solid-rapi4-examples\/blob\/main\/cpp-server-tcpecho\/cpp-server-tcpecho\/main.cpp\">https:\/\/github.com\/KyotoMicrocomputer\/solid-rapi4-examples\/blob\/main\/cpp-server-tcpecho\/cpp-server-tcpecho\/main.cpp<\/a><\/p>\n<p>&nbsp;<\/p>\n<\/div>\n<\/div><\/div><div id=\"panel-6168-1-0-1\" class=\"so-panel widget widget_sow-editor\" data-index=\"4\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t><h3 class=\"widget-title\">\uff13\uff0e\u52a0\u901f\u5ea6\u5024\u3092\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u7d4c\u7531\u3067\u8fd4\u3059\u3088\u3046\u306b\u3059\u308b<\/h3>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<p>\u3055\u3066\u3001\u3053\u3053\u3067SPI\u306e\u3053\u3068\u3092\u601d\u3044\u51fa\u3057\u307e\u3059\u3002<\/p>\n<p>\u73fe\u6642\u70b9\u3067\u306f\u3001TCP\/IP\u30b5\u30fc\u30d0\u3068\u3057\u3066\u3001\u6765\u305f\u30c7\u30fc\u30bf\u3092\u305d\u306e\u307e\u307e\u8fd4\u3059\u3068\u3044\u3046\u52d5\u304d\u3092\u3057\u3066\u3044\u307e\u3059\u3002<br \/>\n\u3053\u308c\u3092\u5909\u66f4\u3057\u3066\u3001<br \/>\n\u300c\u4f55\u304b\u30c7\u30fc\u30bf\u304c\u6765\u305f\u3089\u3001\u52a0\u901f\u5ea6\u5024\u3092\u8fd4\u3059\u300d<br \/>\n\u3088\u3046\u306b\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n<p>fn serve_client()\u95a2\u6570\u306e\u4e2d\u3067\u3001\u8fd4\u3059\u30c7\u30fc\u30bf\u3092\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<div style=\"padding: 10px; margin-bottom: 10px; border: 1px dotted #333333; background-color: #e0ffff;\">\n<pre><code>\u3000\u3000\u3000\u3000\u3000\u3000match (&amp;*client_fd).write_all(&amp;buffer[..num_read_bytes]) {\n            Err(e) if e.kind() == io::ErrorKind::WriteZero =&gt; {\n                break;\n            }\n            result =&gt; result?,\n        };\n<\/code><\/pre>\n<\/div>\n<p>\u3053\u3053\u3092\u3001\u52a0\u901f\u5ea6\u5024\u3092\u30bb\u30f3\u30b5\u304b\u3089\u53d6\u5f97\u3057\u305d\u306e\u5024\u3092\u8fd4\u3059\u3001\u3068\u3044\u3046\u30b3\u30fc\u30c9\u306b\u5909\u66f4\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n<p>\u52a0\u901f\u5ea6\u5024\u3092\u30bb\u30f3\u30b5\u304b\u3089\u53d6\u5f97\uff1a<\/p>\n<div style=\"padding: 10px; margin-bottom: 10px; border: 1px dotted #333333; background-color: #e0ffff;\">\n<pre><code>let axis_array: [f32; 3] =  spi_adxl345::current_acceleration_array();\n<\/code><\/pre>\n<\/div>\n<p>\u3053\u308c\u3067\u3057\u305f\u306d\u3002<br \/>\naxis_array\u306ff32\u306e\u578b\u3092\u6301\u3064\u914d\u5217\u3067\u3057\u305f\u3002<\/p>\n<p>\u4e00\u65b9\u3001\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u9001\u4fe1\u7528\u30d0\u30c3\u30d5\u30a1\u306e\u578b\u3092\u898b\u3066\u307f\u307e\u3059\u3002<br \/>\n\u9001\u4fe1\u95a2\u6570 write_all\u3092\u8efd\u304f\u30de\u30a6\u30b9\u3067\u30dd\u30a4\u30f3\u30c8\u3057\u3066\u307f\u308b\u3068\u3001\u60c5\u5831\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002<\/p>\n<p><a href=\"https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2023\/02\/16-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-6171 size-medium\" src=\"https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2023\/02\/16-1-300x150.png\" alt=\"\" width=\"300\" height=\"150\" srcset=\"https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2023\/02\/16-1-300x150.png 300w, https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2023\/02\/16-1-768x385.png 768w, https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2023\/02\/16-1-1024x513.png 1024w, https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2023\/02\/16-1.png 1218w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>u8\u578b\u306e\u914d\u5217\u3067\u3059\u306d\u3002<br \/>\n\u3068\u3044\u3046\u4e8b\u306f\u3001\u307e\u305f\u578b\u5909\u63db\u3067\u3059\u306d(\u6c57)<\/p>\n<p>\u4eca\u5ea6\u306f32\u30d3\u30c3\u30c8\u306efloat\u304b\u3089u8\u3078\u306e\u578b\u5909\u63db\u3002<br \/>\n\u3082\u3046\u6163\u308c\u307e\u3057\u305f\u3002\u4f55\u304b\u3042\u308b\u3093\u3067\u3057\u3087\u3046\uff1f\u4fbf\u5229\u306a\u306e\u304c\u3002<\/p>\n<p><a href=\"https:\/\/doc.rust-lang.org\/std\/primitive.f32.html#method.to_le_bytes\">https:\/\/doc.rust-lang.org\/std\/primitive.f32.html#method.to_le_bytes<\/a><\/p>\n<p>\u307b\u3089\u3001\u3042\u3063\u305f\u3002<\/p>\n<div style=\"padding: 10px; margin-bottom: 10px; border: 1px dotted #333333; background-color: #e0ffff;\">\n<pre><code>       \/\/let bytes = 0x12345678u32.to_le_bytes();\n        \/\/assert_eq!(bytes, [0x78, 0x56, 0x34, 0x12]);\n\n<\/code><\/pre>\n<\/div>\n<p>\uff08\u3061\u306a\u307f\u306b\u524d\u56de\u306f\u3053\u306e\u9006\u3001\u300cfrom_le_bytes\u300d\u3092\u4f7f\u3044\u307e\u3057\u305f\u3002\uff09<\/p>\n<p>\u3068\u3044\u3046\u4e8b\u3067\u3001\u3053\u306e\u3088\u3046\u306b\u66f8\u304d\u307e\u3057\u305f\u3002<\/p>\n<div style=\"padding: 10px; margin-bottom: 10px; border: 1px dotted #333333; background-color: #e0ffff;\">\n<pre><code>let axis_array: [f32; 3] = spi_adxl345::current_acceleration_array();\n        println!(\"x_axis:{} y_axis:{} z_axis:{}\", axis_array[0], axis_array[1], axis_array[2]);\n\n        let retbytes_x: [u8; 4] = axis_array[0].to_le_bytes();\n        let retbytes_y: [u8; 4] = axis_array[1].to_le_bytes();\n        let retbytes_z: [u8; 4] = axis_array[2].to_le_bytes();\n\n        let mut retbytes: [u8; 12] = [0x00; 12];\n\n        for n in 0..4 {\n            retbytes[n] = retbytes_x[n];\n            retbytes[n+4] = retbytes_y[n];\n            retbytes[n+8] = retbytes_z[n];\n        }\n\n        match (&amp;*client_fd).write_all(&amp;retbytes) {\n            Err(e) if e.kind() == io::ErrorKind::WriteZero =&gt; {\n                break;\n            }\n            result =&gt; result?,\n        };\n\n<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div><\/div><div id=\"panel-6168-1-0-2\" class=\"so-panel widget widget_sow-editor\" data-index=\"5\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t><h3 class=\"widget-title\">\uff14\uff0ePC\u5074\u306eTCP\/IP\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u30a2\u30d7\u30ea\u4f5c\u6210<\/h3>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<p>PC\u5074\u3067\u3001\u52a0\u901f\u5ea6\u5024\u3092\u53d6\u5f97\uff06\u8868\u793a\u3059\u308b\u30a2\u30d7\u30ea\u3092C#\u3067\u4f5c\u3063\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n<p><a href=\"https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2023\/02\/16-FormBefore.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-6173 size-medium\" src=\"https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2023\/02\/16-FormBefore-300x70.png\" alt=\"\" width=\"300\" height=\"70\" srcset=\"https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2023\/02\/16-FormBefore-300x70.png 300w, https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2023\/02\/16-FormBefore.png 577w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>\u4ed5\u69d8\uff1a<br \/>\nget data\u30dc\u30bf\u30f3\u62bc\u4e0b\uff1a<br \/>\n\u30db\u30b9\u30c8\u540d\u300craspberrypi\u300d\u306b\u30dd\u30fc\u30c8\u300c7777\u300d\u3067\u63a5\u7d9a\u3057\u3001\u4f55\u304b\u9069\u5f53\u306b\u30c7\u30fc\u30bf\u3092\u9001\u4fe1\u3002<br \/>\n\u53d7\u4fe1\u3057\u305f12\u30d0\u30a4\u30c8\u306e\u30c7\u30fc\u30bf\u30924\u30d0\u30a4\u30c8\u3054\u3068\u306b\u533a\u5207\u308a\u3001\u305d\u308c\u305e\u308cf32\u5909\u63db\u3059\u308b\u3053\u3068\u3067X,Y,Z\u8ef8\u306e\u52a0\u901f\u5ea6\u5024\u3092\u5f97\u308b\u3002<br \/>\n\u3055\u3089\u306b\u305d\u308c\u3089\u3092\u6587\u5b57\u5217\u306b\u5909\u63db\u3057\u3001\u8868\u793a\u3059\u308b\u3002<\/p>\n<p>&nbsp;<\/p>\n<h3>4.1\u00a0C#\u306e\u578b\u5909\u63db<\/h3>\n<p>\u3053\u3061\u3089\u306eC#\u30a2\u30d7\u30ea\u3067\u3082\u3001\u578b\u5909\u63db\u3092\u4e8c\u56de\u884c\u3063\u3066\u3044\u307e\u3059\u3002<br \/>\n\u300c\u53d7\u4fe1\u3057\u305f12\u30d0\u30a4\u30c8\u306e\u30c7\u30fc\u30bf\u30924\u30d0\u30a4\u30c8\u3054\u3068\u306b\u533a\u5207\u308a\u3001\u305d\u308c\u305e\u308cf32\u5909\u63db\u300d<br \/>\n\u300c\u3055\u3089\u306b\u305d\u308c\u3089\u3092\u6587\u5b57\u5217\u306b\u5909\u63db\u300d<\/p>\n<p>\u3054\u53c2\u8003\u306b\u3001C#\u306e\u5834\u5408\u306f\u3053\u3046\u66f8\u3051\u307e\u3059\u3001\u3068\u3044\u3046\u306e\u3092\u3054\u7d39\u4ecb\u3002<\/p>\n<p>\u30fb\u53d7\u4fe1\u3057\u305f12\u30d0\u30a4\u30c8\u306e\u30c7\u30fc\u30bf\u30924\u30d0\u30a4\u30c8\u3054\u3068\u306b\u533a\u5207\u308a\u3001f32\u5909\u63db<br \/>\n\u6307\u5b9a\u30aa\u30d5\u30bb\u30c3\u30c8\u5024\u304b\u30894\u30d0\u30a4\u30c8\u3092\u62bd\u51fa\u3059\u308b\u306e\u3067\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u66f8\u304d\u307e\u3057\u305f\u3002<\/p>\n<div style=\"padding: 10px; margin-bottom: 10px; border: 1px dotted #333333; background-color: #e0ffff;\">\n<pre><code>     float x_axis = BitConverter.ToSingle(data, 0);\n     float y_axis = BitConverter.ToSingle(data, 4);\n     float z_axis = BitConverter.ToSingle(data, 8);\n<\/code><\/pre>\n<\/div>\n<p>\u30fb\u6587\u5b57\u5217\u306b\u5909\u63db<br \/>\nshowstrings \u3068\u3044\u3046\u6587\u5b57\u5217\u3067\u3001\u30c0\u30a4\u30a2\u30ed\u30b0\u30dc\u30c3\u30af\u30b9\u306b\u8868\u793a\u3059\u308b\u6587\u5b57\u5217\u3092\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059\u3002\u3053\u306e\u3088\u3046\u306b\u66f8\u304d\u307e\u3057\u305f\u3002<\/p>\n<div style=\"padding: 10px; margin-bottom: 10px; border: 1px dotted #333333; background-color: #e0ffff;\">\n<pre><code>showstrings = \"x:\" + x_axis.ToString() + \"  y:\" + y_axis.ToString() + \"  z:\" + z_axis.ToString();\n<\/code><\/pre>\n<\/div>\n<p>&nbsp;<\/p>\n<\/div>\n<\/div><\/div><div id=\"panel-6168-1-0-3\" class=\"so-panel widget widget_sow-editor panel-last-child\" data-index=\"6\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t><h3 class=\"widget-title\">\uff15\uff0e\u5b9f\u884c\uff01<\/h3>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<p>&nbsp;<\/p>\n<p>\u5b9f\u884c\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n<p>SOLID\u5074\u306eUART\u51fa\u529b\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n<p><a href=\"https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2023\/02\/16-tera.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-6175 size-medium\" src=\"https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2023\/02\/16-tera-300x230.png\" alt=\"\" width=\"300\" height=\"230\" srcset=\"https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2023\/02\/16-tera-300x230.png 300w, https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2023\/02\/16-tera-768x588.png 768w, https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2023\/02\/16-tera.png 988w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>PC\u30a2\u30d7\u30ea\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-6174\" src=\"https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2023\/02\/16-Form-300x72.png\" alt=\"\" width=\"300\" height=\"72\" srcset=\"https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2023\/02\/16-Form-300x72.png 300w, https:\/\/solid.kmckk.com\/SOLID\/wp-content\/uploads\/2023\/02\/16-Form.png 578w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>\u4eca\u56de\u306f\u3053\u3053\u307e\u3067\u3002<\/p>\n<p>\u6b21\u56de\u306f\u3001<br \/>\n\u30fb\u5e38\u306b\u6700\u65b0\u306e\u52a0\u901f\u5ea6\u5024\u3092100\u500b\u30ad\u30fc\u30d7\u3057\u3066\u304a\u304f<br \/>\n\u30fbTCP\/IP\u30b5\u30fc\u30d0\u7d4c\u7531\u3067\u3001\u305d\u306e\u77ac\u9593\u306e100\u500b\u306e\u52a0\u901f\u5ea6\u5024\u3092\u9001\u4fe1\u3059\u308b<br \/>\n\u3068\u3044\u3046\u5909\u66f4\u3092\u884c\u3046\u4e88\u5b9a\u3067\u3059\u3002<\/p>\n<p>\u3053\u308c\u306b\u306f\u3001\uff08\u4eca\u308f\u304b\u308b\u3060\u3051\u3067\u3082\uff09\uff13\u3064\u3001\u7b46\u8005\u306b\u3068\u3063\u3066\u306e\u8a66\u7df4\u304c\u3042\u308a\u307e\u3059\u3002<br \/>\n\u305d\u306e\uff11\uff1a\u52a0\u901f\u5ea6\u5024\u53d6\u5f97\u3092\u30b9\u30ec\u30c3\u30c9\u5316<br \/>\n\u305d\u306e\uff12\uff1a\u30b9\u30ec\u30c3\u30c9\u9593\u306e\u30c7\u30fc\u30bf\u53d7\u3051\u6e21\u3057<br \/>\n\u305d\u306e\uff13\uff1a100\u500b\u30ad\u30fc\u30d7\u3059\u308b\u305f\u3081\u306e\u30ea\u30f3\u30b0\u30d0\u30c3\u30d5\u30a1\u306e\u5b9f\u88c5<\/p>\n<p>\u307e\u3060\u5148\u304c\u9577\u3044\u306a\u3041\u3002\u3002\u3002<\/p>\n<\/div>\n<\/div><\/div><\/div><\/div><div id=\"pg-6168-2\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-6168-2-0\"  class=\"panel-grid-cell panel-grid-cell-empty\" ><\/div><\/div><div id=\"pg-6168-3\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-6168-3-0\"  class=\"panel-grid-cell panel-grid-cell-empty\" ><\/div><\/div><div id=\"pg-6168-4\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-6168-4-0\"  class=\"panel-grid-cell panel-grid-cell-empty\" ><\/div><\/div><div id=\"pg-6168-5\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-6168-5-0\"  class=\"panel-grid-cell panel-grid-cell-empty\" ><\/div><\/div><div id=\"pg-6168-6\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-6168-6-0\"  class=\"panel-grid-cell panel-grid-cell-empty\" ><\/div><\/div><div id=\"pg-6168-7\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-6168-7-0\"  class=\"panel-grid-cell panel-grid-cell-empty\" ><\/div><\/div><div id=\"pg-6168-8\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-6168-8-0\"  class=\"panel-grid-cell panel-grid-cell-empty\" ><\/div><\/div><div id=\"pg-6168-9\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-6168-9-0\"  class=\"panel-grid-cell panel-grid-cell-empty\" ><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>(2023\/2\/20) \u4eca\u56de\u306f\u3001 \u30fb\u52a0\u901f\u5ea6\u30bb\u30f3\u30b5ADXL345\u3078\u306e\u5236\u5fa1\u3092\u5b8c\u5168\u306b\u96a0\u853d\u3059\u308b \u30fbLinux\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u6a5f\u80fd\u3092SOLID-OS\u304b\u3089\u4f7f\u7528\u3059\u308b\u3053\u3068\u3092\u8a66\u3059 \u3092\u884c\u3044\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002 \u305d\u308c\u304c\u7d42\u308f\u3063\u305f\u3089\u3001Linux\u306e\u30cd\u30c3\u30c8 [&hellip;]<\/p>\n","protected":false},"author":15,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-6168","post","type-post","status-publish","format-standard","hentry","category-1"],"_links":{"self":[{"href":"https:\/\/solid.kmckk.com\/SOLID\/wp-json\/wp\/v2\/posts\/6168","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/solid.kmckk.com\/SOLID\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/solid.kmckk.com\/SOLID\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/solid.kmckk.com\/SOLID\/wp-json\/wp\/v2\/users\/15"}],"replies":[{"embeddable":true,"href":"https:\/\/solid.kmckk.com\/SOLID\/wp-json\/wp\/v2\/comments?post=6168"}],"version-history":[{"count":0,"href":"https:\/\/solid.kmckk.com\/SOLID\/wp-json\/wp\/v2\/posts\/6168\/revisions"}],"wp:attachment":[{"href":"https:\/\/solid.kmckk.com\/SOLID\/wp-json\/wp\/v2\/media?parent=6168"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/solid.kmckk.com\/SOLID\/wp-json\/wp\/v2\/categories?post=6168"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/solid.kmckk.com\/SOLID\/wp-json\/wp\/v2\/tags?post=6168"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}