Skip to content

Instantly share code, notes, and snippets.

View mipsparc's full-sized avatar

mipsparc mipsparc

View GitHub Profile
import minimalmodbus
from serial.tools import list_ports
for d in list_ports.comports():
if d.description.startswith('USB Serial'):
device = d.device
class RM_PP03:
@mipsparc
mipsparc / ats-p_bin_extractor.py
Last active December 14, 2023 09:53
ATS-Pを復調したバイナリファイルから、ビットアラインメントがずれていてもCRCの正しい電文を取り出す
import bitstring
import collections
from crccheck.crc import Crc16Genibus
import re
f = open("../result_r_y_yg_nobori2-3.bin", "rb").read()
b = bitstring.BitArray(bytes=f)
r = re.compile('0x(7e.+7e)$')
def check(b):
@mipsparc
mipsparc / bin_checker.py
Created September 29, 2023 05:31
バイナリファイル内に特定の繰り返しが、(16bitにalignしていなくても)何個出現するかを探索する
import bitstring
import collections
f = open("result.bin", "rb").read()
b = bitstring.BitArray(bytes=f)
def check(b):
l = []
for i in b.findall("0x7E"):
if str(b[i+72:i+80]) == '0x7e':
@mipsparc
mipsparc / RaspberryPi_Pico_USB_Serial.py
Created February 21, 2022 12:19
Raspberry Pi PicoでUSBシリアル通信をするサンプルコード。
from machine import Pin, PWM
from time import sleep
pwm = PWM(Pin(15))
# 80kHz
pwm.freq(80000)
pwm.duty_u16(0)
line = ""
while True:
@mipsparc
mipsparc / OHC-PC01A.py
Last active March 17, 2021 22:53
三鶯重工(サンイン重工)のワンハンドルマスコンをPythonで扱うためのサンプルコード・プロトタイプです。一応動きます
#coding: utf-8
# サンイン重工 OHC-PC01AコントローラからPythonへ繋ぎこむライブラリ
import pygame
import time
class OHC_PC01A:
def __init__(self):
pygame.init()
@mipsparc
mipsparc / dsair2_analog_test.py
Last active May 10, 2020 02:58
DSair2 鉄道模型コントローラでアナログ鉄道模型をPythonから制御する、あくまでサンプルコード
#coding:utf-8
import serial
import time
def send(s, value):
s.write(value.encode('ascii') + b'\n')
s.flush()
def init_dsair2(s):
@mipsparc
mipsparc / dmarc.xml
Last active September 25, 2019 11:16
DMARCのXMLで特に見るべきポイント
<feedback>
<report_metadata>
<org_name>受信者名</org_name>
<date_range>
<begin>開始UNIX TIME</begin>
<end>終了UNIX TIME</end>
</date_range>
</report_metadata>
<record>
<!-- recordは1つのXMLに複数含まれうる -->
@mipsparc
mipsparc / retribe_xmls.js
Last active October 12, 2019 07:42
2日以内のDMARC XMLを取得するサンプルコード
function retribeXMLs()
{
var xmls = [];
var messages;
var zipblob;
var fileblob;
// 2日以内のすべてのスレッドを取得
var threads = GmailApp.search('newer_than:2d');
@mipsparc
mipsparc / sekkin.py
Created August 3, 2019 03:48
接近メロディーながすやつ
#coding:utf-8
import serial
import time
import pygame
# シリアルポートのデバイスファイル名に差し替える
port = '/dev/sekkin'
pygame.mixer.init(44100, -16, 1, 256)
@mipsparc
mipsparc / dep_bell.py
Created June 3, 2019 04:02
発車メロディ(発車ベル)ながすやつ for Linux/Mac/Windows
#coding:utf-8
# Requirements: Python3, PySerial, Pygame
# 同じディレクトリに bell.wav と announce.wav を用意する
# 「どこでも発車ベル」と同じボタンをつなぐ
# シリアルポートを設定する
import serial
import time
import pygame