Navigation Menu

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 / totts.py
Last active September 9, 2023 12:48
MPEG2-TSの中のTDTパケットを取り出して、中に入ってる時刻情報を表示するやつ
#! /usr/bin/env python3
#coding:utf-8
#require bitstring
import bitstring
import math
import sys
filename = sys.argv[1]
packet_length = 188
@mipsparc
mipsparc / totts_stream.py
Last active July 22, 2023 18:31
totts.py(MPEG2-TSの中のTDTパケットを取り出して、中に入ってる時刻情報を表示するやつ)のリアルタイムストリーム入力可能にしたバージョン。
#! /usr/bin/env python3
#coding:utf-8
#require bitstring
import bitstring
from sys import argv
import math
import sys
import io
import time
@mipsparc
mipsparc / pidcount.py
Last active January 16, 2023 01:01
MPEG2-TSファイルを解析して、含まれているPIDと数を列挙する
#! /usr/bin/env python3
#coding:utf-8
#require bitstring
import bitstring
import math
import sys
filename = sys.argv[1]
packet_length = 188
@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 / 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');