本文へスキップ

クリエーション・コア・コーポレーション(CCC)は、システム構築を専門とするソフト・ハードウェア開発会社です。

こんなときは(2〜4行開発メモ)DevelopMemo

※開発時 課題をどのように解決したかを 2〜4行で記載しております。
・ RaspberryPi PICO にて、 RTOSを動作させる環境を構築開始 簡単なものを実現 ライブラリーは使用せず
  アッセンブラ1ファイル+C言語ソース複数 リンクスクリプト PATHは Arm用実行フォルダ 一つのみ追加
  Windows11 VisualStudioCode 上で開発 Arm社から提供されている SDKのみ使用
  すなわち、ライブラリやブラックボックスのオブジェクトは一切使用せず実現
  様々な壁があったので後日まとめてみようと思っています 2024年03月05日
・ Excelにて CSVを読み込み展開するアプリおよび、エラーや警告時に原因箇所にジャンプ
  汎用ルーチン作成 また、全てのエラー、警告表示に番号を付け共有し易さを実現 2024年01月
・ JavaScript を利用し カタログ140ページのイラストレータデータの ページ、文字、タブ位置などを
  自動修正、画像埋め込みチェックなどを自動で行うツール作成
  その他、印刷向けPDFおよび、WEB表示向けPDF(軽量)作成もJavaScriptで実現しました。2022年10月27日
・ Pythonで複数スレッドクラスのファイルでハードウェア制御で同期をとるためにロックオブジェクトを
  共有する必要が生じました。グローバル宣言での実現。外からロックオブジェクトを渡す
  様々な意見を取り入れましたがテストは全てOK、現時点の最終はクラス変数で展開するということで
  落ち着きましたありがとうございました。クラス変数は初めて使用させて頂きました。2021年04月30日
・ JavaScriptと PHPの Web開発を同時に進めるために Html+JavaScriptのソースの間に PHPにより作成された
  データをセットできるようにしてみました。開発がスムースでした。PHPでは Html+JavaScriptファイルを
  読み込みの中の▼▼--▲▲の中にデータを埋め込みHtmlとして吐きだすというやり方です。2020年10月06日
・ JavaScript のデバッグは Google ChromeのF12で開く「検証」にて行うことにしました。ブレーク、
  変数のモニタ、エラー表示など ソースのコーディングはテキストエディタで行いました。
  Google Chrome に感謝です。2020年10月05日
・ Python3.6 同じクラスを宣言する場合(インスタンスを作る場合)、2回目のクラス宣言のときに初期化されず
  1回目のクラスと同じものがセットされるクラス内のグローバルな変数(self.XXX)があるようです。参照扱い
  (listなど)で生じます。__init__ 内で明確に初期化するようにしてください 2020年08月03日
・ RaspberryPi アプリ自動起動(systemd使用)ログ、一部ファイルが希望フォルダに作成されない
  /etc/systemd/system/sample.service の [Service]項目
  WorkingDirectory=/home/....   ワークディレクトリを明記 2020年08月01日
・ RaspberryPi4B でWatchDogTimer(ウォッチドッグタイマー)が必要となりました。bcm2711を使用して
  いるのでRaspberryPi3Bで使用している方法ではだめかもと思いましたが、RaspberryPi3Bの時と同様
  bcm2835の文言を使用して WatchDogTimer 正常動作確認できました。 2020年07月31日
・ Kicad で部品表BOM(bill of material)を創りたいが日本語のフォルダ名の為か?うまく出力されないとき
  回路図作成(Eeschema)で部品表作成>BOMプラグイン bom_csv_grouped_by_value を 選択>生成実行
  できるだけ回路図側でプロパティ詳細を決めましょう。部品表が楽です。 2020年03月4日
