GitHub – stollcri/elm-init: Simple tool to quickly set up an elm application

GitHub - stollcri/elm-init: Simple tool to quickly set up an elm application ОБД2

Elm install

Elm packages all live at package.elm-lang.org.

Elm make

You can compile Elm code to HTML or JavaScript with commands like this:


elm make src/Main.elm


elm make src/Main.elm --optimize --output=elm.js

Try running these commands on your src/Main.elm file.

This is the most general way to compile Elm code. It is extremely useful once your project becomes too advanced for elm reactor.

This command produces the same messages you have been seeing in the online editor and with elm reactor. Years of work has gone into them so far, but please report any unhelpful messages here. I am sure there are ways to improve!

Elm reactor

elm reactor helps you build Elm projects without messing with the terminal too much. You just run it at the root of your project, like this:

elm reactor

Tips and tricks

First, do not worry about remembering all this stuff!

You can always run elm –help to get a full outline of what elm is capable of.

You can also run commands like elm make –help and elm repl –help to get hints about a specific command. This is great if you want to check which flags are available and what they do.

Second, do not worry if it takes some time to get comfortable with the terminal in general.

I have been using it for over a decade now, and I still cannot remember how to compress files, find all Elm files in a directory, etc. I still look a lot of things up!

Usage

Usage: elm-init [options] [app_name]

Options:

  -h, --help     output usage information
  -t, --template template_name

Использование диагностического адаптера els27 (с. 77,7) – ford focus 2

Есть три версии адаптера. Вторая версия выходила на разных печатных платах, поэтому существует в нескольких исполнениях, называемых ревизиями.

Версия v1.0

Для версии v1.0 было заказано 60 печатных плат, из которых 54 были запаяны, а судьба ещё 6 не известна. Платы содержали пару косяков, которые исправляли вручную. На работоспособности не сказалось. Сами адаптеры собирались в корпусах разного цвета, преимущественно чёрного.

Код ошибки:  Загорелся Чек на Гранте 8 или 16 клапанов: причины, что делать, как убрать самому

Версия v2.0

Ревизия rev1.2 существует только в виде прототипов (10шт). От v1.0 отличается:
– Новыми печатными платами с разводкой сделанной с нуля
– Дизайном: все адаптеры в прозрачных белых корпусах, как на картинке
– Наличием реле переключения HS_CAN на пины 1 и 8, которым соответствует MM_CAN у Focus3
– Наличием “железной” кнопки Reset_NVM
– Наличием переходных коннекторов для коммерческого модуля (здесь не обсуждается!)

Ревизия rev1.5 существует тоже в виде прототипов (10шт). От v1.2 отличается:
– Отсутствием навесных перемычек
– Наличием дополнительных резисторов для стабильности
– Соединение “плата” – “колодка OBD” будет выполняться с помощью шлейфа, а не отдельными проводками
– Более оптимальным размером печатной платы

Ревизия rev1.6 опять же в виде прототипов (10шт). От v1.5 отличается:
– Наличием импульсного преобразователя, а значит более высоким КПД и меньшим нагревом
– Увеличена толщина платы (все дальнейшие версии будут тоже)

Ревизия rev1.5b – партия из 50 штук. Финальная версия с линейным стабилизатором

Ревизия rev1.7 – партия из 200 штук. Финальная версия с импульсным стабилизатором.

Ревизия rev1.72 – партия из 500 штук. Для конечного пользователя ничем не отличается от rev1.7. Платы теперь идут в панелях по 10шт.

Ревизия rev2.0 – Перерисованная с нуля версия. От rev1.72 отличается:
– Сборка преимущественно на Prolific PL-2303HXD
– Поддержка FTDI FT232RQ
– Реализована возможность управлять релешкой с помощью STN1170
– Импульсник отключается при подключении к USB
– Реле переключает HS_CAN не только на 1 и 8 пины OBD (где сидит MM_CAN у Focus3), но и на 1 и 9 пин, где сидит CAN у FIAT’ов
– K_Line (Pin7) также подключен к Pin12 в OBD. Для FIAT
– Prolific версия работает на скоростях 1М, 2М и 5М. И конечно с более низкими

Версия v3.0

Построена на новом проце STN2120 у которого вдвое больше памяти, чем у STN1170. Отличительные особенности адаптера:
– Сборка преимущественно на Prolific PL-2303HXD (как и rev2.0)
– Поддержка FTDI FT232RQ (как и rev2.0)
– Адаптер всегда питается от OBD, но может и от USB когда бортсеть недоступна
– Имеет все полезные фичи предыдущих ревизий
– Есть встроенный K-line модуль на L9637D с поддержкой ALDL (5 вольт K-line)
– Prolific версия работает на скоростях 1М, 2М, 4М и 8М. И конечно с более низкими

Ревизия v3.01
Та же версия v3.0, только без кнопки RST_NVM.

Код ошибки:  Руководство по техническому обслуживанию2006 Matiz ДИАГНОСТИКА КОДОВ НЕИСПРАВНОСТЕЙ

Остальное
Также в природе есть два прототипных адаптера rev2.0 GitHub - stollcri/elm-init: Simple tool to quickly set up an elm application

x

Программы и приборы для диагностики и прошивки (с. 77) – ford focus 3

xglooom

