2022年12月26日月曜日

lan-sw16p/maのコンデンサ交換

 ハブが調子悪かったので、新品にかえてもらったが、不具合のあるほうを、試しにコンデンサチェックしてみた。すると、470uF 16V 一個が、はんだごてで とりはずそうとすると、なぜか、ピンがするっとぬけてしまう。コンデンサからピンが抜けるのは、加熱したからと言って、あまり経験したことがない。もう1個、470uFがあったので、合計2個、手持ちの電解コンデンサと交換してみた。とりあえず、動作はOk,あとは、不安定にならないかどうか、試しに使ってみてもいいかもしれない。これで直ったら、もうけものだが。

 ちなみに、ぬけたピンをさして、容量を測定してみても、容量抜け?だろうか、0だった。接触不良の可能性もあるが。

2022年12月22日木曜日

Gasで血圧記録

 gasで即席でつくってみた。値を選択式にすると、もう少し使いやすかも。

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
      <script src="https://code.jquery.com/jquery-3.6.1.slim.min.js"  integrity="sha256-w8CvhFs7iHNVUtnSP0YKEg00p9Ih13rlL9zGqvLdePA="  crossorigin="anonymous">
      </script>
  </head>
  <body>
    <div  style="font-size:large;">
    <input type="text" id="hiduke" value="" style="font-size:large;">
    <input type="text" id="jikoku" value="" style="font-size:large;">
    <br>High
    <input type="text" id="high" value="" style="font-size:large;"><br>
    Low
    <input type="text" id="low" value="" style="font-size:large;"><br>
    脈
    <input type="text" id="myaku" value="" style="font-size:large;">
    <button id='Enter' onclick="Enter()">保存</button>
    <div id="msg"></div>
    </div>
    <div><a href="https://docs.google.com/spreadsheets/d/シートID/edit#gid=0">シート</a></div>
  </body>
</html>
<script>
   window.onload =   function(){   
    let today=new Date();
$('#hiduke').val(formatDate_dateOnly(today));
$('#jikoku').val(formatDate_jikoku(today));
   }


function formatDate_jikoku(dt) {
  var y = dt.getFullYear();
  var h=('00' + dt.getHours()).slice(-2);
  var mi=('00' + dt.getMinutes()).slice(-2);
  return (h+':'+mi);
}

function formatDate_dateOnly(dt) {
  var y = dt.getFullYear();
  var m = ('00' + (dt.getMonth()+1)).slice(-2);
  var d = ('00' + dt.getDate()).slice(-2);  
  return (y + '/' + m + '/' + d);
}

function Enter() {
        let hiduke =$('#hiduke').val();
         let jikoku =$('#jikoku').val();
          let high =$('#high').val();
           let low =$('#low').val();
            let myaku =$('#myaku').val();
            google.script.run.withSuccessHandler(onSuccess).withFailureHandler(onFailure).Set(hiduke,jikoku,high,low,myaku); 
  }
  function onSuccess(res){
    $('#msg').text(res);
  }
  function onFailure(res){
     $('#msg').text(res);
  }

  </script>

*****************
function doGet(e) {
  return HtmlService.createTemplateFromFile("index").evaluate();
}


function Set(hiduke,jikoku,high,low,myaku) {

  let spreadSheet = SpreadsheetApp.openById(シ-トID);
   let sheet = spreadSheet.getSheetByName('シート1');

   let lastrow = sheet.getLastRow();

   sheet.getRange(lastrow+11).setValue(hiduke);
   sheet.getRange(lastrow+12).setValue(jikoku);
   sheet.getRange(lastrow+13).setValue(high);
   sheet.getRange(lastrow+14).setValue(low);
   sheet.getRange(lastrow+15).setValue(myaku);


   return "送信済み"
  }

2022年12月11日日曜日

GASによるグループウエア

 グループウエアをGASで作ってみた。

データベースが使えないので、いろいろ制限があり大変だった。無料だから仕方ないとは思う。

回覧メッセージの未読チェック機能をスプレッドシートで、宛先の選択の工夫をJqueryで、という具合に。

表示遅い分少しでも、和らぐようにSPAにしてみた。

エクセルは、PCのGdriveリンクを共有で使うようにして、エクセルからスプレッドシートへの変換は、トリガーで毎分変更をチェックしながら行っている。

その他、文字修飾可能にすること、メッセージを2週間分に制限するため、自動削除機能をつけたこと。削除までの日数は、投稿者が選択できるようにしたこと。メッセージは、必要に応じて、GmailにPDFで送って、自分で保管もできるようにしたこと。

 等々、いろいろ対処したおかげで、完成まで数か月かかった。あと少し調整が必要かも。残念ながら、OSのせいか、自分のPCでは、C#のツールチップによる未読お知らせ機能を入れようとしたが、なぜか反応しない。仕方ないので、画面はFormにして、透明度を時間とともに変えるような実装にした。また、GASで作ったサイトをWebAPIとして、C#から読み取ろうとしたが、非常に面倒なのであきらめた。Gdriveにユーザーごとのファイルを作成して、それを経由して未読情報を、Gdriveの共有から読み取るようにしてみたらなんとかうまくいった。力技という感じだが、そもそもGASという言語を使っているので、このぐらいは仕方ないのでないかと思う。