<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
	<title><![CDATA[ 2024年3月の投稿［18件］ - 電装工芸日記 - 舞台照明機器の製作とか - ]]></title>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi</link>
	<description><![CDATA[ 今年は開発案件を進めたい ]]></description>
	<language>ja</language>
	<copyright>Copyright 2026</copyright>
	<lastBuildDate>Mon, 20 Apr 2026 06:10:27 +0900</lastBuildDate>
	<generator><![CDATA[ <!-- てがろぐ Version: -->Powered by <a href="https://www.nishishi.com/cgi/tegalog/" target="_top">てがろぐ</a> Ver 3.4.0 ]]></generator>
	<!-- BEGIN ENTRIES -->
	<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　Ｃ言語ネタです。 ]]></title>
	<description><![CDATA[ 　Ｃ言語ネタです。<br />　<a class="url" href="https&#58;//iww.hateblo.jp/entry/20180822/semaphore" target="_blank" title="https&#58;//iww.hateblo.jp/entry/20180822/semaphore">セマフォを使ったプロセス間での排他制御</a><br />　セマフォは異なるプロセスが共有メモリへ同時に読み書きをしないために使おうを思っています。この記事だけではどう使ったらいいか見えませんが、セマフォの機能についてはシンプルに要点を突いて分かりやすい。こういう蛇足が無い説明は好きです。<br />　ここでは他のプロセスの挙動は説明されていませんが、同じ名前のセマフォ(この記事では&quot;/unko&quot;)を開いて同じ様に使います。同じセマフォを持った二つのプロセスがあるとして、後から sem_wait(sem) を実行した側は先に sem_wait(sem) を実行した側が sem_post(sem) を実行するまでブロック(動作を一時停止)します。sem_trywait(sem) を用いればブロックせずに戻りますので戻り値を見て処理を続行出来ます。<br />　自力でセマフォを作ろうと思っていましたが、この方法でいいんでないかなと。<br /><br />　セマフォの方針が決まれば必要なことが一通りまとまったことになるので書き始められそうです。<br />　まずは Art-Net を丁寧に受信する処理から進めます。ネットワーク上のすべての ArtDMX(スロットデータが列挙されたパケット) と存在する送信機の一覧を取得し、別プロセスから読み出して階層的に表示することを当面の目標とします。一種の Art-Net モニタでしょうか。画面を横に３分割し、左に送信機の一覧、中間に選択された送信機が扱うユニバース、右にスロットデータといった構成です。送信機とユニバースをキーボード(カーソル)操作で選択することも習作の一部となります。<br />　これが作れなければ ArtNetPatch など作れませんし、最終的なパッケージでも欲しい機能です。　<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%ef%bc%a3%e8%a8%80%e8%aa%9e" class="taglink" title="Ｃ言語">#Ｃ言語</a> -- Posted by 電装工芸 〔757文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=846</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=846</guid>
	<category>tegalog</category>
	<pubDate>Sun, 31 Mar 2024 13:46:34 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　音響も照明もデジタルコンソールを使うのが日常となりました。 ]]></title>
	<description><![CDATA[ 　音響も照明もデジタルコンソールを使うのが日常となりました。<br />　これらはとても高機能で便利な機器ですが、弱点を申し上げるなら起動に時間がかかることと、瞬間停電で動作不良に陥ることがあることです。<br />　機器に与える電源は半仮設なことが多いためコネクタの脱落や接点不良の可能性は拭えず、老朽化した劇場ですと空調器等の動作によっては瞬間停電に等しい状態に陥ることもあります。<br />　完全停電ならともかく、瞬間停電による動作不良はクライアントに理解を得ることが難しく、ストレージへのアクセス中に電源が落ちますとシステムが深刻な支障に至ることもあります。<br />　前置きが長くなりましたが、瞬間停電や数分の停電があってもコンソールの動作を維持する対策を施したいので「無停電電源装置」を使いたい。いわゆる「UPS」です。<br />　UPSのバックアップ方式には様々な種類があるのでどんな状況でも安心とは言い切れませんが、無いよりは明らかに事故率を下げられます。<br />　ただ、UPS製品は据え置きを前提にした物が多く、仕込んでバラしてを繰り返すと物理的に傷みやすい。<br />　ならばと思ったのが、デスビとUPSをラックケースに１パッケージにしたモノはどうだ？というアイデア。デスビとはノイズフィルタとサージカットを提供する電源分配装置と言えばいいでしょうか。欲しいのは瞬間停電に対策し、電源ノイズを軽減し、サージカットをする物です。安価なUPSでもサージカットは入っています。ノイズフィルタまで入っている物は重装備の設備用となりますが、コモンモードフィルタを入れれば事足ります。<br />　私の印象ですが、UPSと言えば「OMRON」さん。安価な普及品から高性能な重装備品まで幅広くラインナップし、何よりも保守用の交換バッテリーの入手に安心感があります。バッテリーの寿命は3-5年のため、安いだけ品はいざ交換したいときにバッテリーが手に入らないこともあるからです。<br />　コンソール周りの消費電力は300wくらいが平均でしょうか。上には上がありますが、一番頻度の高い条件を一般条件とし、もっと必要なら複数使うなり専用品として対策する方向で。<br />　OMRONさんの製品で19インチラックにマウント出来そうな安価な製品ですと<a class="url" href="https&#58;//socialsolution.omron.com/jp/ja/products_service/ups/product/bx35-50f/bx35-50f.html" target="_blank" title="https&#58;//socialsolution.omron.com/jp/ja/products_service/ups/product/bx35-50f/bx35-50f.html">「BX50F」</a>でしょうか。<br /><a class="url" href="https&#58;//socialsolution.omron.com/jp/ja/products_service/ups/product/bx35-50f/bx35-50f.html" target="_blank" title="https&#58;//socialsolution.omron.com/jp/ja/products_service/ups/product/bx35-50f/bx35-50f.html">「BX50F」</a><br /><img class="embeddedimage" src="https&#58;//www.densokogei.jp/tegalog/images/20240331064118-admin.png" alt="20240331064118-admin.png"><br />　バックアップ容量は500VA/300wなのでもう一息欲しい気もしますが、小型軽量だし、空冷余白や付属パネルを含めても2Uに収まりそうなので実用的かなと。<br />　実は、<a class="url" href="https&#58;//socialsolution.omron.com/jp/ja/products_service/ups/product/bz35-50lt2/bz35-50lt2.html" target="_blank" title="https&#58;//socialsolution.omron.com/jp/ja/products_service/ups/product/bz35-50lt2/bz35-50lt2.html">OMRONさんのBZ50LT2</a>をすでに使っています。一見安っぽいのですが十分に使えています。事故に遭遇したことはありませんが、試験停電させたところ数分保持しました。卓周辺で単体の消費電力が300wを越える製品は多くありませんし、BX50Fは形が違うだけで同等の製品ですから十分使えるでしょう。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e7%85%a7%e6%98%8e%e5%99%a8%e5%85%b7" class="taglink" title="照明器具">#照明器具</a><br />　 -- Posted by 電装工芸 〔1191文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=845</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=845</guid>
	<category>tegalog</category>
	<pubDate>Sun, 31 Mar 2024 06:41:18 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　春恒例の桜ライトアップの仕込みが数件あり、コロナ明け初の年… ]]></title>
	<description><![CDATA[ 　春恒例の桜ライトアップの仕込みが数件あり、コロナ明け初の年度末・新年度ですから現場もそこそこあってバタバタしております。PegasysG10は信号線のコネクタ(SP13)を取り付ければ終わるものの手を付ける時間がありません。修理・改造をしたい機材はまだまだあるので困ったものです。<br />　LED-Barを改造する部品は３Ｄプリンタで作っています。製作数７２個、１ジョブ６個、ラップ２２時間ですから２週間程でしょうか。期間はかかりますが、セットチェンジは数分なので負担にはなりません。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%ac%e3%83%81%e5%b7%a5%e4%bd%9c" class="taglink" title="ガチ工作">#ガチ工作</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e5%99%a8%e5%85%b7%e3%81%ae%e4%bf%ae%e7%90%86" class="taglink" title="器具の修理">#器具の修理</a> -- Posted by 電装工芸 〔254文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=844</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=844</guid>
	<category>tegalog</category>
	<pubDate>Thu, 28 Mar 2024 06:54:10 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　機材の補助としてバンジーコードを輪にしたモノを使うことにし… ]]></title>
	<description><![CDATA[ 　機材の補助としてバンジーコードを輪にしたモノを使うことにしました。<br />　バンジーコードとは周囲を繊維の編み込みで包んだゴム紐です。荷止めとして使われることが多いゴムです。<br />　輪にするには端を繋げないといけませんが、バイスバーサノットと呼ばれる結び方が良さそうです。<br /><span class="embeddedmovie"><iframe class="embeddedmovie" width="560" height="315" src="https&#58;//www.youtube-nocookie.com/embed/Qf0Q22tSPcc" loading="lazy" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe></span> <br />　少し難しい結び方ですが、ほどけ難いのは良いことです。<br /><br />　と言いつつ、これも良さそう。<br /><span class="embeddedmovie"><iframe class="embeddedmovie" width="560" height="315" src="https&#58;//www.youtube-nocookie.com/embed/qbcMMeV4i6c" loading="lazy" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe></span> <br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e8%88%9e%e5%8f%b0%e3%81%ae%e5%b0%8f%e7%89%a9" class="taglink" title="舞台の小物">#舞台の小物</a> -- Posted by 電装工芸 〔189文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=843</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=843</guid>
	<category>tegalog</category>
	<pubDate>Wed, 27 Mar 2024 03:15:29 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　ATXを汎用電源化するための基板を発注しました。 ]]></title>
	<description><![CDATA[ 　ATXを汎用電源化するための基板を発注しました。<br />　２４ピンのATXコネクタを挿し、リセッタブルヒューズを介してXHコネクタに出力する物です。<br /><img class="embeddedimage" src="https&#58;//www.densokogei.jp/tegalog/images/20240325074023-admin.jpg" alt="20240325074023-admin.jpg"><br /><img class="embeddedimage" src="https&#58;//www.densokogei.jp/tegalog/images/202403250740231-admin.jpg" alt="202403250740231-admin.jpg"><br />　PCBGOGOさんに発注しましたが、改めて価格を評価したところレジストやシルクの色で価格が随分違う。標準色(レジスト緑/シルク白)は安い。しかもリードタイムが短い。<br />　これまでは気分で色を決めていましたが、見せ基板でないなら安くて早いが正義。これまで無駄遣いをしていたようです。<br />　肝心の価格は送料別10枚で＄19(日本円で2,876円)です。75x60mmサイズで１枚300円しません。サンハヤトさんの感光基板を買うより安いのに両面基板でレジストもシルクも入る。格安と言うしかありません。<br />　送料は3,000円くらいですが、これを高いと言ったら何も始まりません。<br />　ATX電源からは24P以外のコネクタも出ていますが、そのまま使うかコネクタを付け替えるかします。<br /><br />追記<br />　ジャンク箱を覗いて電源を見繕っていたら新品未開封のSFX(300w)が居ました。随分前に保守用としてストックした物だと思うので使うことはないでしょうし、新たなPCを組むには電力不足ですがRaspberryPiの開発環境には十分です。<br />　ケーブルハーネスは短くします。パッケージをスッキリさせるには余計なケーブルが邪魔だからです。ちょっと面倒ですが、ATX電源のハーネスの加工を習得しておけば後で役立つかな？<br />　この電源からはATXの24ピン、補助12vの4ピン、SATA、ペリフェラル4Pがそれぞれ１系統出ています。24ピンは今回作った基板にあてがってXHコネクタに出力し、補助12vはDCコネクタに付け替えてモニタなどの電源とし、SATAとペリフェラル4Pはそのまま残そうかなと。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e9%9b%bb%e5%ad%90%e5%b7%a5%e4%bd%9c" class="taglink" title="電子工作">#電子工作</a> -- Posted by 電装工芸 〔762文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=842</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=842</guid>
	<category>tegalog</category>
	<pubDate>Mon, 25 Mar 2024 07:36:47 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　ATX(SFX)電源を汎用電源化するため、ATXコネクタを… ]]></title>
	<description><![CDATA[ 　ATX(SFX)電源を汎用電源化するため、ATXコネクタを調べました。<br />　以下がピンアサイン、規格ケーブル色、特殊ピンの機能です。<br />　現行規格は24ピン、旧規格は20ピンです。カッコ内は20ピンの値。<br />　ピンの並びは長手方向に1～12(10)、PIN1の隣に戻って13(11)～24(20)です。<br /><small class="decorationS"><span class="decorationF deco-code">ATX 24pin Connector Pin Assignment (20pins are in parentheses)<br />Cable Connector is Molex 5556.<br />Pcb Connector is Molex 5566.<br />------------<br />1 ( 1) +3.3v &#91;Orange&#93;<br />2 ( 2) +3.3v &#91;Orange&#93;<br />3 ( 3) GND &#91;Black&#93;<br />4 ( 4) +5v &#91;Red&#93;<br />5 ( 5) GND &#91;Black&#93;<br />6 ( 6) +5v &#91;Red&#93;<br />7 ( 7) GND &#91;Black&#93;<br />8 ( 8) PWR_OK &#91;Gray&#93;　起動し出力が安定すると+5vが出力されます。パイロットランプにも使用可。<br />9 ( 9) +5vSB &#91;Purple&#93;　起動していなくても電源が入力されると+5vが出力されます。パイロットランプにも使用可。<br />10 (10) +12v &#91;Yellow&#93;<br />11　　　+12v &#91;Yellow&#93;<br />12　　　+3.3v &#91;Orange&#93;<br />------------<br />13 (11) +3.3v &#91;Orange&#93;<br />14 (12) -12v &#91;Blue&#93;<br />15 (13) GND &#91;Black&#93;<br />16 (14) PS_ON &#91;Green&#93;　GNDに落とすと起動します。NCにすると停止します。<br />17 (15) GND &#91;Black&#93;<br />18 (16) GND &#91;Black&#93;<br />19 (17) GND &#91;Black&#93;<br />20 (18) Rererved(-5v) &#91;*NC&#93;　配線されていないことが多い。されていれば-5v。<br />21 (19) +5v &#91;Red&#93;<br />22 (20) +5v &#91;Red&#93;<br />23　　　+5v &#91;Red&#93;<br />24　　　GND &#91;Black&#93;<br />------------<br />+3.3v x 4pin<br />+5v x 5pin<br />+12v x 2pin<br />-12v x 1pin<br />GND x 8pin<br />------------<br />　他のコネクタも規格ケーブル色は上記と同じです。<br />+3.3v &#91;Orange&#93;<br />+5v &#91;Red&#93;<br />+12v &#91;Yellow&#93;<br />GND &#91;Black&#93;<br />　※ ケーブルがすべて黒の製品も多い</span></small> <br />　16ピンをGNDに繋げれば起動しますので、物理スイッチを間に入れれば起動スイッチになります。<br />　簡単な改造とは言えませんが、工作の汎用電源にはATX電源を使うといいような気がします。特にSFXの300w程度の物は小型で安価なマルチ電源と言えます。<br /><br />　<a class="url" href="https&#58;//www.nipron.co.jp/consultation/qa_index.cgi?mode=a&amp;id=183" target="_blank" title="https&#58;//www.nipron.co.jp/consultation/qa_index.cgi?mode=a&amp;id=183">参考：ATX/EPS電源のピンアサイン</a><br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%ac%e3%83%81%e5%b7%a5%e4%bd%9c" class="taglink" title="ガチ工作">#ガチ工作</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e9%9b%bb%e5%ad%90%e5%b7%a5%e4%bd%9c" class="taglink" title="電子工作">#電子工作</a>  -- Posted by 電装工芸 〔1253文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=841</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=841</guid>
	<category>tegalog</category>
	<pubDate>Sun, 24 Mar 2024 09:16:02 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　今日もホール増員置きダヌキしてました。珍しく旗日にオフだっ… ]]></title>
	<description><![CDATA[ 　今日もホール増員置きダヌキしてました。珍しく旗日にオフだったのですが、結構大掛かりなツアーだったので召喚された次第。<br />　ツアーの皆様は仕事が出来る人ばかりのためタッパまで終わればバラシまでヒマですから調べ物や研究が出来るのです。<br /><br />　そんなワケで、コンソール画面を書く手段を新たに見つけつつ、Art-Netパッチの基本設計や要となる要素を整理し終わりました。机上作業が終わったので次は実機試験です。<br />　VsCodeからSSHでRaspberryPiを触る方法で作業するのですが、この物理環境を今一度整備しましょう。パソコン、卓、node以外の必要な物が固定され配線されたトランク型のラップトップパソコンみたいなモノを作るです。配電盤箱よろしく中に合板を貼り付けてテキトウにビス止め出来るアルミトランクみたいなモノがあればいいでしょうか。これに電源(DC3.3v,5v,12v小型のSFX電源？)、RaspberryPi、モニタ、EtherneHubなどの基本用品と都度の課題で必要なモノを組み付けておくのです。キーボードはワイヤレスなので仕舞う場所だけ？？。ここまでしておけば場所を選ばず作業出来そうです。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%ac%e3%83%81%e5%b7%a5%e4%bd%9c" class="taglink" title="ガチ工作">#ガチ工作</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e5%99%a8%e5%85%b7%e3%81%ae%e8%a3%bd%e4%bd%9c" class="taglink" title="器具の製作">#器具の製作</a> -- Posted by 電装工芸 〔518文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=840</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=840</guid>
	<category>tegalog</category>
	<pubDate>Wed, 20 Mar 2024 22:44:15 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　コンソールの画面操作では「ＡＮＳＩエスケープシーケンス」を… ]]></title>
	<description><![CDATA[ 　コンソールの画面操作では「ＡＮＳＩエスケープシーケンス」を使うイメージでいましたが、「ncurses」と呼ばれる便利なライブラリがあることを今更知りました。これを使えばコンソール画面作りが楽になりそうです。<br />　キー操作の扱いを調べていたのですが、<a class="url" href="https&#58;//jp-seemore.com/iot/11222/" target="_blank" title="https&#58;//jp-seemore.com/iot/11222/">「C言語で矢印キーの入力を完璧に検出する5つのステップ」</a>を読んでいたら「ncurses」が便利とのこと。ここから調べを進めたところナルホドが連発。<a class="url" href="https&#58;//www.kushiro-ct.ac.jp/yanagawa/curses/about.html" target="_blank" title="https&#58;//www.kushiro-ct.ac.jp/yanagawa/curses/about.html">「cursesライブラリの超てきとー解説」</a>を読むと概要がわかるような。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%ef%bc%a3%e8%a8%80%e8%aa%9e" class="taglink" title="Ｃ言語">#Ｃ言語</a> -- Posted by 電装工芸 〔238文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=839</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=839</guid>
	<category>tegalog</category>
	<pubDate>Wed, 20 Mar 2024 19:29:59 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　SharedMemory(共有メモリ)であるmmapの使い… ]]></title>
	<description><![CDATA[ 　SharedMemory(共有メモリ)であるmmapの使い方が整理出来つつあります。<br />　検証はこれからですが、理解出来たところをオレメモとして書いておきます。<br />　あくまで「オレメモ」です。間違いアリアリでよろしくお願いします。<br />　なお、mmapには様々な用法あるらしい。下記はプロセス間の共有メモリに限った使い方です。<br /><small class="decorationS"><span class="decorationF deco-code">/* mmapを使うためのライブラリ */<br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%69%6e%63%6c%75%64%65" class="taglink" title="include">#include</a> &lt;sys/mman.h&gt;<br /><br />/* 共有メモリにテキストを代入する */<br />char *st;　　　　// 扱うデータの型でmmapのポインタを設定<br />int msize = 4096;<br />st = mmap( NULL, msize, PROT_READ | PROT_WRITE, MAP_ANON | MAP_SHARED, -1, 0 );　　// ここまでやってからfork()でプロセスを分ける<br />*st = &apos;TEST&apos;;　　　　// mmapに「TEST」が代入される(変数をポインタで扱う方法で扱える)<br /><br />/* 使用後は共有メモリを解放する */<br />munmap( st, msize );<br /><br />mmapの引数<br />１つ目(addr/NULL)：mmapを定義するメモリアドレスを設定する項目だが、NULLにしておけばOSが決めてくれる。<br />２つ目(size/msize)：確保するメモリサイズの指定。ページメモリのサイズの倍数にするベシというご意見と、欲しいメモリサイズを指定すればOSが調整してくれるというご意見など色々ある。変数の型からsizeofで得る方法(sizeof(int)など)を使われている方もいる。<br />３つ目(prot/PROT_READ | PROT_WRITE)：読み書きモードを設定する。この書き方だと読み書き両方可能にする。<br />４つ目(flag/MAP_ANON | MAP_SHARED)：MAP_ANONはファイルをマッピングせずに使う指定(共有メモリとして使うだけならこれでいい)、MAP_SHAREDはプロセス間で共有するという指定。<br />５つ目(fd/-1)：ファイルディスクリプタの指定だが、上記でMAP_ANONにしているので-1で無しとする。<br />６つ目(offset/0)：スタートアドレスからどれくらいずらしたところを使うか。<br /><br />　共有メモリは読み書きのタイミングをマネージしれくれませんので、何かしらの管理をしないといけません。<br /><br />参考：ページメモリのサイズを取得する<br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%69%6e%63%6c%75%64%65" class="taglink" title="include">#include</a> &lt;unistd.h&gt;<br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%69%6e%63%6c%75%64%65" class="taglink" title="include">#include</a> &lt;stdio.h&gt;<br />long page_size = sysconf( _SC_PAGESIZE );</span></small><br /><br />　ついでにpipeも。<br />　ただし、ここではpipe2(Linux固有)を使います。pipeの上位互換で引数でノンブロッキングの設定が出来るからです。通常のpipeはパイプが空の場合に有効なデータが取り出せるまで待ってしまいますがO_NONBLOCKを設定すると待ちません。<br />　なお、以前の書き込みでpipeは単純なスタックと書きましたが、Queue程マネジメントされていないFIFOです。訂正します。<br /><small class="decorationS"><span class="decorationF deco-code">/* pipeを使うためのライブラリ */<br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%64%65%66%69%6e%65" class="taglink" title="define">#define</a> _GNU_SOURCE　　// よくわからないけど必要なおまじない？<br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%69%6e%63%6c%75%64%65" class="taglink" title="include">#include</a> &lt;fcntl.h&gt;　　// O_*(ここではO_NONBLOCK) 定数の定義の取得<br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%69%6e%63%6c%75%64%65" class="taglink" title="include">#include</a> &lt;unistd.h&gt;　　// pipeの本体を呼ぶ<br /><br />/* pipeの定義 */<br />int pipefd&#91;2&#93;;　　　// ファイルディスクリプタとしてint配列を用いる 変数の名前は任意<br />if( pipe2( pipefd, O_NONBLOCK ) &lt; 0 ) {　　// ファイルディスクリプタとする配列とノンブロッキングのフラグを引数にする<br />　// pipe2の戻り値が-1なら設定エラー<br />}<br /><br />/* pipeへの書き込み */<br />char *st = &quot;TEST&quot;;<br />write( pipefd&#91;1&#93;, st, strlen( st ) );　　// strlenは&lt;string.h&gt;が必要。成功なら書き込んだバイト数、失敗なら-1が戻る。<br /><br />/* pipeからの読み出し */<br />char buf&#91;128&#93;;<br />read( pipefd&#91;0&#93;, &buf, sizeof( buf ) );　　// パイプが空の場合はEOFを得るか戻り値が0になると思われる。成功なら読み取ったしたバイト数、失敗なら-1が戻る。<br /><br />/* pipeを閉じる(fork()して読み出し側書き込み側に分かれる場合はfork()した後に使わない側を閉じて運用する。もちろん終了する際にはすべて閉じる) */<br />close( pipefd&#91;0&#93; );　　// 読み出しを閉じる<br />close( pipefd&#91;1&#93; );　　// 書き込みを閉じる<br /><br />　int配列pipefdは&#91;0&#93;が読み出し&#91;1&#93;が書き込みになるファイルディスクリプタ。<br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%64%65%66%69%6e%65" class="taglink" title="define">#define</a> MEMREAD 0<br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%64%65%66%69%6e%65" class="taglink" title="define">#define</a> MEMWRITE 1<br />　などとして使うとわかりやすいかも。<br /><br />　OSに寄りますが、スタック長は65536バイトが一般的らしい。<br />　pipeは読み書きのタイミングをマネージしてくれます。</span></small> <br /><br />　どちらもファイルを読み書きする手法を応用していますので、ファイルの読み書きの仕方を勉強しなおしてから取り組むとわかりやすいかもしれません。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%ef%bc%a3%e8%a8%80%e8%aa%9e" class="taglink" title="Ｃ言語">#Ｃ言語</a> -- Posted by 電装工芸 〔2308文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=838</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=838</guid>
	<category>tegalog</category>
	<pubDate>Wed, 20 Mar 2024 12:47:27 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　中華電機を覗いていたらこんな電圧計を発見！ ]]></title>
	<description><![CDATA[ 　中華電機を覗いていたら<a class="url" href="https&#58;//ja.aliexpress.com/item/1005005296507720.html?spm=a2g0o.order_list.order_list_main.5.28b6585avOrmEn&amp;gatewayAdapt=glo2jpn" target="_blank" title="https&#58;//ja.aliexpress.com/item/1005005296507720.html?spm=a2g0o.order_list.order_list_main.5.28b6585avOrmEn&amp;gatewayAdapt=glo2jpn">こんな電圧計</a>を発見！<br /><img class="embeddedimage" src="https&#58;//www.densokogei.jp/tegalog/images/20240319072543-admin.jpg" alt="20240319072543-admin.jpg"> <img class="embeddedimage" src="https&#58;//www.densokogei.jp/tegalog/images/20240319073030-admin.jpg" alt="20240319073030-admin.jpg"><br />　調整に使うモノではないと思いますが、パイロットランプを兼ねて受電電圧の大雑把な確認には使えると思います。100v200vを間違っていないか、ドロップしていないかの確認ってことです。<br />　これのいいのは薄いことです、奥行きが18mmしかありません。これまでは丸穴で小型の物は奥行きが50mm以上ありましたが、ここまで薄いなら箱のサイズに自由度が出ます。例えばTRUE1のレセプタクルを羊かん箱に実装すると奥行のために箱の表面には大きなブランクが出来ますが、ここを埋める配置で使えそうなので良いかなと。直電源のTRUE1化を少しづつ進めていますが、思案中の分岐ボックスに使えるかなと。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e5%99%a8%e5%85%b7%e3%81%ae%e8%a3%bd%e4%bd%9c" class="taglink" title="器具の製作">#器具の製作</a> -- Posted by 電装工芸 〔323文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=837</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=837</guid>
	<category>tegalog</category>
	<pubDate>Tue, 19 Mar 2024 07:25:43 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　プロセス間通信を大別しますと、SharedMemory(m… ]]></title>
	<description><![CDATA[ 　プロセス間通信を大別しますと、SharedMemory(mmap含む)、Pipe、Queueです。左から「速いけど扱いが難しい」→「扱いが簡単だけど遅い」となるようです。<br />　SharedMemoryは初期定義でメモリサイズを指定しなければなりませんが、型の指定は無く、ポインタを使った変数アクセスの要領で使えます。メモリサイズが最初から固定されるので実質的には型が決まった変数となりますが、読み出してもデータが残ることが特性でしょうか。<br />　PipeはマネージされないQueueと思って捉えています。FIFOみたいな挙動で単純な受け渡しをする一時スタックです。<br />　QueueはPipeが高度にマネージされFIFOまたはLIFOとして機能するイメージです。遅いのが難点ですが、速度を求めないなら便利な手段です。<br />　SharedMemoryとPipeはどちらが速いか論争があるようですが、消さなければ残るメモリーと読みだしたら消える一時スタックというそもそもの違いがある上に、転送速度は誤差レベルの違いしか無いように思われますので、用途に合わせて使い分けるだけかなと・・・。<br /><br />　ネットの情報にも教科書にも、これらの違いを一覧してくれる情報がほとんどありません。関数のパラメータや動作特性などのそもそもの説明がなく、どれが速いか遅いかって比較があればましな方です。コピペの様なソースコードに「俺ってスゲーと思わね？」って感じの斜め上の応用を加えたコードが書かれている物ばかり。説明をしてくれる気持ちはありがたいのだけど、中途半端な応用に本筋が埋もれたサンプルコードを誰が喜ぶのかと疑問を感じたりしています。大変勝手な言い方ですが、検索結果が無駄に多くなって分かりやすい情報が埋もれてしまいますので、ガチのプロは見向きもしない、初心者には伝わらない、そんな「俺スゲーでしょ解説」はお控え願いたいものです。斜め上の応用は書く人それぞれのクセであって一般論とは言い難いのですし。<br />　上記はネット検索で迷宮を彷徨ってしまった思いからの愚痴です。わかってんなら書けよとか言われそうですが、人に教えられる程習得出来たら是非書きたいものです。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%ef%bc%a3%e8%a8%80%e8%aa%9e" class="taglink" title="Ｃ言語">#Ｃ言語</a> -- Posted by 電装工芸 〔918文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=836</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=836</guid>
	<category>tegalog</category>
	<pubDate>Mon, 18 Mar 2024 16:43:58 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　ホール管理の増員で置きダヌキ。 ]]></title>
	<description><![CDATA[ 　ホール管理の増員で置きダヌキ。<br />　こういう時はArt-Netパッチの設計を進めるのがいい。いつでも作業を切れるって意味でも不便がありません。<br />　構造においてはマルチプロセス化することがとても重要です。RasperryPi4Bは４コアありますが手続き型処理はもちろんマルチスレッドでも１コア動作が原則。Art-Netの入力、パッチ処理、出力、フロントエンドの処理を同時並行で行いたいのですが、複数のコアで動くかはＯＳ次第とはいえプロセスを分散しておけば１コアだけに負担がかかることは無くなるので良いかなと思うのです。<br />　現在の研究課題はプロセス間通信です。例え一つのアプリケーション内でもプロセスを分けてしまうと同じ変数を触ることが出来ません。これを解消するのがプロセス間通信で、SharedMemory、Pipe、Queueなどの手法があります。それぞれに得手不得手があり、扱いが楽な手法は受け渡しが遅く、受け渡しが速い手法は扱いが難しい傾向があります。このどれを使うかで処理構造が違ってくるので、全体の設計を進める上ではどの手法で繋げるかを予め決めておかないと後が面倒なようです。<br />　注意する点は読み書きのタイミングとデータ枠が可変するかどうかです。勉強中なので説明するのは難しいのですが、この辺りを十分に整理して手段を吟味しているところです。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%ef%bc%a3%e8%a8%80%e8%aa%9e" class="taglink" title="Ｃ言語">#Ｃ言語</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%41%72%74%2d%4e%65%74" class="taglink" title="Art-Net">#&#91;Art-Net&#93;</a> -- Posted by 電装工芸 〔591文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=835</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=835</guid>
	<category>tegalog</category>
	<pubDate>Sat, 16 Mar 2024 22:03:19 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　寝床を仮組みしました。 ]]></title>
	<description><![CDATA[ 　寝床を仮組みしました。<br />　懸案の丸ナットを使った接合はイイ感じ。３方向からの２×４材がガッチリ接合されています。斜め材無しにここまで固まるなら他にも使えそうです。<br />　諸々組んでしまったので写真が撮れませんが、バラして塗装する際に記念撮影をしましょう。<br />　ただ、少し寸法間違いをしました。敷板を105mmほど短く切ってしまったのですが、やり直すとコストがかかるし材料も勿体ない。機能は満たしていますので余り材で誤魔化すことにします。<br />　自宅の改装課題はまだまだありますが、大物の目途が付いたので一山越えた気分です。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%ac%e3%83%81%e5%b7%a5%e4%bd%9c" class="taglink" title="ガチ工作">#ガチ工作</a> -- Posted by 電装工芸 〔264文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=834</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=834</guid>
	<category>tegalog</category>
	<pubDate>Wed, 13 Mar 2024 20:35:45 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　珍しく連休であります。昨日は雨だったので引き籠りましたが、… ]]></title>
	<description><![CDATA[ 　珍しく連休であります。昨日は雨だったので引き籠りましたが、今日は終日晴天の様ですから家具作りの続きをしようかなと。<br />　<a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?postid=822" class="postidlink">先日作った丸ナット</a>を使って２×４材を接合をするモノです。<a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?postid=824" class="postidlink">専用治具</a>の製作からですので本体の加工まで行けるかわかりませんが進めないと終わりません。この冬は本業が予想以上に忙しいので趣味の工作の進みが遅いのは仕方ありません。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%ac%e3%83%81%e5%b7%a5%e4%bd%9c" class="taglink" title="ガチ工作">#ガチ工作</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e5%b7%a5%e5%85%b7%e3%82%84%e8%b3%87%e6%9d%90" class="taglink" title="工具や資材">#工具や資材</a> -- Posted by 電装工芸 〔183文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=833</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=833</guid>
	<category>tegalog</category>
	<pubDate>Wed, 13 Mar 2024 06:45:32 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　先週末は現場が被りまくりでオロオロしてましたが、今週は比較… ]]></title>
	<description><![CDATA[ 　先週末は現場が被りまくりでオロオロしてましたが、今週は比較的ヒマなので少しはネタを進められそうです。<br />　プロセス間の共有メモリの読み書き管理はフローチャートレベルではまとまりました。デフォルトでは読み書きを禁止しておき、認証プロセス(スレッド)へ要求を出し読み書きの許可を得るものです。どちらかがアクセスしている間は他方の処理を待たせます。いわゆるセマフォです。<br />　この方法で本当にいいのか、タイムアウトなどの例外処理は必要か、その辺りは今後吟味です。<br />　主処理の実験は以前の試作で済んでいますので、こういった周辺機能をキチンと書くのが今の課題です。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%ef%bc%a3%e8%a8%80%e8%aa%9e" class="taglink" title="Ｃ言語">#Ｃ言語</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%41%72%74%2d%4e%65%74" class="taglink" title="Art-Net">#&#91;Art-Net&#93;</a> -- Posted by 電装工芸 〔293文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=832</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=832</guid>
	<category>tegalog</category>
	<pubDate>Wed, 13 Mar 2024 05:34:45 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　共有メモリの読み書きのタイミングを考えています。 ]]></title>
	<description><![CDATA[ 　共有メモリの読み書きのタイミングを考えています。<br />　Art-Netを受信して現在値を得る部分とそれを読みだしてパッチなりの加工をする部分はプロセスを分けようと思います。C言語では手続き型で書いても関数型で書いても基本は１プロセスで動作します。RaspberryPiでも１プロセスですべての処理を行っても間に合うと言えば間に合うのですが、プロセスを分けておいた方が処理に余裕が出来て後々いいかなと。<br />　プロセスを分けることのメリットはあるのですが、問題はプロセス間のデータ共有、共有メモリへのアクセスのタイミングです。受信プロセスが共有メモリに書いている最中に次処理のプロセスが読み出すとデータに不整合が起こります。一つのプロセスやスレッドで読み書きを行うなら手続きの順番的に起こらないことですが、それぞれが平行して勝手に動いていれば起こりうることです。書き込んでいる最中は読み出しを待たせ、読み出している最中には書き込みを待たせる仕組みが必要です。<br />　共有メモリは単純な機構のために速度が期待できる反面この様なマネージはされていません。書き込んでもいいぞ読み出してもいいぞとタイミングをジャッジする仕組みは自作しないといけないのです。<br />　機構は単純ですが、吟味しないと潜在的なバグ要因になりそうです。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%ef%bc%a3%e8%a8%80%e8%aa%9e" class="taglink" title="Ｃ言語">#Ｃ言語</a> -- Posted by 電装工芸 〔557文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=831</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=831</guid>
	<category>tegalog</category>
	<pubDate>Sun, 10 Mar 2024 06:22:03 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　今週末はホール管理の増員です。これといってやる事のない置き… ]]></title>
	<description><![CDATA[ 　今週末はホール管理の増員です。これといってやる事のない置きダヌキです。<br />　Art-Netパッチの処理構造を妄想。<br />　C言語でドライバ部、Pythonでユーザーインターフェース部を作る棲み分けですが、今はドライバ部の構成を整理しています。<br />　これまでの試行錯誤から処理フローを図式化。基本の流れは見えたと思います。<br />　ただ、C言語の構造体を用いた配列処理をもっと突っ込んで覚える必要があります。Art-Netのデータは、レベル値だけでなくメタデータとも言えるインデックスが重要で、カード型データ構造と言ってもいいでしょう。これの追加、削除、抽出、修正を延々と繰り返すので構造体配列を自在に扱えることは必須技能です。<br />　C言語での配列は少し不器用で、私の理解が間違っていなければ、配列をデータベースに見立てたとしてレコードの追加や削除は出来ません。出来ると言えば出来るのですが、特定のレコードを除いた配列全体を新たな配列としてコピーするような操作が必要です。追加も似た様な操作になります。<br />　少しややこしいのですが、次のサイトでは面白い事を書いてます。<br /><a class="url" href="https&#58;//nonbiri-daisuki.com/programing/c-program-struct-list/" target="_blank" title="https&#58;//nonbiri-daisuki.com/programing/c-program-struct-list/">C言語 構造体を使ってリスト構造を作るプログラム</a> <br />　C言語の配列に頼らずリスト構造を構成してます。言うなれば手作業で配列操作をするのです。<br />　また、変数名を使わずメモリ領域を確保してポインタで管理しています。一見不合理な使い方に見えますが合理的かも。アセンブラっぽいので私には違和感はありません。<br />　オレメモ<br /><a class="url" href="https&#58;//qiita.com/iyoshiha/items/47223c9ff8e4ce99e1ee" target="_blank" title="https&#58;//qiita.com/iyoshiha/items/47223c9ff8e4ce99e1ee">C言語：構造体のメンバのアドレス</a><br /><a class="url" href="https&#58;//mmxsrup.hatenablog.com/entry/2017/05/21/200420" target="_blank" title="https&#58;//mmxsrup.hatenablog.com/entry/2017/05/21/200420">C言語 ポインタ同士の引き算</a> <br />　配列が格納されるアドレスとピッチがわかればポインタで配列にアクセス出来ます。処理の内容によってはこの方が速いかも。<br />　この他にも、以前はどうも理解しきれなかったC言語のマルチプロセスや共有メモリ(mmap)のことが理解できた。<br /><a class="url" href="https&#58;//www.tenkaiken.com/short-articles/linux%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%81%AE%E7%94%9F%E6%88%90%E3%81%A8%E5%AE%9F%E8%A1%8C-fork-exec/" target="_blank" title="https&#58;//www.tenkaiken.com/short-articles/linux%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%81%AE%E7%94%9F%E6%88%90%E3%81%A8%E5%AE%9F%E8%A1%8C-fork-exec/">Linuxプロセスの生成と実行 fork／exec</a> <br /><a class="url" href="http&#58;//kad0randum.techblog.jp/archives/2997990.html" target="_blank" title="http&#58;//kad0randum.techblog.jp/archives/2997990.html">C言語でmmap()を用いてプロセス間で変数を共有する</a> <br />　以前の試作でイマイチだったところが解決しそうな期待感。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%41%72%74%2d%4e%65%74" class="taglink" title="Art-Net">#&#91;Art-Net&#93;</a> -- Posted by 電装工芸 〔876文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=830</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=830</guid>
	<category>tegalog</category>
	<pubDate>Sun, 03 Mar 2024 09:42:53 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　ロックタイト425はいい感じです。 ]]></title>
	<description><![CDATA[ 　ロックタイト425はいい感じです。<br />　手では全く回せませんが、モンキーレンチとプライヤで強めに回すと外せます。母材も痛みません。止まり具合はＭ６ボルトでスプリングワッシャを完全に潰してもう一息締めたくらい。素手では無理だけど工具なら外せるという正に願ったり叶ったりのコンディションです。<br />　で、ロックタイト425自体はブチルゴムの様な状態になっています。それほどベタベタはしないけど、へばりついて取れない消しゴムのカスみたいな感じです。<br />　ブチルゴムっぽいからと防水用途に使うには無理がありそうですが、ネジロックにはイイ感じです。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e5%b7%a5%e5%85%b7%e3%81%a8%e8%b3%87%e6%9d%90" class="taglink" title="工具と資材">#工具と資材</a> -- Posted by 電装工芸 〔274文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=829</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=829</guid>
	<category>tegalog</category>
	<pubDate>Fri, 01 Mar 2024 14:25:25 +0900</pubDate>
</item>

	<!-- END ENTRIES -->
</channel>
</rss>