Просьба, если возможно, реализовать функцию отключения/включения значений компенсации тяги/смещения ЭУР (EPAS)

Давно обратил внимание, что на ровной дороге на скорости примерно 100 км/ч приходится совсем немного, но подруливать, особенно заметно на круизе, в теме

http://ffclub.ru/

пишут что отключение этой функции помогает.

Кому интересно, сброс кеша EPAS, это, как я понял, нужно делать после например корректировки развала схождения, есть в forscan

130 человек сейчас в теме

Программы и приборы для диагностики и прошивки (с. 99) – ford focus 3

geny4.81
Причин может быть не одна… Попросим у Вас логи конечно же.

ToAll
Товарищи, ну если Вы задаете вопрос по ошибке, которая возникла в результате работы программы, ну выкладывайте Вы логи! В противном случае получается не иначе как гадание.

I want to init function in elm

I am trying to pass flags value to Top.elm from Main.elm
and run a function named “getToken” with flags value.
But, it seems like this function “getToken” is not working properly…

My Main.elm is …

type alias Model =
    { key : Nav.Key
    , page : Page
    }


type Page
    = NotFound
    | TopPage ( Page.Top.Model, Cmd Page.Top.Msg )
    | ArticlePage Page.Article.Model


init : String -> Url.Url -> Nav.Key -> ( Model, Cmd Msg )
init flags url key =
    Model key (TopPage (Page.Top.init flags))
        |> goTo (Route.parse url)

My Top.elm is …

type alias Model =
    { status : LoadingStatus
    }


type LoadingStatus
    = Init
    | Waiting
    | Loaded Token
    | Failed Http.Error


init : String -> ( Model, Cmd Msg )
init token =
    ( Model Init
    , getToken token )

...

-- UPDATE


type Msg
    = GotToken (Result Http.Error Token)


update : Msg -> Model -> ( Model, Cmd Msg )
update msg model =
    case msg of
        GotToken (Ok token) ->
            ( { model | status = Loaded token }, Cmd.none )

        GotToken (Err err) ->
            ( { model | status = Failed err }, Cmd.none )




-- VIEW


view : Model -> Html Msg
view model =
    case model.status of
            Init ->
                text "sssssssssssssssssssssssssssss"

            Waiting ->
                text "waiting..."

            Loaded token ->
                div []
                    [ p [] [ text "yahoooooooo" ]
                    , p [] [ text token.accessToken ]
                    ]

            Failed e ->
                case e of
                    Http.BadBody message ->
                        pre [] [ text message ]

                    _ ->
                        -- text (Debug.toString e)
                        pre [] [ text "error" ]

...

type alias Token =
    { accessToken : String
    }


-- AccessToken


getToken : String -> Cmd Msg
getToken token =
    Http.request
        { method = "POST"
        , headers =
            [ Http.header "Authorization" ("Bearer "    token)
            , Http.header "Accept" "application/json"
            , Http.header "Content-Type" "application/json"
            ]
        , url = "http://localhost:8080/web_users/create"
        , expect = Http.expectJson GotToken tokenDecoder
        , body = Http.emptyBody
        , timeout = Nothing
        , tracker = Nothing
        }


tokenDecoder : Decoder Token
tokenDecoder =
    D.map Token
        (D.field "access_token" D.string)

text “sssssssssssssssssssssssssssss” can be seen in a view after the server is launched.
So, it seems like Init in Top.elm is working.
But, it won’t go any further.

Код ошибки:  Как узнать скрученный пробег через ELM327? - AUTOPEOPLE

I assume that getToken function is not working here because I can only see LoadingStatus Init (not Waiting, Loaded, Failed)

Does anybody know why getToken function is not working correctly…??

No error occurs.

Elm extensible records init

I see from the syntax you’re using that this is not Elm 0.16, which is the version where the record update syntax changed. In your current version of Elm you can do:

type alias Model a =
  {a | pinned : Bool, done : Bool, trunc : Bool}

init : a -> Model a -- the parentheses were superfluous so I removed them
init cont0 =
  let cont1 = { cont0 | pinned = False }
      cont2 = { cont1 | done = False }
      cont3 = { cont2 | trunc = False }
  in cont3

Since according to the type annotation, you’re adding fields, not updating fields. You can only add one field at a time, sadly, so please excuse the awkward syntax.

Note that in Elm 0.16field addition syntax has been removed. It wasn’t used very much and newcomers found the = versus <- very confusing. So the field addition was removed and the update syntax was changed to use =. This means that in a new version of Elm you won’t be able to write your init function this way anymore. See the blog post and mailing list for strategies to rewrite programs with extensible records to use other types to model things.


To give one example of how you may change your program to still work with Elm 0.16 :

type alias Model a =
  { submodel: a, pinned: Bool, done: Bool, trunc: Bool }

init : a -> Model a
init submodel = Module submodel False False False
-- This makes use of the generated record constructor
--  that came with the type alias definition.
-- You could also write: 
--  { submodel: submodel, pinned: False, done: False, trunc: False }

Elm init

You can start an Elm project by running:

elm init

Try running this command to create an elm.json file and a src/ directory:

Now try creating a file called src/Main.elm in your editor, and copying in the code from the buttons example.

Оцените статью
OBD
Добавить комментарий

Adblock
detector