【Setup】Lipgate

 

環境構築

Visual Studio2017

OpenFrameworks 0.9.8

 

・Windows 8.1 用 Windows ソフトウェア開発キット (Windows SDK)のインストール

 https://developer.microsoft.com/ja-jp/windows/downloads/windows-8-1-sdk
・include/リンカ設定
ソリューションエクスプローラー>openframeworksLib右クリック>プロパティ>c++全般>追加のインクルードディレクトリ
c:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\ucrt
ソリューションエクスプローラー>Multimonitor>右クリック>リンカ
>追加のライブラリディレクトリ
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.15063.0\ucrt\x86
・文字セット、マルチバイト文字jセットを使用する。
・Release/Win32でビルド

PrintService

サイドローディング(野良アプリ)

開発者モードにする

PowerShellで実行

 

uploader

python3.6.4

pip install requests

pip install python-osc

 

Creditインストール

vm_service2プロジェクト>プロパティ>構成のプロパティ>全般>文字セット>マルチバイト文字セットを使用する

libを下記へコピーし、プロジェクトにd&d追加

bin/lib
CANCD2.lib
PaymentServiceDLL.lib

 

dllを下記へコピー
bin
CANCD2.dll — GLORY
PaymentServiceDLL.dll — scspro
SCSProSIFM2V0.dll
SCSproSPP100G.dll
ssleay32.dll
libeay32.dll

 

インストール作業

・c:\Glory\Payment\iniフォルダを作成

 

デバッグ環境のみ
・infフォルダを上書きする。
inf-AnythingOK、デバッグ環境のときだけINFフォルダに上書きする。
テスト環境、本番環境の時はサーバーから取得できるので必要ない。

 

カードリーダー設定
・c:\Glory\Payment\にdllをコピー
・c:\Glory\Payment\ini\Settings.iniを作成。

Settings.iniの内容
[Device]
PID=5346
VID=0b6a
MSR=SP170500014
PIN=SP170500012

端末のIDを記載する。
MSRは、カードをスワイプする端末
PINはPIN入力する端末

 

クレジットネットワーク設定

・PCを192.168.0.61に設定

・コマンドプロンプト>管理者特権で実行
・route -p add 210.136.55.0 mask 255.255.255.0 192.168.0.254

・route print

 

INIフォルダの作成

・canc_initツール、テスト系本番系を切り替え。

c:\\glory\test\ini

c:\\glory\production\ini

 

・tidとクレジット、dllのipを変更。

・実行してINIフォルダを作成。

 

Lenovo ThinkStation

Windows 10 Pro

デバイスマネジャーの設定

COM4 PLC

COM5 Barcode

COM6 搭乗券Scanner

 

windows updateの停止

 

運用

起動処理

朝 9:00に自動起動

終了処理

・MAINTAINANCE > TERMINATE

・shutdown.bat

アプリ・コンテンツ更新

・Update_App.bat

・Update_Contents.bat

 

【設置機器セットアップ】

・python3.6.4

・pip install requests

・pip install python-osc

・USB/LANドライバ

・VisualSudio2017 再配布パッケージ(x86)インストール

・c:¥LipGate

・app/contents upload

 

・BIOS設定

・自動起動 netplwiz

・通知とアクション全てOFF

・メニュー右下

非通知モードをオンにする。

通知の無効化

アプリのアイコン非表示

新しい通知非表示

 

・不要なアプリ削除

Intel Management Engine Components

Lenovo welcom

Lenovo Vantage

sportify

sketchbook

OneDrive

My Office

One Note

Skype

Windows10更新アシスタント

XBOX Live

アプリインストーラー

 

【iOS】Realm build

Xcodeをバージョンアップしたときに、Realmのビルドしたバージョンとの違いが問題になる。
Module compiled with Swift 4.0 cannot be imported in Swift 4.0.3:


git clone https://github.com/realm/realm-cocoa
git submodule update --init --recursive
build.sh build

7SEG BOARD Mega V 1.0

7seg board mega.

 

IMG_2290 IMG_2292

 

v.1.0 修正箇所

・ボードの大きさを7SEGよりちょっと小さめに

・7segは、ボード直付けでなくメスソケット半田付けにする(取り外し可で、ボードネジ止め可能)

・I2C 4pinオスソケット

・電源2ピンオスソケット

・トランジスタのサイズ確認

・7segのサイズ確認。ピンずれ

Windows Update自動更新停止

windows 10 home

プロにアップグレードする。

・サービスを起動

メニューバーのところから、services.mscと入力。

Windows Update スタートアップの種類 無効

サービスの状態 >停止

 

グループポリシーを有効にする

https://www.itechtics.com/easily-enable-group-policy-editor-gpedit-msc-in-windows-10-home-edition/