・ Kicad 両面基板 できるだけグランドを広くとりたい。
  ゾーンの塗りつぶしを実行した後、できれば増やしたいところでかつ空いているところにグランドからの
  ビアを打ちます。再度ゾーンの塗りつぶし。あらビックリ。グランドが増えます。 2020年02月27日
  ※塗りつぶしゾーンはグランドに限りません。右ツールバーの「塗りつぶしゾーンの追加」参照
・ Kicad でネジ穴をつくりたい。
  MountingHoleを回路図に穴数配置。基板設計ツール(Pcbnew)で穴位置にMountingHole配置。
  フットプリント****_2.5mmは穴径2.5mmを示します 2020年02月27日
・ Kicad Ver5.1.2 角を丸くしたい。角を選択し弧を描くために角を選択したいがうまく選択できない
  角にカーソルを持ってきて何度も左クリックしているうちに角が□に変わり、そのまま移動することで
  角が短くなります(選択 慣れるまでとても難しい)。その後円弧描画 2020年02月27日
・ Arduino開発環境補足 通信ポートのクローズ処理の関係で VisualStudioでソース作成(Intellisense)とビルド
  Arduinoデフォルト開発環境でプログラム検証+ボード書込+シリアルモニタ確認 2018年11月20日
・ Arduino開発環境 VisualStudioで可能であること判明 Intellisense機能,シリアル通信モニタ機能あり。感動
  (参考)http://poohkids.com/arduino/environment-arduinoideforvs/2018年11月19日
・ Excel ボタンの大きさ、フォントの大きさが変化してしまうことがある。
  Excel立上げ中に解像度が変化するとこのような現象になる。VBAにてボタン要素設定する2017年9月
・ 社判 担当印 のシートの背景を真っ白rgb(255,255,255)にとの依頼があり作成(バック透明にしたい)
  C#作成 データColor配列セット Red>200以上 and Green>210 and Blue>210 の場合RGB=255 2017年2月
・ HPB google map での表示ができない。一瞬表示するがすぐエラー   google api key が必要。2013年6月
  から変更。key取得 下記の如くkey埋め込み(注:HPB上一瞬表示後エラー しかし実サーバーでは正常表示)
  script src="https://maps.google.com/maps/api/js?key=XXXXXXX" charset="UTF-8" ... 16/07/18
・ C# ListView 複数列の指定行のBackColorを変えたが反映しない(困)item.UseItemStyleForSubItems=false;
   これで反映(lstVw.Items[iRow].Color と item.SubItems[0...].BackColorも当然ですが必須) 16/05/08
・ PHPのフォームでの配列のセットでとても便利な方法がありましたのでこれについては後日記載します
   クラスのカラクリを使用するのですが、お楽しみに。2014/9/末
・ html5 table カラム多 横長テーブル IE9 ではセルの行数1行で横長OK IE10横1ページ内セル複数行表示(困)
  IE10でも IE9 と同じあり(2サーバー同一ソース組込テスト) 解決策css td {white-space: nowrap;}
・ PHP setcookie() を行ったが反映されない。先頭での使用、クッキー上書有無など調べたが問題なかった。
  setcookie()ブラウザ表示前が決まり include_once ソース側 最後の ?> 後の空白行が原因(驚き)
・ PHPDataObjectカウント取得POINT='as cnt' 解決策 $Stt=Fdb->prepare( 'select count(*) as cnt ...');
  $Stt->execute(); $val=0;while($row=$Stt->fetch() ){$val=$row['cnt'];break;}でOK
・XAMPP デバッグ開始 1行目も実行しない ソースのサイズが大きくなったか ソースのエラーは無し
  関数の引数の渡し方 参照渡しの形式でコールしてしまっていた。 NG=> abc( &$def)でコール
・Excel 40シートシステム医療情報、500氏名 一気に変更したい。 ベスト苗字100、名前100を配列セット
  苗字、名前 rand(乱数) 500配列作成 For To Worksheets.Count Worksheets(i).Select replace_sub(src,obj)
