profile
viewpoint
Markus Kohlhase flosse @slowtec Germany (flosse = free libre open source software engineering)

flosse/FAST 24

Free All Scrambled Thoughs

flosse/als-aid 5

Advanced Life Support - Mobile App

flosse/bits 4

Easy bit manipulation

art-ist/onYOURway 3

Plattform for Mappers - The Future is Around You

flosse/everyjs.com 2

An index of modern JavaScript. Helps you pick the right tool for the job.

flosse/awesome-rust 1

A curated list of awesome Rust code and resources.

flosse/beautiful-docs 1

A beautiful way to read documentation

flosse/buster-coffee 1

Buster.JS extension that automatically compile CoffeeScript files before running tests

flosse/coffeecup 1

keeping the project alive with this clone of mauricemach/coffeekup

flosse/coffeekup 1

Markup as CoffeeScript.

Pull request review commentethercat-rs/ethercat

Add util function to fetch SDOs of a slave

+use crate::{Error, Master, SdoEntryAddr, SdoEntryInfo, SdoIdx, SdoInfo, SdoPos, SlavePos, SubIdx};+use std::collections::HashMap;++type Result<T> = std::result::Result<T, Error>;++pub fn slave_sdos(+    master: &mut Master,+    slave_pos: SlavePos,+) -> Result<HashMap<SdoIdx, SdoEntryInfo>> {+    let slave = master.get_slave_info(slave_pos)?;+    let sdo_positions = (0..slave.sdo_count).into_iter().map(SdoPos::from);+    let mut res = HashMap::new();+    for sdo_pos in sdo_positions {+        let SdoInfo {+            idx, max_sub_idx, ..+        } = master.get_sdo(slave_pos, sdo_pos)?;+        let sdo_entries = (0..=u8::from(max_sub_idx))

Within the original CLI they start at 0:

 for (i = 0; i < slave.sdo_count; i++) {
        m.getSdo(&sdo, slave.position, i);

http://hg.code.sf.net/p/etherlabmaster/code/file/tip/tool/CommandSdos.cpp#l136

flosse

comment created time in 21 hours

PullRequestReviewEvent

push eventkartevonmorgen/openfairdb

Markus Kohlhase

commit sha b3a02eca435701138a6b0d46b94e8c260e1e8df0

Clearance center: update to seed v0.8.0

view details

push time in 2 days

created tagkartevonmorgen/ofdb-seed

tagv0.2.0

A seed library for building Open Fair DB based web applications.

created time in 2 days

push eventkartevonmorgen/ofdb-seed

Markus Kohlhase

commit sha 81d281e9c9abb5d56335240813f8f2e2a1b3075b

Release v0.2.0

view details

push time in 2 days

create barnchkartevonmorgen/openfairdb

branch : update-seed

created branch time in 2 days

push eventkartevonmorgen/openfairdb

Markus Kohlhase

commit sha 348d240865a78671bd8bf88790e48c9a359235fc

Update rust in shell.nix

view details

Markus Kohlhase

commit sha 6ca4b13481408fa7b962bad312d244036a49bb33

frontend: change button label from 'review' to 'archive'

view details

Markus Kohlhase

commit sha ef2c47d26d3d878864a337cd9b89ac25588eb5fd

Implement simple captcha service

view details

push time in 2 days

issue openedsynapticon/Etherlab_EtherCAT_Master

SDO upload times

I'm curious to understand why reading a SDO takes 25ms in operation mode whereas with the SOEM stack it takes only 2ms. Do you have some experiences with this? Is this timing behavior caused by a bad configuration?

Here is my context:

  • v1.5.2-sncn-11
  • Ubuntu 18.04.4 LTS
  • Kernel 4.19.118
  • Intel Ethernet I218-LM / driver=e1000e
  • Cycle Time: 1ms
  • Slave: Weidmüller ur20 I/O system

created time in 2 days

issue openedkartevonmorgen/openfairdb

Limit write requests for unauthorized users

In addition to #308 we could limit write request by looking for the IP address.

created time in 2 days

push eventslowtec/ethercat

Markus Kohlhase

commit sha 3f3d8640d5ca788d58fd47f5d212b3f4fe071f7e

Add pregenerated bindings

view details

Markus Kohlhase

commit sha 60270ef1a94c0da1ea7ede035c07a18716f431a7

Relase ethercat-sys v0.2.0

view details

push time in 2 days

PR merged ethercat-rs/ethercat

Add pregenerated bindings

this should fix #23

+2814 -76

1 comment

8 changed files

flosse

pr closed time in 2 days

issue closedethercat-rs/ethercat

Vendor the upstream repository for ethercat-sys

To make compiling ethercat-sys easier, is it possible to vendor http://hg.code.sf.net/p/etherlabmaster/code as a git submodule?

The idea being that

  • the git clone ... && cargo build workflow will Just Work, and it won't impact projects which transitively depend on ethercat-sys
  • The docs.rs build will complete so you can read ethercat's docs online (build logs)
  • It's not possible for someone to accidentally use a different checkout of the upstream repository
  • You can remove this panic

I know the original repository uses mercurial, but there seems to be a way to bridge git and mercurial.

When publishing to crates.io, cargo will just grab the files on disk and not go through git/mercurial. That means people using the published crate won't need to use tools like git-hg.

closed time in 2 days

Michael-F-Bryan

push eventethercat-rs/ethercat

Markus Kohlhase

commit sha 3f3d8640d5ca788d58fd47f5d212b3f4fe071f7e

Add pregenerated bindings

view details

push time in 2 days

push eventslowtec/ethercat

Markus Kohlhase

commit sha b8fbfb0f7b8447b7b40167ef3834281d9e9a39b9

Add complete_access parameter to sdo_upload & sdo_download

view details

Markus Kohlhase

commit sha 3f3d8640d5ca788d58fd47f5d212b3f4fe071f7e

Add pregenerated bindings

view details

push time in 2 days

pull request commentethercat-rs/ethercat

Add pregenerated bindings

Is there some automated process to regenerate these?

no. We could add a shell script to automatically copy & rename the generated files but I would not prioritize this yet. This could be done in e.g. a v0.2.1 release.

flosse

comment created time in 2 days

Pull request review commentethercat-rs/ethercat

Add pregenerated bindings

 use std::{env, fmt::Write, fs, path::PathBuf};  fn main() {-    let path = env::var("ETHERCAT_PATH").expect(-        "Please set the ETHERCAT_PATH env var to the location of \+    if env::var(format!("CARGO_FEATURE_PREGENERATED_BINDINGS")).is_err() {

That's why I copied it from an other build file that used variables ;-)

flosse

comment created time in 2 days

PullRequestReviewEvent

Pull request review commentethercat-rs/ethercat

Add pregenerated bindings

 default = [] # Enable this feature to use it with the # synapticon branch `release/v1.5.2-sncn-11` # at https://github.com/synapticon/Etherlab_EtherCAT_Master-sncn = []+sncn = ["ethercat-sys/sncn"]++# Enable this feature to use pregenerated bindings.+# CAUTION: If your kernel module was not build

thx:)

flosse

comment created time in 2 days

PullRequestReviewEvent

push eventslowtec/ethercat

Markus Kohlhase

commit sha 3f3d8640d5ca788d58fd47f5d212b3f4fe071f7e

Add pregenerated bindings

view details

push time in 2 days

startedrust-osdev/uefi-rs

started time in 3 days

PR opened ethercat-rs/ethercat

Add pregenerated bindings
+2814 -76

0 comment

8 changed files

pr created time in 3 days

push eventslowtec/ethercat

Markus Kohlhase

commit sha c56ea939d1615ba25e8bd2a0090eebf94fa99b7e

Add pregenerated bindings

view details

push time in 3 days

create barnchslowtec/ethercat

branch : pregenerated-bindings

created branch time in 3 days

issue commentethercat-rs/ethercat

Vendor the upstream repository for ethercat-sys

... I'll try to add this to v0.2 (#28)

Michael-F-Bryan

comment created time in 3 days

issue commentethercat-rs/ethercat

Vendor the upstream repository for ethercat-sys

The other solution is to pre-generate the bindings,

that sounds good :)

of course, but then we have to bless one of the codebases (there is the original Etherlab code, in Mercurial, with several branches, and there is a clone with patches at https://github.com/synapticon/Etherlab_EtherCAT_Master).

We could pick two versions, one for the official and one for synapticon.

Maybe include pregenerated bindings with a feature flag (that is enabled for docs.rs)?

+1

Michael-F-Bryan

comment created time in 3 days

PullRequestReviewEvent

Pull request review commentethercat-rs/ethercat

Relase ethercat-sys v0.2.0

 name = "ethercat-sys" description = "Binding to the Etherlab open-source EtherCAT master" keywords = ["ethercat", "master", "etherlab", "binding"]-version = "0.1.3"+version = "0.2.0" authors = ["Georg Brandl <g.brandl@fz-juelich.de>"]

yes, thanks :) I also added some more metadata.

flosse

comment created time in 3 days

push eventslowtec/ethercat

Markus Kohlhase

commit sha e34561cbe5c3c9119cf5f91908d4d43094a57e24

Relase ethercat-sys v0.2.0

view details

push time in 3 days

PR opened ethercat-rs/ethercat

Relase ethercat-sys v0.2.0

Can we release ethercat-sys v0.2.0?

+1 -1

0 comment

1 changed file

pr created time in 3 days

create barnchslowtec/ethercat

branch : sys-0.2

created branch time in 3 days

Pull request review commentethercat-rs/ethercat

Add util function to fetch SDOs of a slave

+use crate::{Error, Master, SdoEntryAddr, SdoEntryInfo, SdoIdx, SdoInfo, SdoPos, SlavePos, SubIdx};+use std::collections::HashMap;++type Result<T> = std::result::Result<T, Error>;++pub fn slave_sdos(+    master: &mut Master,+    slave_pos: SlavePos,+) -> Result<HashMap<SdoIdx, SdoEntryInfo>> {+    let slave = master.get_slave_info(slave_pos)?;+    let sdo_positions = (0..slave.sdo_count).into_iter().map(SdoPos::from);+    let mut res = HashMap::new();+    for sdo_pos in sdo_positions {+        let SdoInfo {+            idx, max_sub_idx, ..+        } = master.get_sdo(slave_pos, sdo_pos)?;+        let sdo_entries = (0..=u8::from(max_sub_idx))

Sorry, I was imprecise. I meant that (I thought that) querying subindex 0 gives you the max_sub_idx. So you'd have to do 1..=max?

ok, done.

As for handling errors, maybe there is a special error for the "not defined" case which could be handled by not returning early? Sorry, can't test with my system right now.

ok, I'll try to test it soon with some real hardware.

flosse

comment created time in 3 days

PullRequestReviewEvent

push eventslowtec/ethercat

Markus Kohlhase

commit sha b8fbfb0f7b8447b7b40167ef3834281d9e9a39b9

Add complete_access parameter to sdo_upload & sdo_download

view details

Markus Kohlhase

commit sha 5791e66570654359bcba1564ab800e70bfdeb4b6

Add util function to fetch SDOs of a slave

view details

push time in 3 days

push eventethercat-rs/ethercat

Markus Kohlhase

commit sha b8fbfb0f7b8447b7b40167ef3834281d9e9a39b9

Add complete_access parameter to sdo_upload & sdo_download

view details

push time in 3 days

create barnchslowtec/ethercat

branch : sdo-complete-access

created branch time in 3 days

Pull request review commentethercat-rs/ethercat

Add util function to fetch SDOs of a slave

+use crate::{Error, Master, SdoEntryAddr, SdoEntryInfo, SdoIdx, SdoInfo, SdoPos, SlavePos, SubIdx};+use std::collections::HashMap;++type Result<T> = std::result::Result<T, Error>;++pub fn slave_sdos(+    master: &mut Master,+    slave_pos: SlavePos,+) -> Result<HashMap<SdoIdx, SdoEntryInfo>> {+    let slave = master.get_slave_info(slave_pos)?;+    let sdo_positions = (0..slave.sdo_count).into_iter().map(SdoPos::from);+    let mut res = HashMap::new();+    for sdo_pos in sdo_positions {+        let SdoInfo {+            idx, max_sub_idx, ..+        } = master.get_sdo(slave_pos, sdo_pos)?;+        let sdo_entries = (0..=u8::from(max_sub_idx))

Isn't subindex 0 the max-subindex again?

ok, so now I have

(0..u8::from(max_sub_idx))

Also, in my experience not all subindices up to max-subindex need to be valid. Is that handled here?

no, I can't handle it ... I can just early return on errors. Do you have an other idea?

flosse

comment created time in 3 days

PullRequestReviewEvent

push eventslowtec/ethercat

Markus Kohlhase

commit sha 60e1622c6ebea9a0edb6d4655bc67306ce7cd38c

Add util function to fetch SDOs of a slave

view details

push time in 3 days

push eventkartevonmorgen/openfairdb

Markus Kohlhase

commit sha 9d232218b09ed80aab1bc1a19b625871990561e3

Implement simple captcha service

view details

push time in 3 days

PR opened kartevonmorgen/openfairdb

Archive button
+2 -2

0 comment

2 changed files

pr created time in 3 days

create barnchkartevonmorgen/openfairdb

branch : archive-button

created branch time in 3 days

push eventkartevonmorgen/openfairdb

Markus Kohlhase

commit sha 356f6bcefacc256966ef1d82a22515c8b8a3cbd4

Implement simple captcha service

view details

push time in 3 days

push eventkartevonmorgen/openfairdb

Markus Kohlhase

commit sha 3b129afb0b3d96f1ffd3c6a4b2c85d39c9785deb

Implement simple captcha service

view details

push time in 3 days

push eventkartevonmorgen/openfairdb

Markus Kohlhase

commit sha 85c210c34c38790a317bf924d5a37c6118e3730c

Implement simple captcha service

view details

push time in 3 days

push eventkartevonmorgen/openfairdb

Markus Kohlhase

commit sha 19d1082bfd1375ffa4dfd7a53990daff4e249466

Implement simple captcha service

view details

push time in 3 days

push eventkartevonmorgen/openfairdb

Markus Kohlhase

commit sha 00648367cc562f6fc8d111518495f03715b10fa4

Implement simple captcha service

view details

push time in 3 days

push eventkartevonmorgen/openfairdb

Markus Kohlhase

commit sha 747874458d76a7fc2bc610b4945b4caecb0ace17

Implement simple captcha service

view details

push time in 4 days

push eventkartevonmorgen/openfairdb

Markus Kohlhase

commit sha 8340c2f66f59bfcb1dfe8e72f1094239d319e596

Implement simple captcha service

view details

push time in 4 days

PR opened daniel-e/captcha

Updates

Would you mind to publish a new version?

+230 -164

0 comment

14 changed files

pr created time in 4 days

push eventkartevonmorgen/captcha

daniel-e

commit sha f37e3290578f657e3093b937a27d26edda61783c

upgraded dependency

view details

Markus Kohlhase

commit sha fa725cd35010f16dfdafa849e673e2f8bb90a026

Update image depencency

view details

Markus Kohlhase

commit sha 7ce8865f1e3e8ae02654895b03b6517222752a28

Run cargo fmt

view details

Markus Kohlhase

commit sha 555d7c407ffd2aa017216a92b41672de84117ca7

Update base64 dependency

view details

Markus Kohlhase

commit sha 783a438f1ee2f6cfb9236b9e9073323c25cfbdf0

Update serde_json dependency

view details

Markus Kohlhase

commit sha b67da7f99f01fd682cf9f457b823c50dd4ae85ce

Update time dependency

view details

Markus Kohlhase

commit sha 08f41d6cc5f654f60921119404e4f572fcbfa278

Update lodepng dependency

view details

Markus Kohlhase

commit sha 6ed4fab32f543528230ff8519fc6f3e6e9769223

Update rand dependency

view details

push time in 4 days

push eventkartevonmorgen/openfairdb

Markus Kohlhase

commit sha d82ff0452c7f8ae864838c3c11e1c1a3af2fb50d

Implement simple captcha service

view details

push time in 4 days

push eventkartevonmorgen/captcha

Markus Kohlhase

commit sha f312e92437e2ae70267e1dff8e0e4368d5a16c8d

Update base64 dependency

view details

push time in 4 days

push eventkartevonmorgen/openfairdb

Markus Kohlhase

commit sha 0cedc6065b5104a3648c25f08bcd2b01039095cd

Implement simple captcha service

view details

push time in 4 days

create barnchkartevonmorgen/captcha

branch : updates

created branch time in 4 days

startedrobatipoor/captcha

started time in 4 days

push eventkartevonmorgen/openfairdb

Markus Kohlhase

commit sha 69e8b66ff5f10e66423841e69d49661ff0a5f683

Implement simple captcha service

view details

push time in 4 days

push eventkartevonmorgen/openfairdb

Markus Kohlhase

commit sha 484e6152e6085605e4e02fc361e21b357d99aeab

Implement simple captcha service

view details

push time in 4 days

push eventkartevonmorgen/openfairdb

Markus Kohlhase

commit sha 03e06973006eadabf0e7e088a7dc1ecb20e66876

Implement simple captcha service

view details

push time in 4 days

push eventkartevonmorgen/openfairdb

Markus Kohlhase

commit sha 34a74540fdf9e3e45a87dd9d77495cf40ccb93f4

Implement simple captcha service

view details

push time in 4 days

push eventflosse/rust-web-framework-comparison

Pete Doherty

commit sha c3284eb03eb3f5f054424693283ecc5fbf31128c

Update README.md Point to forked version of rustmebapp repository.

view details

push time in 4 days

PR merged flosse/rust-web-framework-comparison

Update README.md

Point to forked version of rustwebapp repository.

+1 -1

0 comment

1 changed file

ethagnawl

pr closed time in 4 days

PR opened kartevonmorgen/openfairdb

Captcha

This should solve #296

+52 -1

0 comment

2 changed files

pr created time in 4 days

create barnchkartevonmorgen/openfairdb

branch : captcha

created branch time in 4 days

push eventflosse/rust-web-framework-comparison

Markus Kohlhase

commit sha 0ba85402de0dbee2a11e1185613ce68ab4d6c175

Move willow to outdated frameworks

view details

push time in 5 days

push eventflosse/rust-web-framework-comparison

Markus Kohlhase

commit sha 3954c47fad8c33f2f4f141d02e1a4bb07f768b1e

Move rouille to outdated frameworks Last release was 2 years ago

view details

push time in 5 days

push eventflosse/rust-web-framework-comparison

Markus Kohlhase

commit sha c1327eb078c3f5ff5cfd554a5f18b00bf7a53d66

Move nickel to outdated frameworks Last release was 2 years ago

view details

push time in 5 days

push eventflosse/rust-web-framework-comparison

Markus Kohlhase

commit sha a3ec112980f7da467d8dbc6a8aa384561724c4c4

Update OpenFairDB DB usage description

view details

push time in 5 days

push eventflosse/rust-web-framework-comparison

Dessalines

commit sha 4d0773044df7f16dcfad2dab9eddd0ab67f5d26c

Adding lemmy to real world projects. Fixes #86

view details

push time in 5 days

issue closedflosse/rust-web-framework-comparison

Add lemmy to web projects, it uses actix.

https://github.com/dessalines/lemmy

closed time in 5 days

dessalines

push eventflosse/rust-web-framework-comparison

Markus Kohlhase

commit sha b6051ec01bd584f888f85bc8ef2dc0caa91fda67

Move stdweb to outdated frameworks See: - https://github.com/koute/stdweb/issues/403 - https://github.com/RustSec/advisory-db/issues/391

view details

push time in 5 days

issue commentflosse/rust-web-framework-comparison

Add Iced?

feel free to open a PR ;-)

krooq

comment created time in 5 days

issue commentflosse/rust-web-framework-comparison

Add lemmy to web projects, it uses actix.

feel free to open a PR ;-)

dessalines

comment created time in 5 days

issue commentflosse/rust-web-framework-comparison

Broken "rustwebapp" demo link

feel free to open a PR ;-)

ethagnawl

comment created time in 5 days

issue closedflosse/rust-web-framework-comparison

The rocket example can only be run on nightly

Probably we should add this note for Rocket:

rustup run nightly cargo run --examples hello_world

closed time in 5 days

hoangtranwork

issue commentflosse/rust-web-framework-comparison

The rocket example can only be run on nightly

this issue is obsolete because we don't have code examples anymore.

hoangtranwork

comment created time in 5 days

issue closedflosse/rust-web-framework-comparison

Outdated and overcomplicated example for Rustful

I noticed that the example for Rustful is a bit outdated and overcomplicated, compared to the other examples. The HandlerFn struct is no longer necessary, since Rust 1.3, and can be completely removed. It's also not really necessary to have a router if only one thing is served (unless you want to restrict requests to /). Handlers implements Router automatically. I'm not sure how minimal they should be, but here is a recent example of a very small server, including error handling.

Everything else looks correct, I think. The only exception would be the ? on "Static File Serving", which technically is correct but may be misleading. There is no middleware for it, but there are a couple of methods for it in Response. This breaks the pattern a bit...

I could send a PR, but there are a couple of uncertainties, as mentioned.

closed time in 5 days

Ogeon

issue commentflosse/rust-web-framework-comparison

Outdated and overcomplicated example for Rustful

this issue is obsolete because we don't have code examples anymore.

Ogeon

comment created time in 5 days

issue closedflosse/rust-web-framework-comparison

Additional frontend frameworks

Just noting some new ones down I came across

  • https://github.com/Pauan/rust-dominator
  • https://github.com/ivanceras/sauron (already included)
  • https://github.com/axelf4/dumle

closed time in 5 days

aidanhs

issue commentflosse/rust-web-framework-comparison

Additional frontend frameworks

they are all included now.

aidanhs

comment created time in 5 days

push eventflosse/rust-web-framework-comparison

Markus Kohlhase

commit sha 9d8e63373f0a5d53a5ff4042e39be64727ef0d91

Add dumle

view details

push time in 5 days

issue closedflosse/rust-web-framework-comparison

Why Sauron is listed as outdated?

https://github.com/ivanceras/sauron/issues/9

I see commits, I don't see any abandonment announcement.

It could be that this is a one-man project and I don't update very often.

Maybe such one-man projects should be explicitly marked as such?

closed time in 5 days

vi

issue commentflosse/rust-web-framework-comparison

Why Sauron is listed as outdated?

It's back again :)

vi

comment created time in 5 days

push eventflosse/rust-web-framework-comparison

Markus Kohlhase

commit sha a65f736397eaa113344eefa602261f0d7d6d16c7

Move sauron to active developted frontend framworks

view details

push time in 5 days

pull request commentflosse/rust-web-framework-comparison

Add tokio-tungstenite

thx!

Zymlex

comment created time in 5 days

push eventflosse/rust-web-framework-comparison

Yuriy Zymlex

commit sha bfd28306fb78a6dce41edc0ff6450206eeddd3f6

Add tokio-tungstenite https://github.com/snapview/tokio-tungstenite

view details

push time in 5 days

PR merged flosse/rust-web-framework-comparison

Add tokio-tungstenite

https://github.com/snapview/tokio-tungstenite

+1 -0

0 comment

1 changed file

Zymlex

pr closed time in 5 days

push eventflosse/rust-web-framework-comparison

Yuriy Zymlex

commit sha 75dea5ab0a45d25ef905221a81141e9322fa33c7

New community repository link to rust-websocket https://github.com/websockets-rs/rust-websocket

view details

push time in 5 days

PR merged flosse/rust-web-framework-comparison

New community repository link to rust-websocket

https://github.com/websockets-rs/rust-websocket

+1 -1

0 comment

1 changed file

Zymlex

pr closed time in 5 days

startedvisioncortex/vtracer

started time in 5 days

startedfdehau/tui-rs

started time in 5 days

PR merged slowtec/tokio-modbus

Reviewers
Add rust-toolchain file

This should fix CI/github actions

+3 -2

0 comment

2 changed files

flosse

pr closed time in 7 days

push eventslowtec/tokio-modbus

Markus Kohlhase

commit sha 0068c0e51532f67f0a7021181e3724c50a5e31a7

Add rust-toolchain file

view details

Markus Kohlhase

commit sha acf73c03b5ceeedb1c4841432ed7f852e1dbcc6f

Fix clippy warnings

view details

push time in 7 days

push eventslowtec/tokio-modbus

Markus Kohlhase

commit sha acf73c03b5ceeedb1c4841432ed7f852e1dbcc6f

Fix clippy warnings

view details

push time in 7 days

more