homeと、Proだと項目が違うので結局ダメ

 

windows 10 pro

・ローカルグループポリシーエディタを開く

メニューバーのところから、gpedit.mscと入力。

 

[コンピューターの構成] – [管理用テンプレート] – [Windows コンポーネント] – [Windows Update]
[自動更新を構成する] を ”無効”

1607とか古いバージョンでは、下記の項目になっている。

[コンピューターの構成] – [管理用テンプレート] – [Windows コンポーネント] – [Windows Defender ウイルス対策]-[Windows Defender ウイルス対策を無効にします] を ”有効”

 

– ストア アプリの自動更新を無効化
[
コンピューターの構成] – [管理用テンプレート] – [Windows コンポーネント] – [ストア] –
[
更新プログラムの自動ダウンロードおよび自動インストールをオフにする] を “有効”

 

– Microsoft コンシューマー エクスペリエンスの無効化
[
コンピューターの構成] – [管理用テンプレート] – [Windows コンポーネント] – [クラウド コンテンツ] –
[Microsoft 
コンシューマー エクスペリエンスを無効にする] を “有効”

 

– ドライバーの検索を無効化
[
コンピューターの構成] – [管理用テンプレート] – [システム] – [デバイスのインストール] –
[
デバイス ドライバーを検索する場所の順序を指定する] を “有効” かつ
オプション [検索順序を選択する] にて、”Windows Update を検索しない” を指定

 

 

Windows 10 / Windows Server 2016 でも Windows Update の自動更新は止められます

 

PCB

 

DesignSpark PCBクイックスタート

https://designspark.zendesk.com/hc/ja/articles/212966269-DesignSpark-PCB-%E3%82%AF%E3%82%A4%E3%83%83%E3%82%AF%E3%82%B9%E3%82%BF%E3%83%BC%E3%83%88%E3%82%AC%E3%82%A4%E3%83%891-%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C%E7%B7%A8-

 

how to create my own component.

https://designspark.zendesk.com/hc/en-us/articles/115003968769-How-do-I-create-my-own-components-

 

Fusion PCB

https://fusionpcb.jp/

【Python】AES暗号化

from Crypto.Cipher import AES
import binascii

#print(binascii.hexlify(uuid.uuid4().bytes))

secret_key = ‘abcdefghijklmnop’
message = ‘1234567890abcdef’

crypto = AES.new(secret_key)

cipher_data = crypto.encrypt(message)

print(binascii.hexlify(bytearray(cipher_data)))

original_message = crypto.decrypt(cipher_data)
print(original_message)

【Djnago】カスタムテンプレートタグ

 

project/app/ templatetagsフォルダ作成 — my_tag.py

 

my_tag.py


from django.template import Library, Node, Variable, VariableDoesNotExist, TemplateSyntaxError

register = Library()

@register.tag
def cut(value, arg):
return value.replace(arg, ”)

 

このテンプレートタグを使って、uuidの-をカットする例

 

template

var marker_icon_{{ uuid|cut:”-” }} = new google.maps.Marker({

 

 

HDC1050

main.ino

#include "I2C.h"

I2C i2c;

byte buf[8];
float temp;

void setup() 
{
  //I2C
  i2c.setup();
   
  Serial.begin(115200);
  while (!Serial) ;
}

void loop()
{
  // Manifacture ID
  i2c.read_reg(buf, 0x40, 0xfe, 2);
  for(int i=0; i<2; i++){
    Serial.print(buf[i] ,HEX);
  }
  Serial.println("");

  // temperature
  unsigned short _t;
  i2c.read_reg(buf, 0x40, 0x00, 2);
  _t = buf[0];
  temp = 165.0 * ((_t << 8) | buf[1]) / 65536-40;
  Serial.println(temp);

  // humidity
  i2c.read_reg(buf, 0x40, 0x02, 2);
  _t = buf[0];
  temp = 100.0 * ((_t << 8) | buf[1]) / 65536;
  Serial.println(temp);

  delay(1000);

}

I2C.h

#ifndef I2C_H
#define I2C_H

#include "Wire.h"

class I2C {

  public:
    I2C();
    
    int setup();
    byte* I2C::read_reg(byte* buf, uint8_t addr,uint8_t reg, int num);
    
};
#endif

I2C.cpp

#include "Arduino.h"
#include "I2C.h"

I2C::I2C() {

}

int I2C::setup() {

  Wire.begin();

}

byte* I2C::read_reg(byte* buf, uint8_t addr,uint8_t reg, int num){

  Wire.beginTransmission(addr);
  Wire.write(reg);
  Wire.endTransmission();

  delay(50);
  
  Wire.requestFrom(addr, num);
  while (!Wire.available());

  for (int i=0; i < num; i++) {
    buf[i] = Wire.read();
  }

  return buf;
}