・PHP textarea で後半の全角半角スペース、改行を取り除きたい。どうしたら?
  rtrim($str) により後半改行半角スペース削除 最後の文字mb_substr( ) 全角スペース比較
・PHPは なんで ===(イコール3つ)があるの? strops() mb_strpos( ) 無い時false(=0) 先頭位置時=0 区別は?
  false は 0の値 よって == では 先頭or無い の区別つかない よって型比較付の === を使うのです。
・XAMPPを使用 PHP でif 文の次の行で ブレークがかからないのに、実態は if文の次の行を実行していた
  対応:if 文の後が1行の場合は、中かっこを使用していなかった。中かっこを使用することでブレークがかかる
・訪問看護スケジュールにて、訪問重複などのエラーの原因箇所がわかりにくい為、修正しづらい
  対応:各利用者シフトラインに元データへのリンクをセットし、データ修正を楽にした。(Excel使用)
・PHPでソースレベルで改行するように '\n' を使ったが 改行しない。
  対応:'(シングル)は文字展開しない。基本表示は ' を使用するので,関数nl()作成 内部で print("\n")
・PHPではクラスメンバー宣言をしなくても使用できるのでミスしていても発見できない。曖昧さ重視?
  対応:クラスで使用している変数モニターをクラス内部につくることにした。(身近にモニター関数)
・PHPで abstract を使用してクラスの共通部品を実装しようとおもったが。忘れエラー出ない(xammp 環境)
  対応:エラーが出ない限り人間系の間違いを防ぐことはできないので abstract を使用しないようにした
・Access 内部で Excel.Application を使っていたら。納品先で参照設定の変更できないトラブル(原因不明)
  対応:Excel.Applicationを全てコメント 実行前に参照設定Excelを削除。再度 Excel.Application復活 解決
・PHP クラスをリスト(コレクション)にセットしたいと思われた方。PHPでは配列がリストを実現しています
  リストのカウントは count(クラス) で取得できます。
・PHP 配列クリアの unset($global_array); を行うと ローカルな変数をクリアしたことになる。内部で
  変数をローカルにしてしまうのです。グローバルを unset() したのに予定外の動作の場合は、注意
