0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

電子辞書CASIO XD-SXシリーズ向けPythonWEBサーバー

Last updated at Posted at 2025-12-09

はじめに

カシオ製電子辞書のXD-SXシリーズには、無線通信機能が搭載されています。
XD-SXシリーズでは、インターネットを使ってコンテンツを導入することができます。

インターネット接続を利用できれば、電子辞書をデジタルサイネージとして利用可能となります。
本記事の内容の一部は、「鹿児島Linux」と2025年8月3日の「東海道らぐ・FediLUGの鹿と盛り上がる合同LT大会 in 京都」、2025年8月23日の「Unagi.py × 鯱.py コラボイベント in 豊橋」で発表した内容を含みます。

XD-SXシリーズの無線機能

コンテンツライブラリとして機能します。
ブラウザは、Netfront Browserです。
ブラウザ仕様は以下の通り。
TLS 1.2 接続を要求
証明署名の不一致を容認
一部の JavaScript は動作せず
edulib-dictionary.casio.jp以外のドメインにはアクセス不可(Domain Error)
古い仕様のWebページなら表示できそうです。

無線利用の例

先行する例では、ローカルサーバーにデータを保存し、DNSスプーフィングを利用してアクセスしています。
httpsサーバーとしてnginxとdnsmasqの組み合わせを利用しています。

本実験でのネットワーク

本実験で使用したネットワークは以下の通りです。
image.png
サーバーのアドレスは固定で、クライアントの電子辞書はルーターからIPアドレスが割り振られます。

Pythonでhttpsサーバー

サーバーのスクリプトを一部表示します。

import http.server
import ssl
import os
DOC_ROOT = ‘.‘ 
FALLBACK_FILE = 'index.html'
PORT = 443
CERT_FILE = 'selfsigned.crt'
KEY_FILE = 'selfsigned.key’ 
…
if original_path == '/edulib-content-wifi/unauth/start_up':
            # location = /edulib-content-wifi/unauth/start_up
            self.path = '/' + FALLBACK_FILE
# --- サーバーの準備と起動 ---

Pythonでdnsサーバー

Dnsサーバーで、電子辞書からのアクセスを処理しています。
実際の運用では、httpsサーバーのスクリプトとdnsサーバーのスクリプトを合体して、1つのスクリプトにまとめています。

Pythonでindex.htmlを作成

電子辞書で表示するコンテンツをindex.htmlにするスクリプトです。
定期的に動作させて、情報の更新されたindex.htmlを生成します。

電子辞書での表示例

image.png

おわりに

Pythonで簡易httpsとdnsサーバーを作成しました。
表示用index.htmlもpythonで生成しています。
今後は、電子辞書で利用可能なjavascriptを活用して、表現豊かなサイネージに改良していきます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?