・PHP php Launch Already Running php.ini zend_extension="C:\xampp\php\ext\php_xdebug.dll"(1
  xdebug.remote_enable=1(2 xdebug.remote_host="localhost"(3(1--3)変更後OK理由不明
・C#アプリ 海外版の作成(Osは日本語対応版使用)の依頼あり。日本語文字抽出アプリ、特殊%d文字抽出アプリ、
  変換リスト検索ルーチン、変換テキストDB、変換後文字幅チェック、ソース自動実装アプリにより実現
・FileMaker 生年月日から誕生日計算表示で入力時年齢はOKだが1年たっても年齢変化せず。(年齢=計算フィールド)
  (年齢=数値フィールドに変更,OnFirstWindowOpen,OnObjectModify(誕生日変更時,年齢変更時)で解決)
・ ACCESS イベントプロパティに指定した式クリック時でエラーが発生しました。モジュールがありません。エラー
  (ACCESS自体のバグ。プロパティ画面で、フォームを開くイベントを削除し設定し直しで解決)
・ ACCESS 全テーブルフィールド名/桁数 統一チェック (データベースツール>データベース構造の解析>
   印刷イメージ右クリック>エクスポート>Word RTFファイル>Word>エクセル張付>C列B列ソート>"型"で検索>フィールド名桁数比較)
・ ACCESS 列の並べ替えの解除の方法は <一度設定すると解除できないため>
  (プロパティ読み込み時にフィルターを適用= いいえ or 任意のイベントで フィルター="")
・ ACCESS フィールド誕生日から年齢を求め明細及び一覧表示。(Public Function GetAge(Birthday) as Long作成
  レコードソースのSQL <年齢: GetAge([Birthday])>フィールド追加で可能(年齢取得方法はWeb上に多数))
・ ACCESS コンボAの値集合ソース(SQL)をフィールドBの値でリアルタイムで変更したい
  (Aのフォーカス取得イベントにBの値により変更される値集合ソースを比較後セット)
・ グーグルカレンダーインポート 一度削除したデータに対する「再度インポートされません」エラー回避
  (原因:削除同一データは受け入れない考え方、対応: 表示非反映「支払い条件」にユニーク文字セット)
・C#ボタン移動時 ボタンに割り付けた処理の実行をしない方法
  (private変数 移動フラグ 初期時OFF 移動時ON クリック時OFF にしClickEventにてチェック+分岐)
・C#フォーム上ににラインを引く方法のもっとも自然と思われる方法
  (PictureBox を最背面+Dock=Fill フォームに貼り付け)
・C#指定のフォームがすでに開いているかを知る方法(共通フォームを使いまわすシステム)
  (「フォーム名+フォームテキスト」で区別 foreach (Form f in Application.OpenForms))
・C#テキスト文章の印刷で現在ページ/トータルページ を印刷したい。(テキストは文字大きさ行により変化)
  (プレビュー※必要であれば非表示 で一度トータル取得しそのまま印刷処理へ)
・TCP/IP ソケット通信でサーバーとクライアント C#で スレッド作成するためのイメージ
・C#でのスレッドの処理の仕方。スレッド終了待ち、スレッド終了後アプリ終了の方法はどうする。
・C#で、クライアント側の接続失敗時のリトライ処理は?
・PC側PLC制御VB6.0(13年前開発)の全面C#移行。 ソース無。稼働中シスの為テスト短期必須。
・エクセルVBA リークを無くすため、コレクションメンバーのクラス解放を簡単に理解したい。
  (各クラスでコレクションを発生し、クラス破棄の時にコレクションを破棄する構造にする)
・通信状態テーブルは完成した。そのままテーブル構造にしたが、完成後変更が大変。本当はどうしたら?
  (ある程度テーブルにしたら、あとはロジックを組むことが重要)
・PLC(シーケンサ)との接続時に、PCがダウンしても結果データをできるだけ救いたい。
  (非揮発性のPLCメモリーのエリアに多数の結果を保存できるようなエリアを作る)
・PLCとのインターフェースにおいて、データセット完了、データ受信済みなどのプロトコルはどうする?
・PLCシミュレータで、PCとエージングテストしたいがどうしたらいい?シミュレータ作成の工数は?
  (できるだけ両方のデバッグやログを共通にするためにメインアプリの中にシミュレータも作成)
・PLCとの通信のある時点の大量の通信生(なま)ログを、アプリの処理には負荷をかけずにモニタしたい。
  (表示処理から一瞬ロックし現在のログをコピーし、ロックをはずしログ側は通常に戻す)
・PLC間のインターフェース用メモリの配置を簡単につくれないか。
  (エクセルなどのツールにより<自社製品もあります>メモリ配置表をメンテナンスを行う。)
・ FileMaker において、非常に多くのフィールドをもつ1テーブルを一度に作成したい。
  (一度、すべてのフィールドをエクセルで作成し、ファイルメーカーでそれを吸い込む)
・ FileMaker において、データをエクセルにすべて出力したいが。それらを集計など外部で行いたいが。
  (エクセルに全て出力する機能はファイルメーカーにありますので、集計を外側アプリで処理する)
・スレッドでデータベースを操作したいが、スレッドセーフに引っ掛かりハングアップしてしまう。どうしよう。
  (1スレッド1DBアクセス処理とする。メインスレッドに一つ、サブスレッド毎1つ 但し許可クライアント数注)
・フォーム表示をスレッド側からアクセスするとハングアップ。BeginInvoke()使用しないシンプルな考え方は?
  (必ずフォーム側からスレッド側のパーツにロックをかけてデータを取得する)

バナースペース

潟Nリエーション・コア・
コーポレーション(CCC)

〒143-0012
東京都大田区大森東